EMR のような、1 秒あたりまたは 1 分あたりに EC2 に対して実行できる呼び出し回数を制限する EC2 API スロットリング制限があるかどうか知りたいのですが。
もしそうなら、その制限は何ですか? どこかに公開されていますか?
ベストアンサー1
アマゾンEC2一方、彼らの一般的なクエリ API リクエスト レート取り扱い:
サービスのパフォーマンスを向上させるために、各 AWS アカウントの Amazon EC2 API リクエストを制限しています。Amazon EC2 API へのすべての呼び出し (アプリケーションからの呼び出し、Amazon EC2 コマンドラインインターフェイスへの呼び出し、Amazon EC2 コンソールからの呼び出しのいずれであっても) が、許可されている最大 API リクエストレートを超えないようにします。IAM ユーザーによって行われた API リクエストは、基盤となる AWS アカウントに関連付けられることに注意してください。
Amazon EC2 API アクションは、次のカテゴリに分類されます:
[...]API リクエストがそのカテゴリの API リクエスト レートを超えると、リクエストは RequestLimitExceeded エラー コードを返します。このエラーを防ぐには、アプリケーションが API リクエストを高レートで再試行しないようにします。これは、ポーリング時に注意し、指数バックオフ再試行を使用することで実現できます。
詳細は多数のサービス間で異なる可能性がありますが、通常は同様のパターンが採用されていると想定しても問題ないと思います (EC2 が他の多くのサービスもサポートしているため、この点も考慮する必要があります)。
EC2 からの前述の説明と、AWS サポートとやり取りしたユーザーからの間接的な引用の両方から、制限はサービス ステータスやアカウントごとに異なる可能性があることが示唆されているようです。つまり、AWS は、専用の高パフォーマンス ユース ケース、不正使用の疑いなどに応じて、個々のアカウントの制限を上げたり下げたりすることができます。例:
RequestLimitExceeded
内でクライアントエラーコードアカウントごとの処理についてのヒント:お使いのアカウントで Amazon EC2 API によって許可されている最大リクエストレートを超えました。 [...]
EBS API レート制限を増やすにはどうすればよいですか?:
Rightscale サポートは、このアカウントに多数の MySQL データベースがあり、それらすべてにバックアップ用の EBS スナップショットが取得されているため、この API への呼び出し回数を超えていると思われるため、EBS API レート制限を増やすには Amazon に連絡する必要があると言っています。
AWSチームの対応エラー: boto を使用してインスタンスを起動および終了する際のリクエスト制限を超えました:
EC2 で表示されるレート制限は、システム負荷に応じて異なる場合があります。
サウルの答えAmazon Web Services S3 リクエスト制限:
しかし、この質問を投稿した後、特定のバケットへのリクエストが多すぎるため、LIST リクエストを 1 秒あたり 10 リクエストに制限したというメールを AWS から受け取りました。
もちろん、ほとんどのルールには例外がありますが、私は次の2つのサービスが文書化していることを知っています特定の制限:
に概説されているようにAPI リクエスト エラーのトラブルシューティングクライアント側でこれを処理するための正しいアプローチは、実装することです。AWS でのエラー再試行と指数バックオフ(ほとんどAWS SDK についてその間、デフォルトの再試行ポリシーを調整したり、カスタム実装を追加したりするオプションを含め、このガイダンスを自動的に適用します。