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 に使用できる容量が増え、待機時間を短縮できる場合があります。
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 を呼び出し、再試行を自動化します。