Amazon MemoryDB for Redis
Redis 互換のインメモリデータベースで、マルチ AZ のトランザクションログにデータを永続化しつつマイクロ秒の読み取りレイテンシを実現する
概要
Amazon MemoryDB for Redis は、Redis 互換の API を提供するフルマネージドインメモリデータベースサービスです。ElastiCache for Redis と異なり、書き込みをクライアントに返す前にマルチ AZ のトランザクションログへ永続化し、プライマリのフェイルオーバーの後も強い整合性が保たれます。読み取りはマイクロ秒、書き込みは一桁ミリ秒のレイテンシです。Redis のデータ構造 (String、Hash、List、Set、Sorted Set、Stream など) をサポートし、既存の Redis クライアントライブラリをそのまま使用できます。
ElastiCache for Redis との決定的な違い
MemoryDB は Valkey と Redis OSS に互換で、API は ElastiCache for Redis と共通ですが、データの耐久性のモデルが異なります。ElastiCache はキャッシュとして設計されており、耐久性の機能を使わない構成ではデータの永続性は保証されません。レプリケーションは非同期で、プライマリノードの障害時にレプリカへのフェイルオーバーが発生すると、最後のレプリケーション以降の書き込みが失われる可能性があります。スナップショットによるバックアップは可能ですが、スナップショット間のデータは復元できません。MemoryDB はデータベースとして設計されており、すべての書き込みがマルチ AZ のトランザクションログに同期的に永続化されます。プライマリノードが障害を起こしても、強い整合性はフェイルオーバーの後も保たれると開発者ガイドに記載されています。この違いは、MemoryDB をプライマリデータベースとして使えることを意味します。従来の「RDS + ElastiCache」の 2 層構成を「MemoryDB のみ」の 1 層に統合できるケースもあり、開発者ガイドは、キャッシュと耐久性のあるデータベースを別々に管理する必要がなくなる点を挙げています。一方、ElastiCache for Valkey も耐久性の機能に対応し、マルチ AZ のトランザクションログへ書き込みを同期で永続化する方式と非同期で永続化する方式の 2 つがあると、ElastiCache のユーザーガイドに記載されています。同じガイドは、単一リージョンで耐久性が要るワークロードには耐久性を有効にした ElastiCache を、複数リージョンのアクティブ / アクティブのレプリケーションが要る場合は MemoryDB を検討するよう案内しています (2026 年 10 月時点)。
プライマリデータベースとしての活用パターン
MemoryDB をプライマリデータベースとして使う例には、セッションストア、リーダーボード、リアルタイムの在庫管理、ショッピングカートなどがあります。これらのワークロードは、高速な読み書きが必要で、データ構造が Redis のデータ型にフィットし、かつデータの永続性が求められます。セッションストアでは、DynamoDB や RDS に格納していたセッションデータを MemoryDB に移す構成もあります。リーダーボードでは Sorted Set を使い、スコアの更新と上位 N 件の取得を O(log N) で実行できます。ゲームのランキングや EC サイトの売上ランキングが用途の例です。一方、MemoryDB が適さないケースもあります。複雑なクエリ (JOIN、集約、サブクエリ) が必要なワークロードは RDB が適切です。また、データ量が大きい場合は、ホットデータのみを MemoryDB に格納し、コールドデータを DynamoDB や S3 に置く設計もあります。
クラスター設計とコスト最適化
MemoryDB のクラスターはシャードとレプリカで構成されます。シャード数はデータ量と書き込みスループットに基づいて決定し、各シャード内のレプリカ数は読み取りスループットと可用性要件で決定します。ノードタイプには db.r7g や db.r6g などがあり、対応する種類の一覧は開発者ガイドにあります (2026 年 10 月時点)。メモリサイズの選定では、データ本体に加えてメモリのオーバーヘッドも考慮します。コストの面では、利用の約束と引き換えに割引の料金が適用されるリザーブドノードがあり、料金は公式の料金ページに掲載されています。メモリ使用量の削減には、アプリケーション側で圧縮してから格納するか、データモデルを工夫する方法があります。Hash データ型は小さなフィールド数であれば、個別の String キーよりもメモリ効率が高くなります。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。