如何确保 ASG(Auto scaling Group)在 Launch 配置的每次更改时替换现有实例

How to ensure that the ASG ( Auto scaling Group) replaces existing instances with every change in the Launch configuration

基础设施是使用 Terraform 代码配置的。 在我们的 AWS 环境中,我们为存储库的每次提交创建了一个新的 AMI。现在,如果我们想使用这个新的 AMI

为 ALB 后面的 Web 服务器配置自动缩放

另外,在自动缩放的情况下,您是否知道我们如何以编程方式(通过 terraform)在任何时间点获取多少服务器 运行?

在此非常感谢您的帮助。 谢谢!

在大多数情况下,这非常简单,网络上已经有许多实现。

棘手的部分是在 LC 和 ASG 上表达 'create_before_destroy' 字段。您还应该参考 ASG 资源中的 LC。这样,一旦您的 LC 发生更改,您就会触发一个工作流,该工作流会创建一个新的 ASG,取代您当前的 ASG。

Very Good Documented Example

Also, do you have any idea of how can we pro-grammatically (via terraform) get how many servers run at any point in time, in case of auto- scaling ?

这取决于上下文。如果你有一个静态数字很容易,你可以在你的模块中定义它并坚持使用它。如果它是关于传递先前的 ASG 值,那么上面的指南中将再次描述这种方式 :) 您需要编写一个自定义外部处理程序,用于确定目标组周围有多少 'the moment' 运行 个实例。当然可能会有一个新的 AWS REST API 添加,让您有机会查询所有目标组健康检查 属性 并获得它们的总和(不知道)。然后,您可能会为扩展策略添加一些自定义规则。

External Handler

旁注:在示例中,部署是通过 ELB 进行的。