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

金融サービス企業がマイクロサービスアーキテクチャへの移行を計画しています。現在のモノリシックシステムは 1 日あたり 1,000 万トランザクションを処理し、各トランザクションはデータ整合性が極めて重要です。新アーキテクチャの要件は以下の通りです。 ①各マイクロサービスは独自のデータストアを持つ(Database per Service パターン)。 ②分散トランザクション間のデータ整合性を保証する(最終的整合性は許容するが、ビジネスルール違反は許容しない)。 ③監査ログとして全トランザクションの変更履歴を保持する。 ④サービス間の疎結合を維持する。 ⑤障害発生時に自動的にロールバックまたは補償トランザクションを実行する。 ⑥ピーク時のスループットは 1 秒あたり 500 トランザクション。設計として最も適切なアーキテクチャパターンと AWS サービスの組み合わせはどれですか?

A
各マイクロサービスは Amazon Aurora を使用し、Aurora のグローバルデータベース機能でリージョン間のデータ整合性を保証する。サービス間通信は Amazon API Gateway を経由した同期 REST API で実装し、分散トランザクションは X-Ray でトレースする。補償トランザクションは Lambda 関数で実装する。
Aurora Global Database はクロスリージョン読み取りレプリカ機能であり分散トランザクション管理を提供せず、API Gateway 経由の同期 REST 通信は密結合を生み疎結合要件を満たしません。
B
Saga パターン(Choreography ベース)を採用し、Amazon EventBridge でサービス間イベントを中継する。各サービスは DynamoDB を使用し、DynamoDB Streams でイベントを発行する。EventBridge Pipes で補償トランザクションのワークフローを管理し、S3 + Athena で監査ログを分析する。
Choreography ベースでは多段階トランザクションの全体状態追跡と補償管理が困難で、EventBridge Pipes は複雑な補償ワークフローのオーケストレーションには適しません。
C
Saga パターン(Orchestration ベース)を採用し、AWS Step Functions でトランザクションのオーケストレーションを実装する。各サービスは適切なデータストア(RDS、DynamoDB 等)を選択する。サービス間メッセージングには Amazon SQS(FIFO キュー)と SNS を組み合わせ、Amazon Kinesis Data Streams でイベントソーシングを実装して監査ログとする。EventBridge でサービス間の疎結合を維持しつつ、Step Functions のエラーハンドリングで補償トランザクションを自動実行する。
✓ 正解
Step Functions による Orchestration ベースの Saga パターンはトランザクション全体のフロー・状態・補償処理を一元管理でき、複雑な金融トランザクションの可視化と障害時の補償トランザクション自動実行に最適です。
D
分散トランザクションには Amazon MQ(ActiveMQ)を使用して 2 フェーズコミット(2PC)プロトコルを実装する。各サービスは PostgreSQL RDS インスタンスを持ち、XA トランザクションで強整合性を保証する。監査ログは CloudTrail で収集し、S3 に保存する。障害時のロールバックは RDS のトランザクション機能に委任する。
2フェーズコミット(2PC: Two-Phase Commit)はマイクロサービスのアンチパターンであり、中央コーディネーターへの依存が単一障害点となって可用性を低下させます。

解説

Step Functions による Orchestration ベースの Saga パターンはトランザクション全体のフロー・状態・補償処理を一元管理でき、複雑な金融トランザクションの可視化と障害時の補償トランザクション自動実行に最適です。 選択肢A の Aurora Global Database はクロスリージョン読み取りレプリカ機能であり分散トランザクション管理を提供せず、API Gateway 経由の同期 REST 通信は密結合を生み疎結合要件を満たしません。 選択肢B の Choreography ベースでは多段階トランザクションの全体状態追跡と補償管理が困難で、EventBridge Pipes は複雑な補償ワークフローのオーケストレーションには適しません。 選択肢D の2フェーズコミット(2PC: Two-Phase Commit)はマイクロサービスのアンチパターンであり、中央コーディネーターへの依存が単一障害点となって可用性を低下させます。

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

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

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