Amazon ECS デプロイサーキットブレーカーがデプロイ状態を FAILED に設定した原因を知りたいです。

所要時間1分
0

Amazon Elastic Container Service (Amazon ECS) デプロイサーキットブレーカーにより、デプロイ状態が FAILED に設定されました。デプロイが失敗した原因をトラブルシューティングしたいです。

簡単な説明

デプロイにおいて、連続して発生した障害の数が定義したしきい値に達すると、デプロイサーキットブレーカーはデプロイ状態を FAILED に設定します。次のエラーメッセージが表示される場合があります。

Resource handler returned message: Error occurred during operation 'ECS Deployment Circuit Breaker was triggered'." (RequestToken: xxxxxxxx-xxxx-xxxxxx-xxxxxxx, HandlerErrorCode: GeneralServiceException) (操作中にエラーが発生しました。'Deployment Circuit Breaker がトリガーされました')

デプロイは。次の問題が原因で失敗する可能性があります。

  • コンテナがヘルスチェックに合格できなかった。
  • ターゲットグループが Application Load Balancer のヘルスチェックに合格できなかった。
  • Amazon Elastic Container Registry (Amazon ECR) イメージが欠けている。
  • コンテナインスタンスがすべての要件を満たしていなかった。
  • タスクが停止したか、開始できなかった。

解決策

この問題をトラブルシューティングするには、Amazon ECS のサービスイベントメッセージを参照し、Amazon ECS がサーキットブレーカーを起動した原因を特定します。次に、原因に応じて次のトラブルシューティングを行います。

コンテナがヘルスチェックに合格できなかった

タスク内の Amazon ECS コンテナがヘルスチェックに合格できなかった場合、次のエラーメッセージが表示されます。

(service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks.

この問題を解決するには、次の手順を実行します。

詳細については、「Amazon ECS タスクがコンテナヘルスチェックに合格できない場合に、トラブルシューティングする方法を教えてください」を参照してください。

ターゲットグループが Application Load Balancer のヘルスチェックに合格できなかった

この問題を解決するには、次の手順を実行します。

  1. ターゲットグループのヘルスチェック設定が正しく構成されていることを確認します。
  2. アプリケーションが、指定したヘルスチェックリクエストに正しく応答することを確認します。さらに、ネットワークやセキュリティグループの問題によってヘルスチェックリクエストがブロックされていないことを確認します。

詳細については、「Application Load Balancer のヘルスチェックに合格できない場合のトラブルシューティング方法を教えてください」を参照してください。

注: Amazon ECS は、ヘルスチェックでエラーが連続して発生した場合にのみロールバックを開始します。

Amazon ECR イメージが欠けている

この問題を解決するには、次の手順を実行します。

  1. タスク定義のイメージ URI が正しく、Amazon ECR リポジトリまたは他のコンテナレジストリに置かれていることを確認します。
  2. Amazon ECS のタスク実行 IAM ロールに、Amazon ECR からイメージを取得するための正しいアクセス許可があることを確認します。
  3. Amazon ECS クラスターとコンテナレジストリ間に、ネットワーク接続の問題がないか確認します。

詳細については、「Amazon ECS クラスターでタスクを開始できないときに発生する、Image does not exist というエラーを解決する方法を教えてください」を参照してください。

コンテナインスタンスがすべての要件を満たしていなかった

詳細については、「Amazon ECS で発生する、no container instance met all of its requirements というエラーを解決する方法を教えてください」を参照してください。

タスクが停止したか、開始できなかった

この問題を解決するには、次の手順を実行します。

  1. Amazon CloudWatch Logs Insights を使用してログを確認し、DescribeTasks API を使用してタスクの stoppedReason を取得します。
  2. クラスターにアクティブなインスタンスがあることを確認します。
  3. タスクの CPU またはメモリがコンテナインスタンスの CPU またはメモリを超えていないことを確認します。

詳細については、「Amazon ECS タスクが停止した理由を知りたいです」および「Amazon ECS クラスターのタスクが開始されない理由を知りたいです」を参照してください。

関連情報

Amazon ECS デプロイサーキットブレーカーの発表

AWS公式
AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ