ある金融系スタートアップは、取引処理システムのセッション管理に Amazon ElastiCache for Redis を使用していましたが、以下の新要件が発生しました。
・Redis をキャッシュではなくプライマリデータストアとして使用する
・ノード障害発生時にデータロスゼロを保証する
・Redis API との完全な互換性を維持する
・マイクロ秒台の読み取りと一桁ミリ秒の書き込みレイテンシーを維持する
どのサービスへの移行が最も適切ですか?
A
Multi-AZ と自動フェイルオーバーを有効にした Amazon ElastiCache for Redis
ElastiCache for Redis(Multi-AZ)はフェイルオーバー時に非同期レプリケーションによる数秒分のデータロスが発生する可能性があり、プライマリストアとしての完全な耐久性は保証されません。
B
Amazon MemoryDB for Redis
✓ 正解
Amazon MemoryDB for Redis は Redis API と完全互換性を持ちつつ、マルチ AZ にわたるトランザクションログによってデータの耐久性を保証するプライマリデータストアです。ノード障害が発生してもデータロスがなく、マイクロ秒台の読み取りと一桁ミリ秒の書き込みを実現します。ElastiCache が「高速だが揮発性のキャッシュ」であるのに対し、MemoryDB は「高速かつ耐久性のある DB」として設計されています。
C
Amazon DynamoDB Accelerator(DAX)
DAX は DynamoDB 専用のインメモリキャッシュであり、Redis API との互換性はなくスタンドアロンのデータストアとして機能しません。
D
Amazon RDS for PostgreSQL に Redis クライアントからのデータを移行する
RDS for PostgreSQL への移行はデータモデル変換が必要で Redis API 互換性が失われ、マイクロ秒台のレイテンシーも実現できません。
解説
Amazon MemoryDB for Redis は Redis API と完全互換性を持ちつつ、マルチ AZ にわたるトランザクションログによってデータの耐久性を保証するプライマリデータストアです。ノード障害が発生してもデータロスがなく、マイクロ秒台の読み取りと一桁ミリ秒の書き込みを実現します。ElastiCache が「高速だが揮発性のキャッシュ」であるのに対し、MemoryDB は「高速かつ耐久性のある DB」として設計されています。
選択肢AのElastiCache for Redis(Multi-AZ)はフェイルオーバー時に非同期レプリケーションによる数秒分のデータロスが発生する可能性があり、プライマリストアとしての完全な耐久性は保証されません。
選択肢CのDAX は DynamoDB 専用のインメモリキャッシュであり、Redis API との互換性はなくスタンドアロンのデータストアとして機能しません。
選択肢DのRDS for PostgreSQL への移行はデータモデル変換が必要で Redis API 互換性が失われ、マイクロ秒台のレイテンシーも実現できません。