他の AWS と同様、 Amazon ElastiCache は最初にシンプルにスタートし、徐々に機能拡張をしてきました。 以下、最も重要なマイルストーンの振返りになります:
- August 2011 - 初期リリースでMemcachedを1つのリージョンでサポート。
- December 2011 - 4つのリージョンに拡張。
- March 2012 - 一つ目の値下げを実施。
- April 2012 - リザーブドインスタンス対応。
- November 2012 - 更に4つのインスタンスタイプを対応。
- September 2013 - Redisキャッシュエンジンのサポート。レプリカを用いたレプリケーション グループ機能で読込スループットの向上。
- March 2014 - 2度目の値下げ。
- April 2014 - Redisクラスタのバックアップやリストア機能追加。
- July 2014 - M3やR3キャッシュノードのサポート。
- July 2014 - 同一リージョン内のAZを跨いだノード置換え。
- September 2014 - T2キャッシュノードのサポート。
AWSサービスをご利用の際、そのサービスが常に機能を拡張し続けることを経験されるはずです。 上記リストのとおり、一部の機能拡張はアーキテクチャ、スケールやロケーションにおいてより柔軟な選択肢を提供します。ほかの拡張、例えば値下げやリザーブドインスタンス対応、は利用者のコスト削減に貢献します。 また、可用性や耐障害性の高いアプリを簡単に構築できるように拡張した機能もあります。
RedisのMulti-AZサポート
今回のリリースは、Redisキャッシュクラスタの可用性や耐障害を向上させる機能になります。複数のAZを跨ぐ(Multi-AZ)レプリケーション グループを作成し、自動フェールオーバーを可能にします。Multi-AZ構成のレプリケーション グループを作成したあと、ElastiCacheはノードのヘルシー状況や接続可能かをモニターします。もしプライマリノードがダウンした場合、ElastiCacheは最も低いレプリケーション ラグ(つまり最新データ)を持つリードレプリカを選んでプライマリに昇格させます。その後、DNS変更を行い、もう1つのリードレプリカを作成し、クラスタを通常状態に復旧させます。利用者側で特に管理作業が必要ありません。
この新しい自動フェールオーバーとリカバリ機能はRedisキャッシュクラスタの可用性を高めます。下記状況においてフェールオーバーが発生します:
- プライマリがあるAZがダウンした場合
- プライマリへのネットワーク接続ができなくなった場合
- プライマリがダウンした場合
Multi-AZ レプリケーション グループの作成
Multi-AZキャッシュ レプリケーション グループを作成するため、Create Cache Clusterを選んだあとに、Multi-AZ チェックボックスをチェックします:

初期値としてデフォルトのAZはアサインされます。また、アプリの要件に合わせて調整も可能です:

Multi-AZ for Existing Cache Clusters
既存のキャッシュクラスタを変更し、数クリックだけでMulti-AZ構成や自動フェールオーバーを有効することも可能です。

Things to Know
ElastiCache for RedisのMulti-AZサポートは、新しいRedis(2.8.6またはそれ以降)の非同期レプリケーションを利用しています。そのため、Redisの非同期レプリケーションのメリットとデメリットをそのまま引継ます。特に、リードレプリカが初めの1回でプライマリに繋ぐ、またはプライマリが変わった場合、レプリカとプライマリの間にフル同期が発生します。これによって、キャッシュデータを可能な限り最新状態にすることを保証します。ただし、プライマリやリードレプリカに追加の負荷をかけてしまいます。
すべてのフェールオーバー処理、検知から復旧まで、数分かかります。アプリのキャッシュレイアで、キャッシュが利用できない場合の処理(またはコード)が必要になります。
Available Now
この新しい機能はすべてのAWSリージョンに今すぐにご利用できます。この機能はすべてにElastiCacheユーザーに無料で提供しています。
-- 蒋