如何通过在两个实例之间切换来在不停机的情况下自动更新 EC2 Linux 实例?

Mar*_* B. 2 amazon-ec2 amazon-web-services aws-cli opsworks

简而言之 - 操作系统 Amazon Linux 或 Ubuntu。一个 EC2 实例(或 OpsWorks 实例?)正在运行。每天启动第二个实例,使用最新的安全更新更新它,安装我的应用程序。关闭第一实例。每天重复...

AWS文档指出

默认情况下,AWS OpsWorks 会在设置过程中自动安装最新更新... 我们建议您... 创建并启动新实例以替换您当前的在线实例。然后删除当前实例。新实例将在安装过程中安装最新的一组安全补丁。

如何自动化这个过程?

我知道,我可以通过 CLI 启动一个微实例来管理这个过程,但我更喜欢使用一些 AWS 内置工具,这样我就可以获得失败通知,添加一些冗余(如果 CLI 实例失败),一切都会继续处理新的 CLI / AWS API 版本等。

我错过了一些优雅的方法吗?

更新:能够使用现有的弹性 IP 是首选。

EEA*_*EAA 5

在 ELB 后面使用 EC2 实例。

启动后,您的节点应下载并安装最新的安全更新,并执行任何其他必要的配置以使您的应用程序运行。

至于循环出你的实例,每天一次:

  1. 创建第二个 EC2 节点
  2. 等待它自行配置并变得可用
  3. 将第二个节点添加到 ELB
  4. 从 ELB 中删除旧节点
  5. 在头部射击旧节点

以上所有内容都可以使用各种 AWS API 轻松实现自动化,甚至可以作为 Lambda 作业。

  • 是的,移动 EIP 将删除任何正在进行的查询。使用 ELB 可以很好地处理这个问题。ELB 的另一个好处是您可以获得域的免费 SSL 证书。 (2认同)