AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、およびアプリケーションからの API コールは、AWS アカウントの最大レート制限に影響します。
注: AWS のサービスレート制限を引き上げることはできません。
解決方法
スロットリングエラーを回避するには、次のベストプラクティスに従ってください。
アプリケーションコードにエクスポネンシャルバックオフを実装します。エクスポネンシャルバックオフを使用すると、AWS への API コールのスロットリングが発生するたびに待機時間を長くすることができます。アプリケーションによっては、最大遅延回数と最大再試行回数が異なる場合があります。 注: AWS SDK は、自動再試行ロジックとエクスポネンシャルバックオフアルゴリズムを実装します。
一部のアプリケーションでは、キャッシュを実装して API コールの速度を下げることができます。例えば、アプリケーションがクロスアカウントワークフローに対して API コール AssumeRole を呼び出した場合、提供される一時的な認証情報を保存して、複数のクロスアカウント呼び出しで再利用できます。したがって、クロスアカウント API コールごとに新しい AssumeRole 呼び出しを行う必要はありません。
すべての API を一度に呼び出すのではなく、API コールを長期間にわたって分散します。例えば、SimulatePrincipalPolicy または GenerateServiceLastAccessedDetails を呼び出す日次ジョブがあるアプリケーションで、AWS Identity and Access Management (IAM) ユーザーとロールのアクセス許可を監査できます。複数の API コールを同時に実行する代わりに、実行時間をずらすことができます。
CreatePolicyVersion などの API コールを使用して IAM ポリシーのアクセス許可を動的に変更するアプリケーションの場合は別の方法を検討してください。例えば、IAM ロールの引き受け中にセッションポリシーを使用できます。
AWS Security Token Service (AWS STS) スロットリングエラーの場合は、すべての AWS STS コールをグローバルエンドポイントに送信するのではなく、リージョンの STS エンドポイントを使用することを検討してください。各エンドポイントには個別のスロットリング制限があります。リージョンの AWS STS エンドポイントを使用すると、AWS STS API コールでのアプリケーションの応答時間を短縮できます。