我有兴趣从手动管理的具有多个 Web 应用的 AWS EC2 云迁移到具有自动扩展功能的 AWS ELB。但是,我不确定单个 ELB 是否足以处理我的架构。
我当前的架构如下:
- 我的基础设施由大约 50 个 EC2 微型实例组成,这些实例为 50 个不同的 Web 应用程序提供服务,每个应用程序一个实例,这些通常就足够了,
- 流量通过安装了 nginx 的 ec2 实例进行路由,该实例根据 anames 定向连接(假设我的域名是 abc.com,服务器 app1(1.1.1.1)负责处理 app1.abc.com,服务器 app2 负责 app2.abc.com),
- 流量有时会激增,但不是周期性的或可预测的,
- 如果利用率足够高,我会手动使用 appx 创建另一个服务器的 ec2 实例,并将其信息提供给 nginx,
- 在高流量期过后,我会停止/终止不必要的实例。
这种架构的主要问题是我需要手动响应流量变化。因此,我考虑利用 AWS 自动扩展功能,因为我无论如何都在使用 AWS,但在应用扩展后,我仍然需要手动修改 nginx,在缩减后再次修改。解决方案是使用 ELB,它可以响应自动扩展,但我不确定它将如何处理多个自动扩展组(每个 aname 一个)和链接到具体服务器的多个 aname。
如果具有自动扩展功能的单个 ELB 无法实现这一点,并且为大多数单台机器配备 50 个不同的 ELB 是不可能的,那么是否有其他方法可以在这种架构中实现这种级别的自动化?
答案1
您是否考虑过让一个外部 ELB 将流量传递给多个 nginx 反向代理,并使用内部 ELB 供 nginx 代理路由应用服务器。
除非您发布新的应用程序,否则 nginx 服务器上的配置将保持一致,并且您可以扩展 nginx 组以及任何/所有应用程序服务器组。