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



我在AWS上部署了一个有状态集群,其中实例在启动时连接到已经存在的EBS卷,该卷稍后将安装到实例上运行的Docker容器。如果我强行分离这个卷,那么实例和Docker容器将继续正常工作。要连接到同一卷,必须终止实例,自动缩放组启动的新实例将通过userdata脚本连接到分离的卷。

有没有一种方法可以自动检测卷分离并触发附件?或者,如果强制分离实例的EBS卷,是否可以自动终止实例?

我不知道有什么自动的方法可以开箱即用。我能提供的最好的办法是调查一些想法。

  1. 在docker主机上运行一个cron脚本,每隔X分钟检查一次路径是否仍然可以访问。如果路径不可访问,并且实例设置为在关闭时终止,只需调用shutdown -h即可终止它。或者从docker主机使用AWS CLI请求终止当前实例。脚本可以在运行时通过curl从实例MetaData获取当前实例InstanceId,您需要一个IAM策略并将其分配给实例的IAM角色,以获得终止实例的权限
  2. 基本上是一样的,但从另一个服务器或时间表上的Lambda函数执行,该函数查询API以获得实例/卷的列表(基于标签等(,然后检查附件状态并在必要时终止实例
  3. 根据您的用例,您可以使用cloudwatch来监控EBS的卷度量。您是否可以在用例中检测到基于此的失败,然后执行lambda来实际检查实例并终止它

最新更新