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

グローバルな資産運用会社(ヘッジファンドや投資信託を運用する金融機関)が、AWS上にリアルタイムのポートフォリオリスク計算システムを構築しています。現在の状況と要件は以下の通りです。 【現在の構成】 - オンプレミスのRedisクラスター(50ノード)でポジションデータを管理 - Redis の Sorted Sets(スコア付きで要素をソートして管理するデータ構造)を使用したリスクランキング計算 - Pub/Sub 機能を利用したリアルタイムアラート配信 【AWS 移行要件】 - レイテンシ:読み取り 1 ミリ秒未満、書き込み 5 ミリ秒未満 - データ耐久性:金融規制要件により「RPO = 0(データ損失ゼロ)」が必須 - 可用性:AZ 障害時のフェイルオーバー後、ウォームアップなしで即時データアクセスが必要 - 既存の Redis クライアントライブラリ・コードは変更禁止 - 本番環境は us-east-1 に展開、3 つの AZ にまたがる高可用性構成 上記要件を最もよく満たすデータストアの構成はどれですか?

A
Amazon ElastiCache for Redis(クラスターモード有効)を Multi-AZ 設定で展開する。AOF(Append Only File:Redis の書き込み操作をログに記録してデータを復元する永続化機能)永続化を everysec(1 秒ごとにディスクへフラッシュ)設定で有効化し、自動フェイルオーバーを有効にする。
ElastiCache for Redis の AOF「everysec」設定では、最大 1 秒間のデータ損失が発生する可能性があり、RPO = 0 の要件を満たせません。ElastiCache はキャッシュ用途向けに設計されており、プライマリデータベースとしての耐久性保証を提供しません。
B
Amazon MemoryDB for Redis を 3 つの AZ にまたがる Multi-AZ 構成で us-east-1 にデプロイし、プライマリとレプリカノードを設定する。
✓ 正解
Amazon MemoryDB for Redis は、書き込みがマルチ AZ の分散トランザクションログに永続化されてから書き込み ACK を返す設計のため、AZ 障害が発生しても RPO = 0(データ損失ゼロ)を保証します。Redis 完全互換 API を提供するため既存コードの変更は不要で、フェイルオーバー後もデータは永続化されているためウォームアップ不要で即時アクセス可能です。MemoryDB はプライマリデータベースとして設計されている点が ElastiCache との根本的な違いです。
C
Amazon DynamoDB(On-Demand モード)と DynamoDB Accelerator(DAX)を組み合わせて us-east-1 に展開し、マルチ AZ 構成で高可用性を確保する。
DynamoDB + DAX は Redis 互換 API を提供せず、Sorted Sets や Pub/Sub などの Redis データ構造をサポートしません。既存の Redis クライアントコードをそのまま動かすことができません。
D
Amazon RDS for PostgreSQL(Multi-AZ)に hstore 拡張機能(ハッシュマップ型データを格納できる PostgreSQL 拡張)で Redis の Hash 型データを再実装し、ElastiCache for Redis をキャッシュ層として追加する。
PostgreSQL への再実装は Redis 互換 API を維持できず「既存コード変更禁止」の要件に違反します。また、RDS ではサブミリ秒レイテンシの読み取り要件を満たすことができません。

解説

正解: Amazon MemoryDB for Redis を 3 つの AZ にまたがる Multi-AZ 構成で us-east-1 にデプロイし、プライマリとレプリカノードを設定する。 Amazon MemoryDB for Redis は、書き込みがマルチ AZ の分散トランザクションログに永続化されてから書き込み ACK を返す設計のため、AZ 障害が発生しても RPO = 0(データ損失ゼロ)を保証します。Redis 完全互換 API を提供するため既存コードの変更は不要で、フェイルオーバー後もデータは永続化されているためウォームアップ不要で即時アクセス可能です。MemoryDB はプライマリデータベースとして設計されている点が ElastiCache との根本的な違いです。 選択肢Aは、ElastiCache for Redis の AOF「everysec」設定では、最大 1 秒間のデータ損失が発生する可能性があり、RPO = 0 の要件を満たせません。ElastiCache はキャッシュ用途向けに設計されており、プライマリデータベースとしての耐久性保証を提供しません。 選択肢Cは、DynamoDB + DAX は Redis 互換 API を提供せず、Sorted Sets や Pub/Sub などの Redis データ構造をサポートしません。既存の Redis クライアントコードをそのまま動かすことができません。 選択肢Dは、PostgreSQL への再実装は Redis 互換 API を維持できず「既存コード変更禁止」の要件に違反します。また、RDS ではサブミリ秒レイテンシの読み取り要件を満たすことができません。

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

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

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