跳至內容

如何對 Amazon ECS 中的 EC2 執行個體終止問題進行疑難排解?

1 分的閱讀內容
0

我在 Amazon Elastic Cloud Compute (Amazon EC2) 上執行的 Amazon Elastic Container Service (Amazon ECS) 容器執行個體意外終止。

解決方法

若要確定執行個體終止的原因,請查看 TerminateInstances API 呼叫的 AWS CloudTrail 事件。在事件詳細資料中,記下調用 API 的 AWS Identity and Access Management (IAM) 使用者或角色的 userAgent 值。也請注意 SourceIPaddresseventTimeerrorCodeerrorMessage 的值。

請根據執行個體終止問題的原因,採取以下疑難排解動作。

查看運作狀態檢查指標的問題

檢查已終止執行個體 Amazon CloudWatch 指標CPUUtilizationStatusCheckFailed_Instance。異常可能表示有效能問題或硬體故障。如需詳細資訊,請參閱 Amazon EC2 執行個體的狀態檢查。如果您啟用了 CloudWatch Container Insights,則也請檢查 Container Insights 指標

檢查執行個體日誌以了解您的執行個體是否有網路連線、記憶體不足或其他潛在問題。高資源使用率可能導致執行個體終止問題。根據您的工作負載要求調整容器執行個體類型的大小

檢查 Auto Scaling 歷史記錄以尋找問題

檢查您的 Amazon EC2 Auto Scaling 群組活動歷史記錄,以檢查已排程的 EC2 Auto Scaling 事件是否終止了執行個體。如果您遇到了意外的 Auto Scaling 動作,請檢查您的 Auto Scaling 設定、擴展政策和閾值

為避免執行個體意外終止,請使用受管終止保護來保留包含正在執行任務的 Amazon ECS 容器執行個體。

您也可以為執行個體啟用終止保護,以防止意外終止。如果您啟用了終止保護但仍遇到問題,請參閱如何解決 Amazon ECS 中容量供應商錯誤的受管終止保護設定?

檢查 Spot 執行個體中斷

如果您對叢集使用了 Spot 執行個體,請檢查 Spot 執行個體終止或中斷的原因。確定 Amazon EC2 是否終止了 Spot 執行個體。如果 Amazon EC2 中斷您的 Spot 執行個體,那麼您會在中斷前 2 分鐘收到通知

對於具有不能中斷關鍵工作負載的應用程式,最佳做法是使用隨需執行個體

為執行個體設定監視器

建立 CloudWatch 警示來監控執行個體何時自動停止、終止、重新啟動或復原,以主動識別問題。此外,為重要指標 (例如 CPUUtilization、DiskReadOps、DiskWriteOps、NetworkIn 或 NetworkOut) 建立 CloudWatch 警示。

使用 Amazon Simple Notification Service (Amazon SNS) 和 Amazon EventBridge 接收執行個體狀態變更警示,例如停止、終止和運作狀態檢查失敗。您也可以建立一個警示,在執行個體狀態改變時傳送電子郵件

若要收集叢集、執行個體、服務和任務層級的指標,請設定 Container Insights

設定高可用性

使用任務放置策略,例如分散和裝箱任務,這樣您就不會將太多任務集中在一個執行個體上。

此外,將您的容器執行個體分佈在多個可用區域,以減少執行個體意外終止的影響。如需詳細資訊,請參閱 Amazon ECS 可用性最佳做法

AWS 官方已更新 1 年前