我想在代码部署运行时被新的自动伸缩组替换的EC2实例上运行脚本

时间:2019-04-29 21:25:52

标签: amazon-web-services amazon-ec2 autoscaling aws-code-deploy

我有一个数据库表,其中包含自动伸缩组中活动EC2实例的IP地址列表。当我执行代码部署并启动新实例时,我需要删除发生故障的实例的IP地址,并添加使用该新自动伸缩组启动的实例的IP地址。 我有一个蓝绿色代码部署环境。

我所需要的只是一种在EC2实例上运行脚本的方法,该脚本可以检测到该脚本已关闭。该脚本将只运行一条SQL命令以查找其IP地址并将其删除。听起来很简单,但是我已经看过了,好像我必须创建一个Lambda函数并查看生命周期挂钩。有没有更简单的方法?

我还需要记住,如果自动缩放检测到由于超载而需要添加其他实例,并且由于工作负载现在变慢而将其删除实例,则这需要工作。

我是新手,所以我迷失了一些更高级的知识(对我来说有点愚蠢)。

我将在Centos AMI上运行它。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

请参见Amazon EC2 Auto Scaling Lifecycle Hooks

  

生命周期挂钩使您可以通过暂停执行自定义操作   实例作为Auto Scaling组启动或终止它们。什么时候   实例已暂停,它将一直处于等待状态,直到您   使用complete-lifecycle-action CLI完成生命周期操作   命令或CompleteLifecycleAction API操作或超时期限   结束(默认情况下为一小时)。