【新機能】Amazon ElastiCache – RedisのスナップショットをS3にエクスポートする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、せーのです。今日はElastiCacheの新機能をご紹介します。
現時点でも稼働中のElastiCacheからスナップショットを取ることが可能でしたが、このスナップショットをS3に吐くことが出来るようになりました。

用途

ElastiCacheからスナップショットを取る理由は言うまでもなくバックアップのため、なわけですが、これがS3に出力できると何ができるでしょうか。
S3に出力する、ということはつまり「別の環境でキャッシュデータが使える」ということを意味します。つまり主な用途としては

  • DR対策: 災害時等にスナップショットデータを別環境にて使用する
  • 分析: スナップショットデータを分析してキャッシュパターンを抑えることができるようになります
  • 分配: スナップショットをとったキャッシュデータをすぐに他の環境にて使用することで連続したデータを使用したシステムの構築ができるようになります

やってみた

それではやってみましょう。まずはRedisでElastiCacheを立ててみます。

redis_snapshot6

立てている間にエクスポート先のS3バケットを作ります。

作ったS3のバケットにパーミッションを追加します。東京リージョンでは

540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353

という文字列を被付与者に指定します。他のリージョンはこちらを確認下さい。権限は「リスト」「アップロード/削除」「パーミッションの表示」の3つです。

redis_snapshot2

そうこうしている間にElastiCacheが出来上がりました。スナップショットをとってみます。

redis_snapshot7

いい感じに名前をつけます。

redis_snapshot8

作ったスナップショットを指定して「COPY SNAPSHOT」ボタンを押下します。

redis_snapshot9

ここでエクスポートしたいS3のバケット名を入れます。

redis_snapshot10

後はスナップショットを作るだけ。

redis_snapshot11

出来上がるとバケット内にファイルが入ります。

redis_snapshot12

ちなみに別のElastiCacheを作る時にこのスナップショットを使いたい時はキャッシュクラスタの作成時にバケット、オブジェクト名の入力欄がありますので、こちらに先ほどのS3パスを入力して下さい。

redis_snapshot1

まとめ

いかがでしょうか。とても簡単にキャッシュデータの受け渡しが出来ました。Webサイトやアプリ等を作っている方にはこの機能は開発の手助けになるかと思います。ぜひご活用下さい。

参考リンク