AWS Backup(CloudFormation)はパラメータもBackupしてくれるのか試してみた

2022.12.07

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

はじめに

こんにちは、シマです。
前回に引き続き、AWS BackupにおけるCloudFormationのバックアップについて
いくつか気になったので本記事ではその中の2つ目を試してみました。

※1つ目の記事は以下です。

ちょっとした疑問

CloudFormationを使用してスタックを作成するときには、
テンプレートファイル(YAMLやJSON)以外にも必要なパラメータとして、
スタックの名前、テンプレートファイルで定義したパラメータや、
スタックのリソースに適用するタグ等があります。

テンプレートファイルがバックアップ対象なのはもちろんそうですが、
テンプレートファイルで定義したパラメータや、
スタックのリソースに適用するタグのような設定値もバックアップ対象なのでしょうか。

いきなり結論

テンプレートファイルで定義したパラメータはバックアップされましたが、
スタックのリソースに適用するタグはバックアップ対象ではありませんでした。
何がバックアップされ、何がバックアップされないのか
事前に確認し、正しく利用する必要があると思いました。

やってみたこと

スタックの作成

スタック作成時にパラメータやスタックのリソースに適用するタグを指定します。
パラメータはテンプレートで指定しているDefaultとは違う値を指定しました。

タグも適当なものを指定してスタックの作成をします。

バックアップ取得

AWS Backupから、保護されたリソースをクリックし、
オンデマンドバックアップを作成をクリックします。

リソースタイプはCloudFormation、CloudFormationスタック名は先ほど作成したスタック名を指定します。
必要に応じて他の設定値を変更し、オンデマンドバックアップを作成をクリックします。

バックアップから復元

AWS Backupから保護されたリソースをクリックし、対象のリソースIDをクリックします。

対象を選択し、復元ボタンを押下します。

復元画面を確認すると、以下の状態であることが確認できました。

  • スタック名は空欄で保存されていない
  • パラメーターは設定した値が保存されている
  • タグは設定箇所がない

1点目のスタック名については、新しく指定する必要があります。
これは新規でスタックを作成する必要があるため、
ユニークな値を指定させるよう空欄になっているのは皆様の想定通りかと思います。

2点目のパラメーターについては、テンプレートファイルのDefaultではなく
スタック作成時に指定したパラメーターが保存されていることがわかりました。

3点目については、設定箇所がありませんでした。
念のためにCLIのリファレンスも確認しましたが、
まだCloudFormationのリストアについての記述はありませんでした。
(※2022/12/07 現在)

リストアされたCloudFormationの変更セットを実行後に
タグを確認してみましたが、タグは付与されていませんでした。

最後に

今回はAWS BackupにおけるCloudFormationのバックアップについて、
どこまでがバックアップ対象になっているのかをいくつか確認してみました。
結果として、パラメーターのバックアップがとられていることがわかりました。
パラメーターを別で管理する必要もないですし、
リストア時のパラメーター間違い防止にもなるので便利だと思いました。

タグについては、AWS Backupからのリストアでは付与することが難しそうなので
テンプレートファイル内に定義するとか、新しくスタックの作成から指定するとか
別の方法を検討することで実現可能だと思います。