Answers:
我想建议“ AWS-HA-Release”执行此操作-AWS-HA-Release的工作方式:
在这种情况下,您可以在不停机的情况下交付新代码或新AMI版本,并受益于全新实例。AWS-HA-Release工具可从https://github.com/colinbjohnson/aws-missing-tools获得。
比较简单的方法是将Auto-Scaling Group(ASG)中的最小实例数增加到当前数量的两倍,等待所有实例都启动后再将最小实例数更改为原来的最小数量。ELB将杀死较旧的实例,并将新的实例留给代码。为此,应将“终止策略”设置为“ OldestInstance ”以按预期工作。默认终止策略可能会产生有害的副作用。
您可以在此处查看AWS CLI参数和示例:http : //docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html
我管理此方案的方式是在云形成中使用AWS :: AutoScaling :: AutoScalingGroup对象的UpdatePolicy功能。当云形成堆栈更新时,它将管理实例的循环。
一些参考。 http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy .html
还可以看看现在开放源代码的Netflix Asgard工具。它不仅可以设置Auto Scaling组,还可以为一组实例执行新AMI映像的滚动发布。
正如我在此处发布的(类似的问题,仅与Terraform一样),它没有以任何方式内置到ASG中,除非您使用cloudformation。我也为此苦苦挣扎,因此最终编写了一个“ roller”来监视多个ASG,检查其状态并进行更新。始终乐于接受反馈。http://github.com/deitch/aws-asg-roller
as-set-instance-health
),以便自动伸缩仅将其替换为新实例,则可能会更有效。