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

Fargate タスクにおいて、Amazon ECS RunTask API を実行できず、"Capacity is unavailable" エラーが発生する場合のトラブルシューティング方法を教えてください。

所要時間1分
0

Amazon Elastic Container Service (Amazon ECS) の RunTask API を使用して AWS Fargate タスクを起動したいと考えていますが、キャパシティに問題があり、タスクを実行できません。

簡単な説明

Amazon ECS に Fargate タスクを起動する容量がない場合、RunTask API は実行できず、次のエラーメッセージが表示されます。

"Capacity is unavailable at this time. Please try again later or in a different availability zone"

このエラーをトラブルシューティングするには、しばらく待ってから RunTask APIを再試行してください。なお、AWS Step Functions を使用すると再試行プロセスを自動化できます。

解決策

待機してから、RunTask API を再試行します。

次の手順を実行すると、RunTask に使用できる容量が増え、待機時間を短縮できる場合があります。

  • Amazon ECS はアベイラビリティーゾーンごとに容量を管理するため、RunTask のリクエストパラメータ networkConfiguration.awsvpcConfiguration.subnets を指定し、別々のアベイラビリティーゾーンに複数のサブネットを設定することを推奨します。
  • RunTask のリクエストパラメータ overrides.cpu および overrides.memory を複数の CPU とメモリの組み合わせに設定します。詳細については、「タスクの CPU とメモリ」を参照してください。

RunTask API を自動化する

RunTask API の開始とその後の再試行を自動化するには、Step Functions を使用します。

Step Functions で RunTask を開始したものの、容量の制限が原因でタスクを実行できなかった場合、Step Functions は、ErrorEquals フィールドに ECS.AmazonECSException を記録します。この情報を参考に、今後の再試行を構成します。

Step Function ワークフローの構成については、「Step Functions で Amazon ECS や Fargate タスクを管理する」を参照してください。Step Functions のエラーレポートに関する詳細については、「Step Functions のエラー処理」を参照してください。

Amazon EventBridge から RunTask API を定期的に呼び出す場合は、EventBridge から Step Functions を呼び出し、再試行を自動化します。

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

関連するコンテンツ