ある企業が AWS 上で大規模な検索システムを構築しています。製品カタログ(3 億件のドキュメント)に対して、全文検索、ファセット検索、地理空間検索が必要です。検索レイテンシーは P99 で 200ms 以下、書き込みは毎秒 1,000 件のリアルタイム更新が必要です。管理負荷を最小化したいと考えています。最も適切なサービスはどれですか?
- A. Amazon RDS PostgreSQL で pg_trgm 拡張を使って全文検索を実装し、PostGIS で地理空間検索を処理する
- B. Amazon DynamoDB に全製品データを格納し、GSI(グローバルセカンダリインデックス)で検索機能を実装する
- C. Amazon OpenSearch Service(旧 Elasticsearch Service)をマネージドクラスターとして展開し、インデックスシャーディング戦略を最適化する。OpenSearch の地理空間クエリと全文検索・ファセット集計をネイティブにサポートし、Auto-Tune 機能でパフォーマンスを自動最適化する
- D. Amazon CloudSearch を使って検索機能を実装し、ドメインを作成してインデックスを構成する
解答と解説を見る
正解: C
Amazon OpenSearch Service は大規模な全文検索、ファセット検索、地理空間検索をネイティブにサポートするマネージドサービスです。3 億件のドキュメントに対して適切なシャーディングを設定することで P99 200ms の達成が可能で、毎秒 1,000 件の書き込みも処理できます。Auto-Tune によるパフォーマンス自動最適化で管理負荷も軽減されます。 A: RDS PostgreSQL の pg_trgm は中小規模の全文検索に有効ですが、3 億件のドキュメントへの全文検索・ファセット・地理空間クエリに P99 200ms を達成することは非常に困難です。 D: Amazon CloudSearch は OpenSearch Service に比べて機能が限定的で、大規模な3億件のドキュメントや高度なファセット検索・地理空間検索への対応に制約があります。 B: DynamoDB の GSI は全文検索には対応しておらず、テキストの部分一致・全文検索・ファセット検索・地理空間クエリを直接実装することはできません。