本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon A EC2 uto Scaling 群组
Amazon A EC2 uto Scaling 组包含一组亚马逊 EC2 实例,这些实例被视为用于自动扩展和管理的逻辑分组。Auto Scaling 组还允许您使用 Amazon A EC2 uto Scaling 功能,例如运行状况检查替换和扩展策略。Amazon Auto Scaling 服务的核心功能是保持 Auto Scaling 组中的实例数量和 EC2自动扩展。
对 Auto Scaling 群组使用区域偏移
可使用以下方法之一启动可用区转移。
- Console
-
对新组启用可用区转移(控制台)
-
按照使用启动模板创建 Auto Scaling 组中的说明完成过程中的每个步骤,直到步骤 10。
-
在与其他服务集成页面上,对于 ARC 可用区转移,请选中复选框以启用可用区转移。
-
对于运行状况检查行为,请选择“忽略运行状况不佳”或“替换运行状况不佳”。如果设置为 replace-unhealthy,处于活跃可用区转移状态的可用区中运行状况不佳的实例将会被替换。如果设置为 ignore-unhealthy,处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。
-
继续执行使用启动模板创建 Auto Scaling 组中的步骤。
- AWS CLI
-
对新组启用可用区转移(AWS CLI)
向 create-auto-scaling-group 命令添加 --availability-zone-impairment-policy 参数。
--availability-zone-impairment-policy 参数有两个选项:
-
ZonalShiftEnabled— 如果设置为true,Auto Scaling 将使用 ARC 区域偏移注册 Auto Scaling 组,您可以在 ARC 控制台上启动、更新或取消区域偏移。如果设置为 false,Auto Scaling 会从 ARC 可用区转移中取消注册自动扩缩组。必须启用了可用区转移才能将设置为 false。
-
ImpairedZoneHealthCheckBehavior— 如果设置为replace-unhealthy,则可用区中运行状况不佳的实例将替换为有效的区域切换。如果设置为 ignore-unhealthy,处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。
以下示例对名为 my-asg 的新自动扩缩组启用了可用区转移。
aws autoscaling create-auto-scaling-group \
--launch-template LaunchTemplateName=my-launch-template,Version='1' \
--auto-scaling-group-name my-asg \
--min-size 1 \
--max-size 10 \
--desired-capacity 5 \
--availability-zones us-east-1a us-east-1b us-east-1c \
--availability-zone-impairment-policy '{
"ZonalShiftEnabled": true,
"ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy
}'
- Console
-
对现有组启用可用区转移(控制台)
在上打开亚马逊 EC2 控制台 https://console.aws.amazon.com/ec2/,然后从导航窗格中选择 A uto Scaling Gro ups。
-
在屏幕顶部的导航栏上,选择您在其中创建 Auto Scaling 组的。 AWS 区域
-
选中 Auto Scaling 组旁边的复选框。
这时将在页面底部打开一个拆分窗格。
-
在集成选项卡上的 ARC 可用区转移下,选择编辑。
-
选中复选框以启用可用区转移。
-
对于运行状况检查行为,请选择忽略运行状况不佳或替换运行状况不佳。
-
选择更新。
- AWS CLI
-
对现有组启用可用区转移(AWS CLI)
向 update-auto-scaling-group 命令添加 --availability-zone-impairment-policy 参数。
--availability-zone-impairment-policy 参数有两个选项:
-
ZonalShiftEnabled— 如果设置为TRUE,Auto Scaling 将使用 ARC 区域偏移注册 Auto Scaling 组,您可以在 ARC 控制台上启动、更新或取消区域偏移。如果设置为 FALSE,Auto Scaling 会从 ARC 可用区转移中取消注册自动扩缩组。必须先启用可用区转移,才能将其设置为 FALSE。
-
ImpairedZoneHealthCheckBehavior— 如果设置为replace-unhealthy,则可用区中运行状况不佳的实例将替换为有效的区域切换。如果设置为 ignore-unhealthy,处于活跃可用区转移状态的可用区中运行状况不佳的实例不会被替换。
以下示例对指定自动扩缩组启用了可用区转移。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
--availability-zone-impairment-policy '{
"ZonalShiftEnabled": true,
"ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy
}'
要启动可用区转移,请参阅 启动、更新或取消可用区转移。
自动扩缩组可用区转移的工作原理
假设有一个包含以下可用区的自动扩缩组:
us-east-1a
us-east-1b
us-east-1c
您注意到 us-east-1a 中出现故障并启动可用区转移。在 us-east-1a 中启动可用区转移时,会出现以下行为。
向@@ 外扩展 — Auto Scaling 在运行状况良好的可用区(us-east-1b和us-east-1c)中启动所有新的容量请求。
动态扩展 — Auto Scaling 可阻止扩展策略减少所需容量。Auto Scaling 不会阻止扩展策略增加所需容量。
实例刷新 — Auto Scaling 会延长在活动区域转移期间延迟的任何实例刷新过程的超时时间。
| 选择受损可用区运行状况检查行为 |
运行状况检查行为 |
| 替换运行状况不佳 |
所有可用区(us-east-1a、us-east-1b 和 us-east-1c)中显示运行状况不佳的实例将被替换。 |
| 忽略运行状况不佳 |
us-east-1b 和 us-east-1c 中显示运行状况不佳的实例将被替换。可用区中的实例不会被有效的区域移动 (us-east-1a) 所取代。 |
|
|
使用可用区转移的最佳实践
要在使用可用区转移时保持应用程序的高可用性,建议遵循以下最佳实践。
-
监控 EventBridge 通知以确定何时出现持续的可用区损坏事件。有关更多信息,请参阅使用自动化 Amazon A EC2 uto Scaling。 EventBridge
-
使用具有适当阈值的扩缩策略,确保容量足以应对丢失一个可用区这一情况。
-
设置运行状况良好的百分比至少为 100% 的实例维护策略。进行这种设置之后,Auto Scaling 会等待新实例准备就绪,然后终止运行状况不佳的实例。
对于预缩放客户,我们还建议采取以下措施:
对于使用已禁用跨区域功能的负载均衡器的客户,我们还建议采取以下措施:
-
在可用区分配中使用仅均衡。
-
如果您在 Auto Scaling 组和负载均衡器上都使用区域偏移,请务必先取消您的 Auto Scaling 组的区域偏移。然后,等待所有可用区的容量实现均衡,再取消对负载均衡器的可用区转移。
-
由于启用区域转移并使用禁用跨区域的负载均衡器时,可能会出现容量不平衡的情况,因此 Auto Scaling 需要进行额外的验证。如果您遵循最佳实践,则可以通过选中中的复选框 AWS 管理控制台 或使用CreateAutoScalingGroupUpdateAutoScalingGroup、或中的skip-zonal-shift-validation标志来确认这种可能性AttachTrafficSources。