無限ノック › SAP 練習問題一覧 › 問題
SAP既存のソリューションの継続的改善

フィンテック企業が、Amazon EC2インスタンス(c5.4xlarge × 20台、Application Load Balancer配下)とAmazon RDS for MySQL(db.r5.8xlarge、Multi-AZ構成)を使用してリアルタイム決済処理システムを運用しています。データベースのサイズは8TBで、ピーク時には毎秒5,000トランザクションを処理しています。過去6ヶ月間で以下のパフォーマンス問題が深刻化しています。ピーク時の平均クエリ応答時間が10msから450msに悪化し、RDSインスタンスのCPU使用率がピーク時に常時95%に達しています。また、既存のリードレプリカのレプリケーション遅延が常時30秒を超えており、実質的に利用不可能な状態です。アプリケーションの整合性要件として、決済バリデーションクエリはコミット済みの最新データを読む必要があり(強い整合性が必須)、レポーティング・分析クエリは最大100msの遅延であれば許容されます。アプリケーション開発チームはコード変更を最小限にとどめたいと述べており、接続先エンドポイントの変更やキャッシュ呼び出しの追加程度は許容されますが、データモデルの再設計や大規模なアプリケーション書き換えは困難です。コスト増加は許容されますが、可能な限り抑制したいと考えています。Solutionsアーキテクトが推奨すべきソリューションはどれですか?

A
Amazon RDS for MySQLをAmazon Aurora MySQLに移行する。Aurora MySQLはクォーラムベースのストレージレイヤーレプリケーションを採用しており、バイナリログを用いる標準MySQLレプリケーションと異なり、リードレプリカの遅延を通常100ms未満に抑制できる。決済バリデーションクエリはAuroraライターエンドポイントにルーティングして強い整合性を保証し、レポーティングクエリはAuroraリーダーエンドポイントにルーティングする。必要に応じてリードレプリカを最大15台まで追加可能であり、頻繁に実行されるレポーティングクエリにはAmazon ElastiCache for Redisをキャッシュ層として追加しAuroraリードレプリカの負荷をさらに軽減する。
✓ 正解
Aurora MySQLのストレージ共有型のクォーラムベースレプリケーションにより通常100ms未満のレプリカ遅延を実現し、レポーティングの100ms要件を確実に満たします。ライターエンドポイントによる決済バリデーションは強い整合性を保証し、ElastiCacheで繰り返しレポートクエリをキャッシュすることでAurora負荷をさらに削減できます。接続エンドポイントの変更とキャッシュ呼び出し追加のみでアプリケーション変更を最小化できます。
B
既存のRDS MySQLインスタンスをdb.r5.24xlargeにスケールアップして処理能力を増強し、リードレプリカを5台追加してAmazon Route 53の加重ルーティングポリシーで読み取り負荷を分散する。Amazon RDS Proxyを導入してコネクションプーリングによるオーバーヘッドを削減し、Amazon ElastiCache for Redisをライトスルーキャッシュとして全クエリに適用することでRDSへのリクエスト数を削減する。
RDS MySQL のスケールアップでは一時的改善は可能ですが、バイナリログレプリケーション遅延の根本問題は解消されず、ライトスルーキャッシュの全クエリ適用は決済バリデーションの強整合性要件にも反します。
C
Amazon RDS for MySQLをAmazon Aurora MySQL Global Databaseに移行し、プライマリクラスターを現在のリージョンに、パフォーマンス分離のためセカンダリクラスターを別のリージョンに配置する。決済バリデーションクエリはプライマリクラスターのライターエンドポイントに接続し、レポーティングクエリはセカンダリクラスターのリーダーエンドポイントにルーティングしてリージョン間で読み取り負荷を分散する。加えてAurora Serverless v2を活用してピーク時のキャパシティを自動スケーリングし、インスタンスサイズの管理負担を排除する。
Global Databaseはリージョン間レプリケーション遅延(通常1秒以下だが状況により数秒超)が100ms要件を超えるリスクがあり過剰設計です。
D
Amazon RDS for MySQLのデータをAWS Database Migration Serviceを使用してAmazon DynamoDBに移行する。DynamoDBのシングルテーブル設計でデータモデルを再構築し、Amazon DynamoDB Accelerator(DAX)をキャッシュ層として追加することで決済バリデーションのレイテンシをマイクロ秒レベルに改善する。レポーティング・分析クエリはDynamoDB ExportをS3経由でAmazon Athenaで処理することにより、OLTPとOLAPを完全に分離してRDSの負荷を根本的に排除する。
DynamoDB移行はシングルテーブル設計へのデータモデル再設計が必須であり、コード変更最小の要件に根本的に違反します。

解説

Aurora MySQLのストレージ共有型のクォーラムベースレプリケーションにより通常100ms未満のレプリカ遅延を実現し、レポーティングの100ms要件を確実に満たします。ライターエンドポイントによる決済バリデーションは強い整合性を保証し、ElastiCacheで繰り返しレポートクエリをキャッシュすることでAurora負荷をさらに削減できます。接続エンドポイントの変更とキャッシュ呼び出し追加のみでアプリケーション変更を最小化できます。 選択肢Bはスケールアップで一時的改善は可能ですが標準MySQLのバイナリログレプリケーション遅延問題は解決せず、ライトスルーキャッシュ全適用は決済バリデーションの強い整合性要件に反します。 選択肢CのGlobal Databaseはリージョン間レプリケーション遅延(通常1秒以下だが状況により数秒超)が100ms要件を超えるリスクがあり過剰設計です。 選択肢DのDynamoDB移行はシングルテーブル設計へのデータモデル再設計が必須であり、コード変更最小の要件に根本的に違反します。

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

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

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