AWS-Backup

AWS Backupで月末を指定したい場合のカスタムcron式

はじめに

こんにちは、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」や何週目の何曜日を指定する「#」などもありますのでぜひ公式ドキュメントをばご覧ください。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA