
【小ネタ】【AWS Backup】CLIを使ってEC2インスタンスのバックアップ作成を試してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
データアナリティクス(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式の内容を調べてみました。
何かのお役に立てれば幸いです。










