無限ノック › SAP 練習問題一覧 › 問題
SAP新しいソリューションのための設計

グローバル展開するeコマース企業が、新しいオーダー管理プラットフォームをAWS上に構築しています。要件は以下の通りです。 【現在の課題】 - 1日に平均500万件の注文処理が必要で、ピーク時には通常の10倍のトラフィックが発生する - 注文データは複数のマイクロサービス(在庫、決済、配送、通知)が非同期で処理する必要がある - 決済処理は最低1回の配信保証が必要で、重複処理を防がなければならない(冪等性の確保) - 通知サービスは決済完了後に即時にトリガーされる必要があるが、通知失敗は注文処理全体に影響してはならない - 在庫サービスは時折メンテナンスで停止するが、その間も注文は受け付け続ける必要がある 【追加要件】 - 各マイクロサービスは独立してスケールできること - 処理失敗したメッセージは最大3回リトライ後、デッドレターキュー(DLQ)に送る - イベントの順序は決済サービスのみが保証される必要がある - コスト最適化のため、処理量に応じた従量課金モデルを採用する これらすべての要件を満たすアーキテクチャとして最も適切なものはどれですか?

A
Amazon Kinesis Data Streamsを中心に配置し、各マイクロサービスをKinesisコンシューマーとして実装する。決済サービスには専用のシャードを割り当て順序を保証する。在庫・通知サービスもKinesisから直接消費し、それぞれLambda関数でDLQを実装する。
Kinesisはストリーミングデータのリアルタイム処理向きでキュー用途には過剰です。
B
Amazon SNSトピックを注文受付窓口として使用し、各マイクロサービスのSQSキューをSNSサブスクリプションとして登録するファンアウトパターンを採用する。決済サービスにはSQS FIFOキューを使用し順序と冪等性を保証する。在庫サービスのキューは標準SQSとし、メッセージ可視性タイムアウトとDLQを設定する。通知サービスのキューは決済完了イベントをEventBridgeでフィルタリングして転送する。各サービスはLambdaまたはECSで実装し独立スケールを実現する。
✓ 正解
SNS+SQSファンアウトパターンは各要件を満たす最適解です。SQS FIFOは決済の順序保証と冪等性(MessageDeduplicationId)を提供します。標準SQSは在庫サービスのメンテナンス中もメッセージを保持し、可視性タイムアウトとDLQで最大3回リトライを実現します。通知はEventBridgeで決済完了後のみトリガーされ、失敗しても他サービスに影響しません。LambdaとECSは需要に応じた自動スケールと従量課金を実現します。
C
AWS Step Functionsを使用してオーダー処理ワークフローを定義し、各マイクロサービスをState Machineのステートとして直列に実行する。エラーハンドリングはStep Functionsのリトライ・キャッチ機能で対応し、失敗時はSNS通知する。通知サービスは並列ステートとして実行する。
Step Functionsは同期的なワークフロー向けで要件の非同期パターンに不適です。
D
Amazon MQ(ActiveMQ)をメッセージブローカーとして採用し、トピックとキューを組み合わせて各マイクロサービスにメッセージを配信する。決済サービスにはトランザクションセッションを使用して冪等性を確保する。EC2ベースのコンシューマーで各サービスを実装する。
Amazon MQはマネージドサービスですがEC2ベースのコンシューマーではコスト最適化と独立スケールの要件を満たしにくいです。

解説

SNS+SQSファンアウトパターンは各要件を満たす最適解です。SQS FIFOは決済の順序保証と冪等性(MessageDeduplicationId)を提供します。標準SQSは在庫サービスのメンテナンス中もメッセージを保持し、可視性タイムアウトとDLQで最大3回リトライを実現します。通知はEventBridgeで決済完了後のみトリガーされ、失敗しても他サービスに影響しません。LambdaとECSは需要に応じた自動スケールと従量課金を実現します。 選択肢A の Kinesisはストリーミングデータのリアルタイム処理向きでキュー用途には過剰です。 選択肢C の Step Functionsは同期的なワークフロー向けで要件の非同期パターンに不適です。 選択肢D の Amazon MQはマネージドサービスですがEC2ベースのコンシューマーではコスト最適化と独立スケールの要件を満たしにくいです。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAP の問題一覧に戻る