AWS EC2 Auto Scaling 同步如何自动工作?

Posted

技术标签:

【中文标题】AWS EC2 Auto Scaling 同步如何自动工作?【英文标题】:How does the AWS EC2 Auto Scaling synchronisation work automatically? 【发布时间】:2016-02-12 13:16:23 【问题描述】:

前段时间,我们开始我们的 wordpress 博客时只有一个 EC2 实例和一个多可用区 RDS 数据库。

流量随着剧烈起伏而增加(每分钟最多 1.500 个用户),因此我们决定使用 EC2 Auto Scaling。 这是我们的问题: 每次我们更改一些代码时,我们都必须为 Auto Scaling 组创建一个新的 AMI 并终止所有实例,以便新实例将从新的 AMI 数据开始。

是否有一种简单的方法可以在更改其中一个实例上的某些代码时自动同步所有实例? 也许 Opsworks 可以做到,但我没有这方面的经验。我已经搜索了几天的教程,但找不到任何有用的东西。

【问题讨论】:

我认为你应该使用 Docker、ec2 容器和持续部署。 【参考方案1】:

您可以将您的 AMI 配置为在启动时下载最新代码,这样您就不必不断更新 AMI。

或者您可以只使用 Elastic Beanstalk 并让它为您管理所有这些东西。

【讨论】:

【参考方案2】:

如果您想以一种简单的方式将更改部署到自动缩放组中的实例,我建议您使用 Code Deploy。

Code Deploy 与 Autoscaling 完美集成。如果发生扩展事件,它将开始部署到新启动的实例,并且在部署完成之前不会将该实例投入 AutoScaling 组中的服务。

部署可以像更改代码一样简单,或者由于 Code Deploys 部署挂钩,它们可能涉及更多。

您还可以让 Code Deploy 从 S3、Github 或 CodeCommit 获取您的代码。

Code Deploy 的设置非常简单,文档也很棒: DocsAutoScaling Integreation

【讨论】:

以上是关于AWS EC2 Auto Scaling 同步如何自动工作?的主要内容,如果未能解决你的问题,请参考以下文章

ec2 实例和 AWS Auto Scaling 组

我们可以从 AWS 的 Auto Scaling 组停止 EC2 实例吗

AWS Auto Scaling 组是不是会在终止 EC2 之前关闭它的操作系统?

具有 Auto Scaling 与弹性容器服务 (ECS) 的 AWS EC2 - Docker

Java 计划任务是不是在 AWS Auto Scaling 组的所有 EC2 实例上运行?

使用 Lambda 函数覆盖 AWS Auto Scaling 策略