0

我已经完全理解了 AWS 中 Auto-Scaling 的概念。我唯一的问题是,在生产环境中启动配置将使用什么 AMI?

根据我的理解,应该使用现有实例的图像。假设我使用了现有实例的图像。

如果将来现有实例有任何变化怎么办?在这种情况下,我们必须更新 AMI。

是否有任何流程可以自动化此流程?

4

2 回答 2

2

当您创建新的 AMI 并将其设置为新的启动配置(LC;LC 无法编辑)或新版本的启动模板 (LT) 时,您必须使用新的 LC/LT 更新 ASG 配置。

但是,默认情况下,ASG 不会使用新的 LC/LT 更新现有实例。只有 ASG 启动的新实例将具有新的 LC/LT,然后是新的 AMI。因此,您最终会得到 ASG,其中一部分实例运行旧 AMI,另一部分运行新 AMI。

您可以通过两种常用的方式处理此问题:

  1. 使用 CloudFormation 创建您的 LC/LT 和 ASG 并指定UpdatePolicy。更新策略将在 LC/LT 更改时触发,并且ASG 中的现有实例将根据您在策略中指定的规则进行更新。

  2. 执行ASG 的蓝/绿部署优秀的AWS 白皮书中详细描述和解释了如何执行部署:

于 2020-06-10T07:42:44.867 回答
1

Auto Scaling 使用 AMI,它是您的实例的时间点快照。此后所做的任何更改都不会应用于 AMI。

如果您想对基本映像进行任何更改,您将需要重新创建一个映像并再次在您的启动配置/启动模板中推出它。

人们使用许多工具来配置 AMI 的实例配置,例如 Ansible、Chef 和 Puppet。

AWS 去年还推出了用于构建映像的自动化工具EC2 Image Builder

如需更多阅读内容,请查看黄金 ami 管道

于 2020-06-10T07:41:08.913 回答