EC2 实例的 AMI 更改不起作用

AMI change for EC2 instance is not working

在我的工作场所,我们每个月都会使用新的修补专用 AMI 更改 EC2 的 AMI。

我们的内部运营团队将这些修补后的 AMI 作为 EC2 的私有 AMI 提供给我们。

在我们的 Terraform 脚本中,我们在通过 Jenkins 执行脚本之前将 AMI 的名称更改为新名称。

但是,我们注意到脚本执行后EC2实例不受AMI名称更改的影响,我们必须手动终止每个EC2实例才能使AMI更改生效。

我想知道的是-

  1. 有人遇到过这个问题吗?

  2. 有没有办法在 Terraform 中删除实例的手动终止,或者有没有办法在 Terraform 中自动处理更改?

ASG 中的实例未使用新 AMI 进行更新,因为默认情况下,只有您的启动配置 (LC) 或启动模板 (LT) 会使用新 AMI 进行更新。 不会自动导致实例更新以使用新的LC/LT。

然而,不久前,AWS 引入了 instance refresh to combat this specific issue. Subsequently, this functionality was added to terraform and is configured using instance_refreshaws_autoscaling_group 资源。

因此,您可以在 aws_autoscaling_group 中设置 instance_refresh 并指定 触发它的内容 。通常触发器是对关联的 launch_configurationlaunch_template.

的更改