Amazon Bedrock オンデマンドリソースを使用する際の、"429 Throttling" エラーをトラブルシューティングしたいです。
簡単な説明
Amazon Bedrock から、ThrottlingException (HTTP ステータスコード: 429) が返されるのは、AWS アカウントのクォータを超過したためにリクエストが拒否された場合です。クライアント側には、次のようなエラーメッセージが表示されます。
- "リクエスト数が多すぎます。しばらく待ってから再試行してください。送信したリクエスト数が多すぎます。しばらくまってから再試行してください。"
- "リクエストレートが高すぎます。リクエストの頻度を減らしてください。"
- "トークン数が多すぎます。しばらく待ってから再試行してください。"
この問題を解決するには、ユースケースに応じて次のトラブルシューティング手順を実行します。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AWS サービスクォータを確認、監視する
Amazon Bedrock サービスのクォータを超えていないことを確認します。詳細については、「サービスクォータを確認する」を参照してください。
アプリケーションのリクエスト量がクォータを超えないようにするには、Amazon CloudWatch を使用して Amazon Bedrock ランタイムメトリクス InputTokenCount および Invocations を監視します。各メトリクスは、1 分ごとに測定を行います。
リクエストを再試行する
エクスポネンシャルバックオフとランダムジッターを使用して再試行することがベストプラクティスです。AWS SDK を使用している場合は、「再試行の動作」を参照してください。
クロスリージョン推論プロファイルを使用する
クロスリージョン推論プロファイルを使用してトラフィックを複数の AWS リージョンに動的にルーティングすると、各リクエストの可用性を最適化し、使用率の高い期間のパフォーマンスを向上させることができます。詳細については、GitHub のウェブサイトの amazon-bedrock-workshop で、クロスリージョン推論用のコード例を参照してください。
注: クロスリージョン機能を使用するには、Amazon Bedrock がサポートするリージョンとモデルを使用する必要があります。
プロビジョニングされたスループットを使用する
高いスループット要件がある場合は、プロビジョニングされたスループットを購入してください。Amazon Bedrock コンソールでプロビジョニングされたスループットを使用する場合は、「Amazon Bedrock リソースでプロビジョニングされたスループットを使用する」を参照してください。AWS CLI または Python SDK でプロビジョニングされたスループットを使用する場合は、「プロビジョニングされたスループット用のコード例」を参照してください。
注: プロビジョニングされたスループットを購入する前に、Amazon Bedrockがサポートするリージョンとモデルを使用していることを確認してください。
クォータ増加をリクエストする
ワークロードのトラフィックがアカウントのオンデマンドクォータを超えている場合は、AWS サポートまたはアカウントマネージャーにお問い合わせのうえ、クォータの増加をリクエストしてください。リクエストする際は、次の情報を含めてください。
- 増加を希望するクォータの名前
- モデルの ID
- クォータ増加の対象リージョン