【小ネタ】【AWS Backup】CLIを使ってEC2インスタンスのバックアップ作成を試してみた

2021.05.31

データアナリティクス(DA)事業本部の川崎です。

先日、EC2のバックアップ設定を行う機会があり、これまではマネージメントコンソールの画面から対応していたのですが、 今回、AWS CLIを使って設定する方法を試してみました。

設定方法をネットで調べてみると、下記のAWS ナレッジセンターの記事が見つかります。

AWS ナレッジセンターについてはこちらもご覧ください。

手順は

  • AWS Backup プランを作成する
    • create-backup-vaultコマンドを実行してボールトを作成
    • create-backup-planコマンドを実行
    • create-backup-selectionコマンドを実行

となります。

さて、記事の内容を確認していくと、

2 バックアッププランのオプションとパラメータを使用して、JSON ファイルを作成します。例:

{
    "BackupPlanName": "testplan",
    "Rules": [{
        "RuleName": "HalfDayBackups",
        "TargetBackupVaultName": "primary",
        "ScheduleExpression": "cron(0 5/12 ? * * *)",
        "StartWindowMinutes": 480,
        "CompletionWindowMinutes": 10080,
        "Lifecycle": {
            "DeleteAfterDays": 30
        },
        "CopyActions": [{
            "DestinationBackupVaultArn": "arn:aws:backup:eu-west-2:123456789:backup-vault:secondary",
            "Lifecycle": {
                "DeleteAfterDays": 30
            }
        }]
    }]
}

いきなり ScheduleExpression として、cron式が出てきました。

cron式であれば、任意の頻度を指定可能、、というのはわかるのですが、 マネージメントコンソールのGUIの設定画面のように、 「バックアップ頻度」を選択肢から選ぶような方法は、指定できないでしょうか?

マネージメントコンソールの「バックアップ頻度」の項目は、

バックアップ頻度
毎時
12時間ごと
毎日
毎週
毎月
カスタムcron式

から選択できるようになっています。

結論から言うと、これらの選択肢を指定すると、 バックアップツールとしては、内部的にcron式に変換されています。

マネジメントコンソールで設定した後で、下記のコマンドでそれぞれのバックアッププランを確認することで、cron式が参照できました。

aws backup get-backup-plan --backup-plan-id "xxxxxxxx-xxxx"
バックアップ頻度 cron式
毎月 日1 cron(0 5 1 * ? *)
毎月 第一 月曜日 cron(0 5 ? * 2#1 *)
毎週 月 cron(0 5 ? * 2 *)
毎週 月、日 cron(0 5 ? * 2,1 *)
毎日 cron(0 5 ? * * *)
12時間ごと cron(0 5/12 ? * * *)
毎時 cron(0 5/1 ? * * *)

まとめ

マネージメントコンソールの「バックアップ頻度」の各項目を指定した場合の、 cron式の内容を調べてみました。

何かのお役に立てれば幸いです。