当前位置: 首页 > 知识库问答 >
问题:

如何正确高效地实现AWS中的负载均衡

唐经国
2023-03-14

目前,我有一个EC2实例(2个CPU、8GB RAM、Linux),上面有:

  1. NodeJS Express服务器(后端)
  2. NodeJS“微服务”Express服务器(与API等通信)
  3. PostgreSQL数据
  4. Redis(作为我的服务器(1)和我的微服务服务器(2)之间的消息代理
  5. 与服务器(1)通信的ReactJS应用程序(前端)

现在,这在低流量下工作得很好,但是随着流量的增加(每分钟/小时10K次访问),整个系统会变得不堪重负,CPU会进入崩溃区。这也是一种危险的方法,因为我的所有功能都在一个实例上。作为一个快速的解决方案,我使用我的PM2管理器对服务器(1)进行了集群化,现在它的工作更好了。但作为一个长期的解决方案,我需要拆分这些东西并使用负载平衡。这就是我想要将其拆分为不同的EC2实例的方法:

  1. NodeJS Express Server(后端)+NodeJS Express Server(后端)+两者之间的负载均衡器-每个都具有512MB RAM、1个CPU
  2. NodeJS“微服务”Express服务器-512MB RAM,1个CPU
  3. AWS RDS上的PostgreSQL(1GB RAM,1CPU)
  4. 对AWS弹性痛(cache.t2.micro)
  5. ReactJS应用程序(前端)-512MB RAM,1个CPU

现在我有两个问题:

  • 我应该平衡我的后端(两个服务器副本)还是我的前端(ReactJS应用程序)的负载?或者两者兼而有之?
  • 我是否应该为后端获得更多CPU(每个2 CPU)?因为现在有了这个新的架构,我就不能像以前那样对它进行集群了。什么会更有效率?将服务器群集在2个CPU上,或在2个服务器之间进行负载平衡,每个服务器有1个CPU?

共有1个答案

孙朗
2023-03-14
  1. 您需要每个服务的两个实例,因此2x后端、2x微服务、2x前端,最好运行在不同的可用性区域。
  2. 每对服务之间的LB
  3. 服务A为服务B调用LB,绝不直接调用服务B。

这意味着在负载均衡器后面始终有每个服务的至少一个健康的实例,并且当您添加或删除单个服务节点时,DNS记录等保持不变--您可以将微服务扩展到3个节点,而不需要在任何其他地方更改任何内容。

这增加了成本,但提供了冗余--这是使用云基础设施的主要要点之一。

 类似资料:
  • 目标是在一个简单的堆栈中包含 HTTP/2 支持:在多个 EC2 实例中部署的 Web 应用程序是启用了 PROXY 协议策略 (SSL:443 ➝ TCP:80) 的传输级 CLB,以便卸载 SSL/TLS 并平衡传入的 HTTPS 流量。 PROXY协议的几个原因:(1)地理定位逻辑的执行;(2)执行简单的访问控制规则;(3)日志记录。所有这些功能都需要访问可靠的(即不可轻易伪造的)客户端IP

  • 我在将https添加到我的EC2实例时遇到了一个问题,也许你们可以找到让它工作的答案。 我有一个负载平衡器,它正在将连接转发到我的EC2实例,我已将SSL证书添加到负载平衡器,一切正常,我已将侦听器添加到端口443,该端口将转发到我的实例的端口443,我已将Apache配置为在端口443和80上侦听,现在这里是我的负载平衡器的屏幕截图: SSL证书有效,在端口80(HTTP)上一切正常,但如果我尝

  • 本文向大家介绍nginx+iis实现简单的负载均衡,包括了nginx+iis实现简单的负载均衡的使用技巧和注意事项,需要的朋友参考一下 最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等。本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服

  • 我正在尝试使用ELB部署一些nodejs站点,但ELB和EC2实例的安全组都存在一些问题。 我想做的是允许ELB接受端口80请求,并将这些请求转发到EC2实例上的端口3000,我不希望EC2实例可以从Internet直接访问,它们应该只能通过负载均衡器(在端口3000上)访问。 因此,在我的公有子网的 VPC 中,我有: < li >设置转发80 (HTTP)到3000 (HTTP)的ELB <

  • 我们的网站全年可用,使用AWS EC2中型实例类型可以很好地处理流量。不过,时不时(每月一次),我们的流量会非常大,可能需要几个超大的实例。我们知道这将在何时发生,因此我们可以提前启动实例。 我刚刚注意到,与当前的按需实例相比,预先购买中等保留实例会节省相当多的钱。问题是这样一个保留的实例将意味着我们的主实例将被固定为中等实例类型。 我的问题是:当我们需要启动新的x-large奴隶时,拥有这么小的

  • 本文向大家介绍使用Nginx实现负载均衡的策略,包括了使用Nginx实现负载均衡的策略的使用技巧和注意事项,需要的朋友参考一下 一、nginx简介 nginx是一个高性能的HTTP服务器和反向代理服务器。它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站。 二、nginx支持的三种负载均衡策略 轮询:将请求依次轮询发给每个服务器。 最少链接:将请求发送给持有最少活动链接