EC2 实例的 AMI 更改不起作用
AMI change for EC2 instance is not working
在我的工作场所,我们每个月都会使用新的修补专用 AMI 更改 EC2 的 AMI。
我们的内部运营团队将这些修补后的 AMI 作为 EC2 的私有 AMI 提供给我们。
在我们的 Terraform 脚本中,我们在通过 Jenkins 执行脚本之前将 AMI 的名称更改为新名称。
但是,我们注意到脚本执行后EC2实例不受AMI名称更改的影响,我们必须手动终止每个EC2实例才能使AMI更改生效。
我想知道的是-
有人遇到过这个问题吗?
有没有办法在 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_refresh 块 aws_autoscaling_group
资源。
因此,您可以在 aws_autoscaling_group
中设置 instance_refresh
并指定 触发它的内容 。通常触发器是对关联的 launch_configuration
或 launch_template
.
的更改
在我的工作场所,我们每个月都会使用新的修补专用 AMI 更改 EC2 的 AMI。
我们的内部运营团队将这些修补后的 AMI 作为 EC2 的私有 AMI 提供给我们。
在我们的 Terraform 脚本中,我们在通过 Jenkins 执行脚本之前将 AMI 的名称更改为新名称。
但是,我们注意到脚本执行后EC2实例不受AMI名称更改的影响,我们必须手动终止每个EC2实例才能使AMI更改生效。
我想知道的是-
有人遇到过这个问题吗?
有没有办法在 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_refresh 块 aws_autoscaling_group
资源。
因此,您可以在 aws_autoscaling_group
中设置 instance_refresh
并指定 触发它的内容 。通常触发器是对关联的 launch_configuration
或 launch_template
.