ElastiCacheがリージョン間レプリケーションに対応!?実際にやってみた!!

2020.03.19

こんにちは(U・ω・U)
ElastiCacheおじさんを目指して日々鍛錬を続ける深澤です。

そんな僕に次のようなニュースが飛び込んできました。

なんと素晴らしいアップデート。ElastiCacheおじさんたるもの、世の中の皆様にElastiCache最新情報をお届けするのが務めというもの。今回はこの機能をご紹介したいと思います!

グローバルデータストアってどんな機能なの?

ElastiCacheクラスタに保存したデータを複数のリージョン間でレプリケーションできます。グローバルデータストアの主なコンポーネントは次の通りです。

プライマリ(アクティブ)クラスタ

レプリケーション元となるクラスタです。通常のElastiCacheクラスタと同じですね。

セカンダリ(パッシブ)クラスタ

プライマリクラスターの複製先です。複数のリージョン間でレプリケーションするので、プライマリクラスターとは別リージョンで構築する必要があります。リージョンは複数に跨がることが可能です。

なので、災害等で利用中のリージョンが落ちたとしてもElastiCacheの可用性を担保できるという夢のような機能です。

ちなみにAWSリージョン間の自動フェイルオーバーはサポートされてないです。必要に応じて手動で昇格させます。手順については以下の「Promoting the Secondary Cluster to Primary」を参照下さい。

ElastiCacheってエンジンとかバージョンとかあるけど全部に対応してるの?

Amazon ElastiCache for Redis 5.0.6 に対応してます。なのでMemcahedとか古いRedisバージョンエンジンだと非対応になります。

東京リージョンで使える?

東京で使えますよ!以下のリージョンで対応しています。

  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (北カリフォルニア)
  • 米国西部 (オレゴン)
  • アジアパシフィック (ソウル)
  • アジアパシフィック (シンガポール)
  • アジアパシフィック (シドニー)
  • アジアパシフィック (東京)
  • 欧州 (フランクフルト)
  • 欧州 (アイルランド)
  • 欧州 (ロンドン)

お金は大丈夫?

追加料金はかからないのですが、ノード単位の課金は通常通り発生します。またリージョン間の通信も発生しますのでご注意下さい。リージョン間通信の料金については過去に僕のブログ参考にしていただけたらと思います。

実際にやってみた

ElastiCacheのコンソール画面を覗いてみると「グローバルデータストア」の項目が増えてます!
作成ボタンを押してグローバルデータストアの作成が行えます。
ElastiCacheのクラスタは新規作成でも大丈夫ですし、既存のものがあればそれに対してグローバルデータストアを適用することも可能です。クラスタの作成については普通のElastiCacheを組み立てる時と同様なので今回は割愛させていただきますね。
ちなみにインスタンスファミリーはr5かm5しか選択できません。
さて、無事に作成が終わりグローバルデータストアが出来上がりました。プライマリリージョンは東京、セカンダリリージョンにはバージニア北部を設定しました。
こちらが作成できたグローバルデータストアです!レプリカのラグが見れるのすごい。 では実際にレプリケーションできているのか確かめてみます!!東京リージョン側のクラスタに接続し、データをセットしてみます。

elasticache-ojisaan.m6rlwr.ng.0001.apne1.cache.amazonaws.com:6379> set elasticache "ojisan"
OK

今度はこれをバージニア北部側で見れるか確認します!

elasticache-ojisaan-ue1.f8r3nc.ng.0001.use1.cache.amazonaws.com:6379> get elasticache
"ojisan"

できました!!レプリケーションできてますね!ちなみに削除するときはセカンダリのリージョンから削除して、グローバルデータストアグループ内にプライマリしか存在しない状態にしないと消せませんでした。

今回はGUI(マネジメントコンソール)で構築しましたが、CLIを使っても構築可能です。

最後に

いかがでしたでしょうか!要件によってはディザスタリカバリを考慮しなければならない場合もあると思いますので、そういった方には大変有難いアップデートなんじゃないかなと思います。セットアップも非常に簡単で普通にクラスタを建てるのと同じような手順で作れるのも大変魅力です。是非導入を検討してみてはいかがでしょうか。

以上、深澤(@shun_quartet)でした!