ElasticCacheのバックアップ/リストアについて検討したメモ
概要と制限
-
クラスタモードが有効な場合、全てのインスタンスタイプにて自動バックアップとリストアをサポートする
http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/UserGuide/backups.html#backups-constraints -
プライマリからのバックアップ作成は、アプリケーションに影響が出るため、レプリカからのバックアップが望ましい。
なお、手動バックアップはノード毎に20回/24時間まで
http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/UserGuide/backups.html#backups-performance -
最大バックアップ保持期限は35日
方針
バックアップ
①ElasticCacheのバックアップ機能を利用せず、バッチ処理で1時間毎、1日毎にRDSのバックアップを作成する
- ElasticCacheからS3に書き込むIAMロール作成
- S3のバックアップ用バケットに時間、日付のディレクトリを作成
- 時間毎のバックアップは各レプリカで順繰りに作成、48時間を超えるバックアップは削除する
- 日付毎のバックアップは、夜中などに時間毎の最終バックアップをコピー、30日を超えるバックアップを削除
- バックアップの保存期間や保存頻度の設定・管理が柔軟
- クラスタモードが無効、かつt*インスタンスの場合はバックアップ用のリードレプリカ外部インスタンスを立てる
- バッチ処理はlamdaやawsBatchの利用を想定
http://htnosm.hatenablog.com/entry/2015/08/26/090000
②ElasticCacheのバックアップ機能を利用せず、バッチ処理で1日毎にRDSのバックアップを作成する
- ElasticCacheからS3に書き込むIAMロール作成
- S3のバックアップ用バケット作成
- 夜中などにバックアップ作成、30日を超えるバックアップを削除
- バックアップの保存期間や保存頻度の設定・管理が柔軟
- クラスタモードが無効、かつt*インスタンスの場合はバックアップ用のリードレプリカ外部インスタンスを立てる
③ElasticCacheのバックアップ機能を利用して、1日毎にRDSのバックアップを作成する
- ElasticCacheからS3に書き込むIAMロール作成
- S3のバックアップ用バケット作成
- 自動バックアップ設定を行う
- バッチを作成・管理しなくて良い、細かい設定が必要なければ一番お手軽
- クラスタモードが無効、かつt*インスタンスの場合は利用不可
上記を設定、検証、手順作成
リストア
- バックアップから新しいクラスタを作成
- 既存のクラスタを削除
- エンドポイント用に新しいクラスタの名前を既存クラスタ名にリネーム
もしくは、 - バックアップから新しいクラスタを作成
- 既存クラスタを空にして新しいクラスタのデータを投入
- 新しいクラスタを削除
http://blog.serverworks.co.jp/tech/2016/07/25/redis-scaledown/
上記を検証、手順作成
確認事項
- 利用されるのはクラスタモード有効/無効のもの?
- バックアップ周期が適切か不安
追記
一般的にはキャッシュサーバのバックアップを取るのはレアケースであり、結果的に本件では利用しなかった。
利用するケースはあると思う。