ある小売企業が商品推薦システムを AWS 上に構築しています。ユーザーの購買履歴・閲覧履歴をリアルタイムで取り込み、個人化された商品推薦を 50ms 以内に API レスポンスとして返す必要があります。新しい商品の追加や在庫状況の変更は推薦結果にリアルタイムで反映される必要があり、システムは毎秒 10,000 リクエストを処理する必要があります。最も適切なアーキテクチャはどれですか?
- A. AWS Lambda で協調フィルタリングアルゴリズムをゼロから実装し、ElastiCache Redis にユーザーごとの推薦リストをキャッシュする
- B. Amazon Personalize でリアルタイム推薦システムを構築し、PutEvents API でリアルタイムのユーザーインタラクションを取り込む。推薦 API は Personalize のキャンペーンエンドポイント経由で提供し、商品カタログの更新は Personalize のデータセットを継続的に同期する
- C. Amazon Elasticsearch(OpenSearch)で全商品データをインデックス化し、ユーザーの購買履歴からルールベースの推薦を実装する
- D. Amazon SageMaker のリアルタイム推論エンドポイントで推薦モデルをホストし、Lambda 経由で推薦 API を提供する。ユーザー行動データは Kinesis で収集し、日次バッチでモデルを再トレーニングする
解答と解説を見る
正解: B
Amazon Personalize はリアルタイム個人化推薦を提供するフルマネージドサービスです。PutEvents API でユーザーインタラクションをリアルタイムに取り込み、推薦に即時反映できます。キャンペーンエンドポイントは自動スケールで毎秒 10,000 リクエストに対応し、50ms 以内のレイテンシーも達成可能です。商品カタログの継続同期で在庫変更も反映できます。 D: SageMaker + Lambda も機能しますが、日次バッチのモデル再トレーニングでは新商品や在庫変更をリアルタイムに反映する要件を満たせません。Amazon Personalize の方が推薦システムに特化した機能を持ちます。 C: OpenSearch のルールベース推薦は個人化 ML 推薦ではなく、ユーザーごとの個人化された推薦品質が大幅に低下します。 A: Lambda でのゼロ実装は高い開発コストがかかり、50ms のレイテンシーと毎秒 10,000 リクエストをキャッシュだけで実現するには複雑な設計が必要です。Amazon Personalize の利用がより効率的です。