Amazon MemoryDB for Redis 専門2021年〜
Redis 互換の耐久性を備えたインメモリデータベースサービス
何ができるか
Amazon MemoryDB for Redis は、Redis 互換の API を備えたフルマネージドインメモリデータベースです。ElastiCache for Redis と異なり、マルチ AZ のトランザクションログによるデータの耐久性を標準で提供します。マイクロ秒の読み取りレイテンシと 1 桁ミリ秒の書き込みレイテンシを実現します。
どのような場面で使うか
セッションストア、リーダーボード、リアルタイムランキング、ショッピングカート、地理空間データの処理など、高速なデータアクセスと耐久性の両方が必要なワークロードに利用されます。
身近な例え
金庫付きのメモ帳に例えられます。ElastiCache が高速だが揮発性のメモ帳 (キャッシュ) なのに対し、MemoryDB はメモ帳の速さを保ちつつ、書いた内容を金庫 (トランザクションログ) にも保存するため、データが失われません。
MemoryDB とは
Amazon MemoryDB for Redis は、Redis をプライマリデータベースとして使えるサービスです。従来、Redis はキャッシュとして使い、永続データは RDS や DynamoDB に保存する構成が一般的でした。MemoryDB はマルチ AZ のトランザクションログでデータの耐久性を保証するため、Redis 単体でプライマリデータベースとして利用できます。
ElastiCache との違い
ElastiCache for Redis はキャッシュ用途に最適化されており、データの耐久性は保証されません (ノード障害時にデータが失われる可能性)。MemoryDB はマルチ AZ のトランザクションログにより、ノード障害時もデータが保持されます。書き込みレイテンシは MemoryDB の方がやや高い (トランザクションログへの書き込みが発生するため) ですが、読み取りレイテンシは同等です。 ElastiCache との違いの理解をさらに深めたい方には Amazon の解説書 も役立ちます。
はじめかた
MemoryDB コンソールでクラスターを作成し、ノードタイプとシャード数を選択します。既存の Redis クライアントライブラリでそのまま接続できます。ElastiCache からの移行は、RDB スナップショットを MemoryDB にリストアすることで実行可能です。
注意点
- ElastiCache より書き込みレイテンシがやや高い。キャッシュ用途のみなら ElastiCache の方が適切
- Redis 互換だが、一部のコマンド (CLUSTER 系の管理コマンドなど) は制限がある