如果EBS卷分离,是否可以在AWS上触发实例终止?

时间:2018-07-26 13:30:57

标签: amazon-web-services docker aws-ebs

我在AWS上部署了一个有状态集群,其中实例在启动时会附加到一个已经存在的EBS卷上,然后将该卷安装到实例上运行的Docker容器上。如果我强行分离此卷,则实例以及Docker容器将继续正常运行。要附加到相同的卷,必须终止该实例,并且由自动伸缩组启动的新实例将通过userdata脚本附加到分离的卷。

有没有一种方法可以自动检测卷分离并触发附件?还是如果强制分离其EBS卷,是否可以自动杀死该实例?

1 个答案:

答案 0 :(得分:1)

我不知道有什么自动方法可以立即实现。我能提供的最好的方法是要研究的一些想法。

  1. 在docker主机上运行cron脚本,以每隔X分钟检查路径是否仍可访问。如果无法访问路径,并且实例设置为在关闭时终止,则只需调用shutdown -h即可将其杀死。或使用Docker主机上的AWS CLI请求终止当前实例。脚本可以在运行时通过curl从实例MetaData获取当前实例InstanceId,您将需要一个IAM策略并将其分配给IAM角色,以使该实例获得终止实例的权限。
  2. 基本上相同,但是从另一台服务器执行,或者按时间表执行Lambda函数,以查询API以获取实例/卷的列表(基于标记等),然后检查附件状态并终止实例如有必要。
  3. 根据您的用例,也许可以使用cloudwatch来监视该卷的EBS指标。您能否针对您的用例基于此检测到故障,然后执行lambda来实际检查实例并终止该实例?