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

时间:2018-04-06 17:18:20

标签: amazon-web-services amazon-ec2 scalability autoscaling ami

我计划首次将Web应用程序移至AWS。它包含(本地):

  • 在端口80(Apache2)上运行的Web服务器
  • 在端口8080(Ratchet)上运行的websockets服务器
  • 搜索服务器:端口9000上的EleasticSearch 2.3
  • 数据库服务器:MySQL 5.7

假设我的应用程序需要更多资源,我有两点需要考虑:

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

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

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

非常感谢您的平常帮助。

1 个答案:

答案 0 :(得分:1)

您需要确定堆栈的哪些部分是公开的,哪些只是内部的。您可能不希望向公众公开您的ES群集或数据库。

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

对于数据库,RDS是一个明智的选择。

对于搜索,请确定您是否要自己管理群集,或者AWS Managed Elasticsearch是否会这样做。

对于Web和websockets,均由Application Load Balancer支持。我会有单独的目标组,每个组都有单独的自动缩放组。使用负载均衡器(仅与单个实例相比)的另一个原因是能够利用AWS证书管理器来配置和部署证书,以便为您的站点启用TLS。

然后,您只需要决定是否要为前端使用基于路径的路由或基于主机的路由。

因此,每个层级都拥有自己的AMI(如果您正在进行部署),并且可以独立监控和扩展。