AWS Fargate スロットリングのクォータ - Amazon Elastic Container Service

AWS Fargate スロットリングのクォータ

AWS Fargate は、リージョンごとに各 AWS アカウントのトークンバケットアルゴリズムを使用して、Amazon ECS タスクと Amazon EKS ポッドの起動レートをクォータ (以前は制限と呼ばれていました) に制限します。このアルゴリズムでは、アカウントには、特定の数のトークンを保持するバケットがあります。バケット内のトークンの数は、特定の秒におけるレートクォータを表します。各カスタマーアカウントには、タスクとポッドのトークンバケットがあり、カスタマーアカウントが起動したタスクとポッドの数に応じて枯渇していきます。このトークンバケットは、定期的により多くのリクエストを行うことができるバケットの最大値と、必要に応じて一定数のリクエストを維持できるリフィルレートを持ちます。 

例えば、Fargate カスタマーアカウントのタスクとポッドトークンのバケットサイズは 100 トークンで、リフィルレートは毎秒 20 トークンです。したがって、カスタマーアカウントごとに最大 100 の Amazon ECS タスクと Amazon EKS ポッドをすぐに起動できます。持続的な起動レートは、1 秒あたり 20 の Amazon ECS タスクと Amazon EKS ポッドです。

アクション バケット最大容量 (またはバーストレート) バケット補充率 (または持続率)
オンデマンドの Amazon ECS タスクおよび Amazon EKS ポッドの Fargate リソースレートクォータ1 100 20
スポット Amazon ECS タスクの Fargate リソースレートクォータ 100 20

1Amazon EKS ポッドのみを起動するアカウントのバーストレートは 20 で、Amazon EKS プラットフォームバージョンで呼び出されるプラットフォームバージョンを使用する場合、1 秒あたりの持続的なポッド起動レートは 20 です。

Fargate での RunTask API のスロットリング

さらに、Fargate は Amazon ECS RunTask API を使用したタスクの起動時に、別のクォータを使用してリクエストレートを制限します。Fargate は、リージョンごとに、各 AWS アカウントの Amazon ECS RunTask API リクエストを制限します。各リクエストは、バケットから 1 つのトークンが削除されます。これは、サービスのパフォーマンスを向上し、Fargate のすべてのお客様に平等にご利用いただくために行います。API コールは、呼び出し元が Amazon Elastic Container Service コンソール、コマンドラインツール、サードパーティーアプリケーションのどれであるかに関係なく、リクエストクォータの対象となります。Amazon ECS RunTask API への呼び出しのレートクォータは毎秒 20 コール (バーストおよび持続的) です。ただし、この API を呼び出すたびに、最大 10 のタスクを起動できます。つまり、この API に 10 回の呼び出しを行い、各呼び出しで 10 のタスクを起動するように要求することで、1 秒で 100 のタスクを起動できます。同様に、この API に 20 回の呼び出しを行い、各呼び出しで 5 つのタスクを起動するように要求することもできます。Amazon ECS RunTask API の API スロットリングの詳細については、Amazon ECS API リファレンスの「API リクエストのスロットリング」を参照してください。

実際には、タスクやポッドの起動レートは、ダウンロードおよび解凍するコンテナイメージ、ヘルスチェック、タスクやポッドをロードバランサーに登録するなどの統合を有効にする他の考慮事項にも依存します。お客様が有効にした機能により、以前のクォータに比べるとタスクとポッドの起動レートにばらつきが見られます。

Fargate でのレートクォータの調整

AWS アカウントの Fargate レートスロットリングクォータの増加をリクエストできます。クォータの調整をリクエストするには、AWS Support センターまでお問い合わせください。