Amazon web services 多个EC2实例上的相同AMI与多个实例上的多个AMI

Amazon web services 多个EC2实例上的相同AMI与多个实例上的多个AMI,amazon-web-services,amazon-ec2,scalability,autoscaling,amazon-ami,Amazon Web Services,Amazon Ec2,Scalability,Autoscaling,Amazon Ami,我计划第一次将web应用程序迁移到AWS。它在本地包含: 在端口80 Apache2上运行的web服务器 在端口8080 Ratchet上运行的WebSocket服务器 用于搜索的服务器:端口9000上的EleasticSearch 2.3 数据库服务器:MySQL 5.7 假设随着时间的推移,我的应用程序将需要更多的资源,我有两件事要考虑: 1-使用包含所有软件的AMI启动新实例。在这种情况下,实例的资源在所有软件之间共享 2-创建“组”并使用多个AMI,每个AMI包含一个软件。在这种情况下,

我计划第一次将web应用程序迁移到AWS。它在本地包含:

在端口80 Apache2上运行的web服务器 在端口8080 Ratchet上运行的WebSocket服务器 用于搜索的服务器:端口9000上的EleasticSearch 2.3 数据库服务器:MySQL 5.7 假设随着时间的推移,我的应用程序将需要更多的资源,我有两件事要考虑:

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

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

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


非常感谢您平时的帮助。

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

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

对于数据库来说,RDS是一个不需要动脑筋的工具

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

对于应用程序负载平衡器支持的web和WebSocket。我会有单独的目标群体,每个群体都有单独的自动缩放群体。与单个实例相比,使用负载平衡器的另一个原因是能够利用AWS证书管理器来提供和部署证书,以便为站点启用TLS

然后,您只需要决定是要对前端使用基于路径的路由还是基于主机的路由


因此,如果您正在进行部署,那么每一层都会有自己的AMI,并且可以独立地进行监视和扩展。

不确定您的定价是什么,但如果您想使用完整的aws服务,您的负载平衡器将成为应用程序aws负载平衡器。应用程序部分对WebSocket很重要,您的数据库服务器可以移动到RDS。然后为web服务器和elasticsearch创建两个实例。我建议使用AWS AMI,它们对文档/升级路径的支持通常更好,并且在适用的情况下更容易接收自动更新。如果你曾经用集装箱运输并移动到ECS,那么你就有更多的责任将ubuntu作为你的主机运行,而不是亚马逊提供的amis@Datise先生,谢谢您提供的信息丰富的评论。首先,我感谢您提供的信息丰富的回答。它包含许多概念和关键字,帮助我决定现在和将来使用什么体系结构/解决方案。经过一些研究,我决定完全删除项目的实时部分,直到它变得更加成熟。所以现在没有负载平衡。我将使用一个ES实例、一个PHP、Apache应用程序实例和一个RDS实例。非常感谢。我用一个额外的信息更新了答案-你真的想确保你的网站是安全的,使用ACM和ALB是非常容易的。如果您不想在此时实现自动缩放,您仍然可以在它后面有一个实例,但是如果您正在生成AMI,那么它非常简单。