Amazon MemoryDB for Redis のアイコン

Amazon MemoryDB for Redis

Redis 互換の耐久性を備えたインメモリデータベースサービス

何ができるか

Amazon MemoryDB for Redis は、Redis 互換の API を備えたフルマネージドインメモリデータベースです。ElastiCache for Redis と異なり、マルチ AZ のトランザクションログによるデータの耐久性を標準で提供します。マイクロ秒の読み取りレイテンシと 1 桁ミリ秒の書き込みレイテンシを実現します。

どのような場面で使うか

セッションストア、リーダーボード、リアルタイムランキング、ショッピングカート、地理空間データの処理など、高速なデータアクセスと耐久性の両方が必要なワークロードに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

金庫付きのメモ帳に例えられます。ElastiCache が高速だが揮発性のメモ帳 (キャッシュ) なのに対し、MemoryDB はメモ帳の速さを保ちつつ、書いた内容を金庫 (トランザクションログ) にも保存するため、データが失われません。

MemoryDB とは

Amazon MemoryDB for Redis は、Redis をプライマリデータベースとして使えるサービスです。従来、Redis はキャッシュとして使い、永続データは RDS や DynamoDB に保存する構成が一般的でした。MemoryDB はマルチ AZ のトランザクションログでデータの耐久性を保証するため、Redis 単体でプライマリデータベースとして利用できます。

ElastiCache との違い

ElastiCache for Redis はキャッシュ用途に最適化されており、データの耐久性は保証されません (ノード障害時にデータが失われる可能性)。MemoryDB はマルチ AZ のトランザクションログにより、ノード障害時もデータが保持されます。書き込みレイテンシは MemoryDB の方がやや高い (トランザクションログへの書き込みが発生するため) ですが、読み取りレイテンシは同等です。

はじめかた

MemoryDB コンソールでクラスターを作成し、ノードタイプとシャード数を選択します。既存の Redis クライアントライブラリでそのまま接続できます。ElastiCache からの移行は、RDB スナップショットを MemoryDB にリストアすることで実行可能です。

注意点

  • ElastiCache より書き込みレイテンシがやや高い。キャッシュ用途のみなら ElastiCache の方が適切
  • Redis 互換だが、一部のコマンド (CLUSTER 系の管理コマンドなど) は制限がある

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。