ElastiCacheバックアップからのリストアで暗号化を指定する方法について調べてみた

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

ご機嫌いかがでしょうか、豊崎です。

ElastiCacheリストア時の暗号化オプションについて小ネタを書いていきたいと思います。

はじめに

暗号化を有効化したElastiCacheのバックアップを取得して、 AWSマネージメントコンソールから「リストア」を選択しても暗号化の選択項目が無いため暗号化が無効になります。

AWSマネージメントコンソールから「リストア」すると以下が無効になります

  • 保管時の暗号化
  • 送信中の暗号化

なので、S3にバックアップをコピーして、[.rdb]ファイルをインポートするかたちで新規作成をする必要があります。

バックアップをS3へコピーする方法は以下が参照になります。

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

やってみた

今回はAWS CLIで行ってみます。

以下がS3に出力されたバックアップです。

aws elasticache  \
create-replication-group \
--replication-group-id demo-ec-restore \
--replication-group-description demo-ec-restore \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis4.0.cluster.on \
--engine redis \
--engine-version 4.0.10 \
--num-node-groups 3 \
--transit-encryption-enabled \
--at-rest-encryption-enabled \
--cache-subnet-group-name first-ec \
--node-group-configuration \
  "ReplicaCount=2,Slots=0-5461,PrimaryAvailabilityZone='ap-northeast-1a',ReplicaAvailabilityZones='ap-northeast-1c','ap-northeast-1a'" \
  "ReplicaCount=2,Slots=5462-10922,PrimaryAvailabilityZone='ap-northeast-1c',ReplicaAvailabilityZones='ap-northeast-1a','ap-northeast-1c'" \
  "ReplicaCount=2,Slots=10923-16383,PrimaryAvailabilityZone='ap-northeast-1c',ReplicaAvailabilityZones='ap-northeast-1a','ap-northeast-1c'" \
--snapshot-arns \
  arn:aws:s3:::demo-ec/demo-ec-0001.rdb \
  arn:aws:s3:::demo-ec/demo-ec-0002.rdb \
  arn:aws:s3:::demo-ec/demo-ec-0003.rdb

これで暗号化を有効にした状態でキャッシュデータを引き継ぎElastiCacheをすることができました。

ちなみに

なぜかAWS CLIで行ったんですが、AWSマネジメントコンソールでも、「リストア」ではなくて、「作成」ボタンから進んで、 クラスターへのインポートの箇所で指定することもできますね。。

ここでS3のバックアップファイルをカンマ区切りで指定します。

さいごに

暗号化オプションについて書いてみました。リストアっていうか、新規作成で暗号化オプションをつけつつ、バックアップファイルからインポートするって感じということを学びました。いつものごとく、自分のための備忘録ですが誰かのお役に立てば幸いです。