多个 EC2 实例上的相同 AMI 与多个实例上的多个 AMI

same AMI on multiple EC2 instances vs multiple AMIs on multiple instances

我打算第一次将 Web 应用程序迁移到 AWS。它包含(本地):

假设我的应用程序随着时间的推移需要更多资源,我有两件事要考虑:

1 - 使用包含所有软件的 AMI 启动新实例。在这种情况下,实例的资源在所有软件之间共享。

2- 创建“组”并使用多个 AMI,每个 AMI 包含一个软件。在这种情况下,在一个组中启动一个新实例只会为一个软件添加资源。

最常用和方便的方法是什么?第二种方法是否需要更多 tools/software 来实施?

非常感谢您平时的帮助。

您需要决定堆栈的哪些部分 public 以及哪些仅供内部使用。您可能不想将您的 ES 集群或数据库暴露给 public.

然后为堆栈的每个部分决定适当的技术。

对于数据库来说,RDS是一个no-brainer。

对于搜索,决定您是要自己管理集群还是 AWS Managed Elasticsearch 可以。

对于 web 和 websockets,应用程序负载均衡器均支持。我会有单独的目标组,每个目标组都有单独的自动缩放组。与仅使用单个实例相比,使用负载均衡器的另一个原因是能够利用 AWS Certificate Manager 预置和部署证书以为您的站点启用 TLS。

那么你只需要决定你的前端是使用 path-based 路由还是 host-based 路由。

因此每一层都将拥有自己的 AMI(如果这就是您进行部署的方式)并且可以独立监控和扩展。