重复使用AWS自动缩放的EBS卷

我正在尝试为我的EC2实例设置自动修复。 因此,无论何时我的实例closures或无法访问,都应该自动重新启动,或者在同一个AWS区域中启动一个新的实例,而不是在另一个AZ中。

我考虑设置cloudwatch警报并添加操作以在发生故障的情况下重新启动实例。 如果我希望我的EC2实例在发生故障的情况下重新启动,这很好。

但是它不包括AZ本身不可达的情况。 所以我试图设置最小/最大实例号为1的AWS自动调整组。在失败的情况下,我希望新的实例与EBS卷终止实例启动。 我该如何继续呢?

或者,如果有另一种方法来实现我想要的,那也是值得赞赏的。

你知道EFS或亚马逊弹性文件系统吗? 这是EC2实例的文件存储服务,您可以使用它来描述您所描述的内容。 如果你不需要一个块设备(EBS卷)试试看。

CloudFormation模板有一个很好的例子,它在AutoScaling组中部署与Amazon EFS文件系统关联的EC2实例: Amazon Elastic File System Sample Template

这是可以做的事,但我不认为这会很容易。

您需要使用辅助卷来处理实例重新启动时希望保留的任何数据。 我不相信你可以创build一个现有卷作为根分区的实例。 至less没有任何理智或简单的方式。

将EBS“终止删除”设置为false,并在启动时让启动configuration/启动脚本扫描未连接的卷。 如果你发现你的卷上标有“KeepMeAlive:true”或类似的东西,让它自动附加到自己的卷。

所以我在ASG中运行了很多单个服务器来进行自动修复。

我做的是给EBS卷一套标签。

在启动时,有一个cloud-init脚本,它使用aws元数据api和CLI,并通过API获取自己的实例ID,然后使用自己的AZ中的set标签searchEBS卷。 一旦它有了卷ID,它就会强制分离器在安全的一面。 然后附加到自己。

到目前为止,它的工作相当好。