無限ノック › SAA 練習問題一覧 › 問題SAA 高性能なアーキテクチャの設計
あるECサイト企業が5,000万件の商品カタログを保有しており、現在はRDS for MySQLのLIKE検索を使用していますが、フルテキスト検索に平均8〜12秒かかっています。新たに「ブランド・価格帯・カテゴリ別のファセット絞り込み(faceted search)」「検索キーワードとの関連度スコアリング」「複数フィールドへのあいまい一致検索」の機能追加が求められています。検索のレスポンスタイムを100ms以下にしつつ、上記の機能要件をすべて満たすための最も適切なアーキテクチャはどれですか?
A RDS for MySQLにFULLTEXT INDEXを追加し、MATCH() AGAINST()構文で全文検索クエリを最適化する
MySQLのFULLTEXT INDEXはある程度の全文検索機能を提供しますが、5,000万件規模での高速処理・ファセット集計・高度なスコアリングは標準でサポートされておらず、RDSの負荷も大幅に増大します。
B Amazon DynamoDBにGSI(グローバルセカンダリインデックス)を複数追加し、各属性での検索を高速化する
DynamoDBのGSIは特定のキーに対するルックアップには高速ですが、全文検索・あいまい一致・関連度スコアリングには対応していません。キー値アクセスパターン向けであり検索エンジンの代替にはなりません。
C Amazon OpenSearch Serviceに商品データをインデックス化し、検索リクエストをOpenSearch Serviceにルーティングする
✓ 正解
Amazon OpenSearch ServiceはElasticsearchをベースとした分散型フルテキスト検索エンジンです。5,000万件規模でもミリ秒レベルのレスポンスを実現し、ファセット集計(アグリゲーション)・BM25による関連度スコアリング・あいまい一致(Fuzzy Search)・複数フィールドへの検索をネイティブでサポートしています。商品データの書き込みはRDSで行い、検索クエリのみOpenSearch Serviceへルーティングするアーキテクチャが一般的です。
D Amazon Athenaを使用してS3に保存した商品データをParquet形式でパーティショニングしSQLクエリで検索する
Amazon Athenaはアドホックなバッチ分析クエリに適したサーバーレスサービスであり、クエリごとにS3スキャンが発生するためレスポンスタイムが数秒~数十秒かかり、リアルタイム商品検索には不向きです。
解説 Amazon OpenSearch ServiceはElasticsearchをベースとした分散型フルテキスト検索エンジンです。5,000万件規模でもミリ秒レベルのレスポンスを実現し、ファセット集計(アグリゲーション)・BM25による関連度スコアリング・あいまい一致(Fuzzy Search)・複数フィールドへの検索をネイティブでサポートしています。商品データの書き込みはRDSで行い、検索クエリのみOpenSearch Serviceへルーティングするアーキテクチャが一般的です。
選択肢AMySQLのFULLTEXT INDEXはある程度の全文検索機能を提供しますが、5,000万件規模での高速処理・ファセット集計・高度なスコアリングは標準でサポートされておらず、RDSの負荷も大幅に増大します。
選択肢BのDynamoDBのGSIは特定のキーに対するルックアップには高速ですが、全文検索・あいまい一致・関連度スコアリングには対応していません。キー値アクセスパターン向けであり検索エンジンの代替にはなりません。
選択肢DAmazon Athenaはアドホックなバッチ分析クエリに適したサーバーレスサービスであり、クエリごとにS3スキャンが発生するためレスポンスタイムが数秒~数十秒かかり、リアルタイム商品検索には不向きです。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →