Amazon ElastiCache for Memcached をマルチ AZ で展開し、アプリケーション層でデータ同期ロジックを実装する
ElastiCache for Memcached はデータの永続化機能もノード間レプリケーションも持たないため、ノード障害時にすべてのデータが失われる。マルチ AZ 耐久性の要件を根本的に満たすことができない。
解説
選択肢AのAmazon ElastiCache for Redisは非同期レプリケーションを使用するため、フェイルオーバー発生時に直近の書き込みデータが消失するリスクがあり、データ無損失の耐久性要件を満たしません。
選択肢BのAmazon MemoryDB for Redisは、Redisと完全互換のインメモリデータベースサービスで、マイクロ秒未満の読み取りレイテンシとミリ秒の書き込みレイテンシを実現します。マルチAZにわたるトランザクションログによってデータの永続性を保証しており、ノード障害時もデータが消失しません。ElastiCache for Redisとは異なりデータベースとして設計されているためデータ耐久性が保証され、金融システムのような厳格な要件に対応できます。
選択肢CのAmazon DynamoDBは高い耐久性を持ちますが、レイテンシはミリ秒オーダーであり、マイクロ秒レベルの要件を満たしません。DAXはキャッシュ用途のため書き込みレイテンシは改善されません。
選択肢DのAmazon ElastiCache for Memcachedはデータ永続化機能もレプリケーションも持たないため、ノード障害時にすべてのデータが消失し、マルチAZ耐久性の要件を満たすことができません。