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