OpenSearch Serverless にてバッチ処理で429エラーが発生する問題
OpenSearch
AWS
OpenSearch Serverless でのバッチ処理検証結果から、大規模な全文検索システムには適さないことが判明。 そのためServerlessへの移行は断念。
バッチ処理での実測結果
- バッチサイズ 1500件 × 並列数 15 → 429エラー多発
- バッチサイズ 1500件 × 並列数 5 → 429エラー発生
- バッチサイズ 1500件 × 並列数 1 → それでも429エラー発生
- OCU を 20 に増やしても 5.5 OCU までしか使用されず、レート制限が先に発生
問題の本質
- OCU の処理能力ではなく、API レート制限がボトルネック
- バルクキュー容量:50-200リクエスト/ノード(固定)
- 同時接続数制限:非公開だが存在
- 大量データの高速投入は構造的に困難
Serverless が適している用途
-
リアルタイム・ニアリアルタイム処理
- API経由の個別データ更新
- ストリーミングデータの継続的な取り込み
- 継続的な小規模更新
-
小〜中規模の検索システム
- データ量が限定的なシステム
- 更新頻度が低いシステム
-
開発・検証環境
- 使用時のみコスト発生
- 自動スケールダウンによるコスト削減
Serverless が不適切な用途
-
大規模全文検索システム
- 数百万〜数千万件のドキュメントを扱うシステム
- 頻繁なインデックス更新が必要なシステム
- 複雑な検索クエリと大量データの組み合わせ
-
バースト的な大量書き込み
- 短時間での大量データ投入
- 複数システムからの同時バッチ処理
- 日次・月次の全件再インデックス
移行判断基準