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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想在代码部署运行时在新的自动扩展组替换的EC2实例上运行脚本相关的知识,希望对你有一定的参考价值。

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

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

我还需要记住,如果自动调节检测到它需要添加一个额外的实例,因为它过载而且当它删除一个实例因为工作负载现在已经变慢时,这需要工作。

我是一个新手,所以我迷失了一些更先进的东西(对我来说有点愚蠢)。

我将在Centos AMI上运行。

任何帮助表示赞赏!!

答案

Amazon EC2 Auto Scaling Lifecycle Hooks

生命周期钩子使您可以通过在Auto Scaling组启动或终止实例时暂停实例来执行自定义操作。当实例暂停时,它将保持等待状态,直到您使用complete-lifecycle-action CLI命令或CompleteLifecycleAction API操作完成生命周期操作,或者超时期限结束(默认为一小时)。

以上是关于我想在代码部署运行时在新的自动扩展组替换的EC2实例上运行脚本的主要内容,如果未能解决你的问题,请参考以下文章

在自动扩展组中的 EC2 启动和关闭时运行命令

AWS 自动扩展组 AMI

Codedeploy 无法在新扩展的 VM 上运行

如何在 Amazon Auto-scaling 组中的多个 ec2 实例上部署和更新应用程序?

如何使用 CodeDeploy 在新的 EC2 实例上部署现有应用程序

Lambda 不适用于具有自动缩放功能的 ec2