スキップしてコンテンツを表示

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 メトリクスCPUUtilization および StatusCheckFailed_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 のキャパシティプロバイダーで発生する、マネージドターミネーション保護に関するエラーの解決方法を教えてください」を参照してください。

スポットインスタンスの中断を確認する

クラスターでスポットインスタンスを使用している場合は、そのスポットインスタンスが削除されたり中断したりした原因を確認します。Amazon EC2 により、スポットインスタンスが削除されたかどうかを判断します。Amazon EC2 がスポットインスタンスを中断する場合は、中断の 2 分前に通知が行われます。

中断できない重要なワークロードを伴うアプリケーションには、オンデマンドインスタンスを使用することをおすすめします。

インスタンスに対する監視を設定する

CloudWatch アラームを作成し、インスタンスが自動的に停止、削除、再起動、復旧するタイミングを監視することで、問題を事前に特定します。さらに、CPUUtilization、DiskReadOps、DiskWriteOps、NetworkIn、NetworkOut などの重要なメトリクスに対しても CloudWatch アラームを作成します。

Amazon Simple Notification Service (Amazon SNS) と Amazon EventBridge を使用して、停止、削除、ヘルスチェックの失敗など、インスタンスの状態変化に関するアラートを受信します。インスタンスの状態が変化したときにメールを送信するアラームを作成することも有効です。

クラスター、インスタンス、サービス、タスクレベルでメトリクスを収集するには、Container Insights を設定します。

高可用性を設定する

スプレッドタスクやビンパックタスクなどのタスク配置戦略を実施することで、1 つのインスタンスに過剰なタスクが集中することを防ぎます。

また、コンテナインスタンスを複数のアベイラビリティーゾーンに分散させることで、インスタンスが予期せず削除された場合の影響を軽減します。詳細については、「Amazon ECS の可用性に関するベストプラクティス」を参照してください。

AWS公式更新しました 1年前