AWS ElasticCache Redisエンジン


ElasticCacheに関する基本的な内容をまとめてみたものです。ElasticCacheに関する、Web上にすでにある解説コンテンツをまとめたサイトの抜粋です。
Redisエンジン

redis用のAmazon ElastiCache

redis用Amazon ElastiCacheは、redisプロトコルに準拠するWEBサービスです。
メモリ上にデータを格納するKVSで、ハッシュ・リスト型・集合型などのさまざまなデータ構造をサポートし、マスター・スレーブによるレプリケーションにも対応しています。
さらに、メモリ上のデータをディスクに書き出したり、スケールアウトが容易であるなどの特徴を持つ高性能KVSです。

memcachedはメモリキャッシュとしの動作が主となりますが、redisはデータストアとしても動作することができます。

文字列やハッシュ以外のデータ構造にも対応

Redisは文字列やハッシュ以外の構造のデータも、キーに関連付けて格納することが可能です。
そのため、Redisはデータストラクチャストアとも呼ばれることがあります。

Redisで扱えるデータ構造
・文字列
・ハッシュ
・セット
・リスト
・ソート済みのセット

レプリケーション(リードレプリカ)とマルチAZ

Redis用Amazon ElastiCacheは、リードレプリカとマルチAZが利用できます。

リードレプリカ

リードレプリカは、読み込みのスケーリングと障害発生時の対応のために使用されます。

・データの読み込み量が多いとキャッシュに負荷がかかりますが、リードレプリカを利用することで1つのキャッシュノードの容量を気にすることなく、自由にスケールアウトすることが可能です。
・フェイルオーバーが発生すると、スタンバイとして機能していたリードレプリカがプライマリとなって、システムを正常に動作させます。

マルチAZ

マルチAZは、Redisがプライマリからリードレプリカへデータのコピーをすることです。
非同期にデータのコピーが行われ、ノード障害やアベイラビリティーゾーンの障害が発生した時に、Amazon ElastiCacheが自動的にリードレプリカを選択して新しいプライマリとします。
マルチAZが有効の場合は、フェイルオーバーが発生しても、手動で復旧作業する必要がありません。

非同期のディスクへの書き出し

Redisはデータ上にメモリを格納するKVSですが、データの更新量が一定以上となるとディスクに非同期でデータを書き込む機能も持っています。
この機能を利用することで、障害に強いシステムを構築することが可能です。
しかし、ディスクにデータを書き込むことでデータの永続性を維持しますが、ディスクにバックアップしていないデータについては消失してしまいます。

バックアップと復元

ユーザーがRedis用ElastiCacheクラスター全体のコピーであるスナップショットを作るための機能が、バックアップと復元です。
Redisクラスター全体のコピーを作成することで、ノードに障害が発生してもデータを復元することができます。

バックアップと復元機能は、AWSマネジメントコンソール・ElastiCache API・ CLI で設定できます。
何度でも、アクティブにしたり無効にすることができます。

バックアップを行う時期はユーザーが決めることもできますし、毎日作成するように設定することも可能です。
バックアップ作業が始まると指定したRedisクラスターのスナップショットの作成が行われ、S3に保存されます。