はじめに
こんにちは!
先日、AWS Bedrock を使用する中で、ThrottlingException というエラーに遭遇しました。
今回は、その時の対応方法と、学んだことを備忘録として残していきたいと思います!
前知識:ThrottlingException とは
AWS Bedrock でリクエストを送るときに発生する可能性のあるエラーの一つです。
-
HTTP ステータスコード: 429(Too Many Requests)
-
原因: アカウントのクォータ(利用制限)を超えてしまった時に発生
簡単に言うと「リクエスト送りすぎ!」ということですね。
やっていたこと
複数リクエストを同時タイミングでBedrock に送っていました。
すると、こんなエラーが。
ThrottlingException:
あ、これだ。
⭐️ 最初の対応:クォータ引き上げをリクエスト
AWS Bedrock の公式ドキュメントには以下のように書かれていました。
ワークロードトラフィックがアカウントクォータを超える場合は、アカウントマネージャーまたは AWS サポートに連絡して、クォータの引き上げをリクエストします。
「なるほど、クォータを引き上げてもらえば解決か!」
AWS サポートに連絡して、クォータ引き上げをリクエストしました。
私からは以下のような内容で連絡しました:
システムが大量のリクエストを送る必要があるので、クォータを引き上げてもらえませんか?
こんな感じで
そして待つこと数日。
...返事が来た。
申し訳ございませんが、誠に恐れ入りますが、前例のない需要の高まりを受け、現在上限緩和のスケジュールをご案内することができかねます。
AWSでは、お客様へのサービス向上を目的に、インフラストラクチャの容量拡大に積極的に取り組んでおりますこと、何卒ご理解賜りますようお願いいたします。
おいまじかよ、、
結果としては、引き上げ許可は降りませんでした。
では、別の手段だ
落ち込んでいても仕方ないので、別の手段を考えることにしました。
AWS ドキュメントを読み直すと、こんなことが書いてありました。
信頼性を向上させるために、エクスポネンシャルバックオフとランダムジッターで再試行を使用する AWS 推奨アプローチを採用することをお勧めします。
「なるほど、再試行ロジックで対応する方法もあるんだ」
つまり、リクエストが失敗したら、ちょっと待ってから もう一度やり直す という戦略ですね。
実装と結果
実際に再試行ロジック(エクスポネンシャルバックオフ)を実装してみました。
基本的な考え方は以下の通りです:
| 試行 | 待機時間 | 次のアクション |
|---|---|---|
| 1回目の失敗 | 1秒待つ | もう一度 |
| 2回目の失敗 | 2秒待つ | もう一度 |
| 3回目の失敗 | 4秒待つ | もう一度 |
| 4回目の失敗 | 8秒待つ | もう一度 |
このように待機時間を指数関数的に増やしていくことで、サーバーの負荷が下がるのを待ちながら、何度もトライできます。
実装後、再度テストしてみた。
- Before: ThrottlingException が頻繁に発生
- After: エラーが出ても、リクエストを受け付けてくれるまで時間が空いた後に成功!
これで、今回の問題はクリア!
今回の学び
✅ 学んだこと① 「アカウントクォータの大切さ」
無制限に API を叩けるわけではなく、アカウント毎に制限があります。
- 無料枠や低コストプランには制限がある
- 本運用前に確認が必須
✅ 学んだこと② 「クォータ引き上げが必ずしも解決策じゃない」
- 引き上げリクエストが却下されることもある
- 審査に時間がかかることもある
- 費用面で難しい場合もある
→ とにかく柔軟に対応する必要がある
✅ 学んだこと③ 「エクスポネンシャルバックオフは偉大」
単純な「X秒待ってリトライ」ではなく、待機時間を段階的に増やす 戦略です。
- 一時的な負荷 → 短時間待機で解決
- 持続的な負荷 → 時間をかけて対応
という柔軟な対応ができます。
感想
本運用前には想定していなかった課題に直面しましたが、以下の対応をすることで、なんとか解消の道筋を見出せました。
- AWS ドキュメントをちゃんと読む
- 複数の解決策を検討する
- すぐに諦めない
開発を通して、想定外のことが度々おきますが、その時に「どう対応するか」が非常に重要なんだと実感しました。
これからも、現場で遭遇した課題と解決方法を学び、同じような境遇に陥った方の一助になれるよう記事を出していければと思います!
では、また!
参考
- Amazon Bedrock API エラーコードのトラブルシューティング
- AWS 公式ドキュメント(ThrottlingException 関連)