【问题标题】:same AMI on multiple EC2 instances vs multiple AMIs on multiple instances多个 EC2 实例上的相同 AMI 与多个实例上的多个 AMI
【发布时间】:2018-09-16 18:59:26
【问题描述】:

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

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

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

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

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

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

非常感谢您平时的帮助。

【问题讨论】:

  • 不确定您的定价是多少,但如果您想通过完整的 aws 服务,您的负载均衡器将成为应用程序 aws 负载均衡器(应用程序部分对 websockets 很重要),而您的数据库服务器可以转移到RDS。然后,您将为您的 Web 服务器和 elasticsearch 创建两个实例。我建议使用 AWS AMI,它们对文档/升级路径的支持通常更好,并且在适用的情况下更容易接收自动更新。如果您曾经容器化并迁移到 ECS,那么您有更多的责任将 ubuntu 作为您的主机运行,那么亚马逊提供 ami 的
  • @Datise 谢谢先生您提供的信息丰富的评论。

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


【解决方案1】:

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

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

对于数据库,RDS 是轻而易举的事。

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

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

那么你只需要决定你的前端是使用基于路径的路由还是基于主机的路由。

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

【讨论】:

  • 首先,感谢您提供的信息丰富的回答。它包含许多概念和关键字,它们帮助我决定现在和将来使用什么架构/解决方案。经过一些研究,我决定完全删除项目的实时部分,直到它变得更加成熟。所以现在没有负载平衡。我将使用一个 ES 实例、一个应用程序实例(PHP、Apache)和一个 RDS 实例。非常感谢。
  • 我用另外一点信息更新了答案 - 您确实想确保您的网站是安全的,并且将 ACM 与 ALB 一起使用非常容易。如果您此时不想实现自动缩放,您仍然可以在其后面使用单个实例,但如果您正在生成 AMI,那么它非常简单。
猜你喜欢
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 2017-07-28
  • 1970-01-01
相关资源
最近更新 更多