AWS如何让ASG始终使用最新的AMI



因此,我们正在尝试频繁地构建映像并将其更新到我们的启动配置,我们希望我们的启动设置始终使用最新的AMI(亚马逊机器映像(。

当然,我们希望这一切以自动化的方式发生。

我们正在努力找出如何最好地自动化,以便ASG(自动装袋集团(将使用最新的AMI。

这里的一个有效方法是让Lambda将最新的AMI应用于启动配置。

有没有一种方法可以让我们的启动配置自动知道使用最新的AMI,launch templates会让这成为可能?

如果可能的话,我们不想使用lambda。

如果launch templates使这成为可能。如果AMI不好,有什么建议可以回滚到以前的版本。

launch templateslaunch configurations都是不可变的。一旦您创建了它们,就无法更改它们,所以答案是否定的,您不能在其中任何一个中引用变量AMI参数,这意味着您需要使用您选择的AMI的新(最新(版本构建新的启动配置/模板。

有一些方法可以从SSM中提取这些信息,例如,在CF模板中引用这些信息,而不需要Lambda函数。

Parameters:
LatestAmiId:
Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2'
Resources:
Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: !Ref LatestAmiId

但这只有在构建堆栈时才会生效。一旦堆栈运行,您就会在启动过程中使用最新的版本。

我们打算评估的一种方法是从构建外管道中获取AMI ID,并将其注入到有自己管道的部署回购中。

我们已经用构建ID标记提交了,所以。。。理论上。。。大概这对我们有用。

您可以将启动模板配置为使用SSM参数-https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-ssm参数而不是ami id

许多流行发行版的AMI都有公共SSM参数-https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters-ami.html

您可能仍然需要找到一种方法来回收/刷新您的ASG。

最新更新