目次
はじめに
こんにちは、omkです。
AWS Backupで毎月1日にバックアップを取るルールを作成しようと思って躓いたところを共有します。
日本時間で月初の早朝にバックアップを取ろうとするとAWS BackupではUTCで設定する必要があるため「日本時間-9時間」で月末の晩になってしまいます。
「31日で設定した場合、31日がない月はバックアップできないのでどうするべきか」
調べても分からなかったのでサポートセンターにご対応いただき解決しましたので記します。
(ありがとうございました。)
↓CloudWatchのページに記載がありました。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html
結論
cron(0 0 L * ? *)
日にLを設定することで月末の日を指定することが出来ました。
上の例だと毎月、月末の0時0分(深夜)となります。
Linuxのcronだと28-31で指定して、翌日が1日かどうかをチェックしたりするようですが、AWSでは便利なワイルドカードが用意されています。
つまり日本時間の毎月、月初早朝5時にバックアップを設定する場合
cron(0 20 L * ? *)
となります。
まとめ
AWSでは通常のcron以外にいくつかワイルドカードが用意されており、それらを用いることでより多くのケースに対応することが可能となります。
月末だけでなく、曜日にLを指定した場合は週の最終日となるようです。他にも平日を指定する「W」や何週目の何曜日を指定する「#」などもありますのでぜひ公式ドキュメントをばご覧ください。
アーキテクト課のomkです。
AWSについて雑多に取り組んだ内容を発信しています!!