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

简而言之 – 操作系统亚马逊Linux或Ubuntu。 一个EC2实例(或OpsWorks实例?)正在运行。 每天一次启动第二个实例,使用最新的安全更新进行更新,安装我的应用程序。 closures第一个实例。 重复每一天…

AWS 文档指出 :

默认情况下,AWS OpsWorks会在安装过程中自动安装最新更新…我们build议您…创build并启动新实例来replace当前的联机实例。 然后删除当前的实例。 新实例将在安装过程中安装最新的一组安全修补程序。

如何自动化这个过程?

我知道,我可以通过CLI启动一个微型实例来pipe理这个进程,但是我更喜欢使用一些AWS内置工具,这样我就可以收到失败的通知,添加一些冗余(如果CLI实例失败),一切都会继续在新的CLI / AWS API版本上工作

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

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

在ELB后面使用EC2实例。

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

至于骑自行车的例子,每天一次:

  1. 创build第二个EC2节点
  2. 等待它configuration自己并变得可用
  3. 将第二个节点添加到ELB
  4. 从ELB中删除旧的节点
  5. 拍摄头部的旧节点

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