本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理保留的執行個體
監控並控制已移至保留狀態的 Amazon EC2 執行個體。使用 CloudWatch 指標追蹤保留的執行個體,然後在完成自訂動作後手動終止保留的執行個體。
保留的執行個體不會計入 Amazon EC2 Auto Scaling 群組所需的容量。當執行個體進入保留狀態時,Auto Scaling 會啟動替換執行個體以維持所需的容量。例如,假設 Auto Scaling 群組的所需容量為 10。當執行個體進入 Terminating:Retained 狀態時,Auto Scaling 會啟動替換執行個體,將所需的容量維持在 10。您現在總共有 11 個執行中的執行個體:作用中群組中有 10 個,加上 1 個保留的執行個體。所有 11 個執行個體的標準 Amazon EC2 費用將適用,直到您手動終止保留的執行個體為止。
保留執行個體的執行個體生命週期狀態
了解使用執行個體生命週期政策時,執行個體如何轉換生命週期狀態。執行個體遵循從正常終止到保留到最終終止的特定路徑。
觸發保留時,執行個體會轉換這些狀態:
Terminating- 正常終止開始Terminating:Wait- 生命週期掛鉤執行Terminating:Proceed- 生命週期動作後續處理 (無論是成功還是失敗)Terminating:Retained- 勾點失敗,執行個體保留以進行手動介入
暖集區執行個體會根據情況採取不同的生命週期狀態路徑:
執行個體擴展回暖集區:
Warmed:Pending- 開始正常暖集區轉換Warmed:Pending:Wait- 生命週期掛鉤執行Warmed:Pending:Proceed- 生命週期動作後續處理 (無論是成功還是失敗)Warmed:Pending:Retained- 勾點失敗,執行個體保留以進行手動介入
從暖集區終止的執行個體:
Warmed:Terminating- 正常終止開始Warmed:Terminating:Wait- 生命週期掛鉤執行Warmed:Terminating:Proceed- 生命週期動作後續處理 (無論是否成功)Warmed:Terminating:Retained- 勾點失敗,執行個體保留以進行手動介入
監控保留的執行個體
由於保留的 Amazon EC2 執行個體會產生成本並需要手動介入,因此監控它們至關重要。Amazon EC2 Auto Scaling 提供數個 CloudWatch 指標來追蹤保留的執行個體。
啟用群組指標以追蹤保留的執行個體:
aws autoscaling enable-metrics-collection \ --auto-scaling-group-namemy-asg\ --metricsGroupTerminatingRetainedInstances
可用的指標為:
-
GroupTerminatingRetainedInstances顯示Terminating:Retained狀態中的執行個體數目。 -
GroupTerminatingRetainedCapacity顯示Terminating:Retained狀態的執行個體所代表的容量單位。 -
WarmPoolTerminatingRetainedCapacity會追蹤從暖集區終止的保留執行個體。 -
WarmPoolPendingRetainedCapacity會追蹤返回暖集區的保留執行個體。
您也可以檢查 Amazon EC2 Auto Scaling 群組的擴展活動,以了解保留執行個體的原因。尋找具有 StatusCode: Cancelled和狀態原因訊息的終止活動,指出生命週期掛鉤失敗:
aws autoscaling describe-scaling-activities \ --auto-scaling-group-namemy-asg
我們建議您在這些指標上建立 CloudWatch 警示,以便在執行個體進入保留狀態時提醒您。這可協助您追蹤成本影響,並確保您不會忘記清除需要手動介入的執行個體。
終止保留的執行個體
完成自訂動作後,請呼叫 TerminateInstanceInAutoScalingGroup API 來終止保留的執行個體:
aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-idi-1234567890abcdef0\ --no-should-decrement-desired-capacity