本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon EC2 Auto Scaling 群組,以在終止生命週期動作失敗時保留執行個體。
若要在 Auto Scaling 群組中使用執行個體生命週期政策,您還必須設定終止生命週期關聯。如果您設定執行個體生命週期政策,但沒有任何終止生命週期關聯,則政策沒有作用。只有在捨棄終止生命週期動作時,才會套用執行個體生命週期政策,而不是當它們成功完成CONTINUE結果時。
執行個體生命週期政策使用保留觸發來判斷何時保留執行個體。TerminateHookAbandon 觸發會在幾個案例中造成保留:
-
當您使用ABANDON結果明確呼叫 CompleteLifecycleAction API 時。
-
當具有預設結果的終止生命週期動作因為達到活動訊號逾時而不接收活動訊號而ABANDON逾時時。
-
當在具有預設結果 的終止生命週期動作上達到全域逾時時ABANDON,即 48 小時或活動訊號逾時的 100 倍,以較小者為準
- Console
-
設定執行個體保留
-
開啟 Amazon EC2 Auto Scaling 主控台
-
建立 Auto Scaling 群組 (執行個體生命週期政策預設為終止)
-
前往 Auto Scaling 群組詳細資訊頁面,然後選擇執行個體管理索引標籤
-
在生命週期關聯的執行個體生命週期政策中,選擇保留
-
使用 建立您的終止生命週期關聯:
- AWS CLI
-
設定執行個體保留
使用 create-auto-scaling-group 命令搭配執行個體生命週期政策:
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-asg \
--launch-template LaunchTemplateName=my-template,Version='$Latest' \
--min-size 1 \
--max-size 3 \
--desired-capacity 2 \
--vpc-zone-identifier subnet-12345678 \
--instance-lifecycle-policy file://lifecycle-policy.json
lifecycle-policy.json 的內容:
{
"RetentionTriggers": {
"TerminateHookAbandon": "retain"
}
}
新增終止 lifecycle hook
使用 put-lifecycle-hook 命令:
aws autoscaling put-lifecycle-hook \
--lifecycle-hook-name my-termination-hook \
--auto-scaling-group-name my-asg \
--lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
--default-result ABANDON \
--heartbeat-timeout 300