CloudWatch イベントのルール作成で cron 式や rate 式を記述することがありますが、書式について解説します。
CloudWatch でのスケジューリング
Windows のタスクスケジューラ、Linux の cron のように、CloudWatch イベントでも自動化されたスケジュールを作成することができます。
その場合、cron 式または rate 式を使用して自動化スケジュールを作成できます。
すべての CloudWatch のイベントは UTC タイムゾーンになる
すべてのスケジュールされたイベントは UTC タイムゾーンを使用します。
■UTC とは
UTC とは Coordinated universal time の略で、日本語にすると「協定世界時」になります。
原子時系の時刻になります。
- coordinated ← 調整済みという意味です。
https://ja.wikipedia.org/wiki/%E5%8D%94%E5%AE%9A%E4%B8%96%E7%95%8C%E6%99%82
協定世界時(きょうていせかいじ、UTC, 英語: Coordinated Universal Time, ドイツ語: Koordinierte Weltzeit, フランス語: Temps Universel Coordonné)とは、国際原子時 (TAI) に由来する原子時系の時刻で、UT1 世界時に同調するべく調整された基準時刻を指す]。
UTC と GMT の違いは?
グリニッジ標準時(グリニッジひょうじゅんじ)、グリニッジ平均時(グリニッジへいきんじ、イギリス英語: Greenwich Mean Time, GMT)とは、グリニッジ天文台・グリニッジ子午線(経度0度)における平均太陽時(mean solar time)を指す。
かつてグリニッジ平均時は国際的な基準時刻として採用され、イギリスを含む世界各地域の標準時(standard time)もこれを基準とした。なお現在の国際的な基準時刻は概念を修正した協定世界時 (UTC) を用いている。
こうした事情からUTCとGMTが近似的に同一視される事もある。 用語“G.M.T.”および“Z”(通話表で使用する語は Zulu)は、航法や通信の分野で UTC と一般的に同義語として認められる。 また、GMT は時刻の最大精度が整数秒である法令、通信、民生用その他の目的では UTC の意味で使用される。一方、GMT は天測航法及び測量における暦の独立引数としては世界時の UT1 の意味で引き続き使用される。ただし、GMT は適切な名称(UTC、UT1 または UT)で置き換えられる。
- GMT ← Greenwich mean time
もともと世界は GMT を標準時としていたが、現在の基準時は概念を修正した UTC(協定世界時)を使っているようです。
cron 式
cron 式には 6 つのフィールドがあり、空白で区切られます。
【例】
分 時間 日 月 曜日 年 意味
0 10 * * ? * 毎日午前 10:00 (UTC) に実行
【例】
分 時間 日 月 曜日 年 意味
0/15 * * * ? * 15 分ごとに実行
【例】
分 時間 日 月 曜日 年 意味
00 0/1 * * ? * 0時00分から開始し 1時間ごとに実行
※●●時間ごとの場合は、何分かも記載する必要があります。
【例】
分 時間 日 月 曜日 年 意味
00 0/2 * * ? * 0時00分から開始し 2時間ごとに実行
※●●時間ごとの場合は、何分かも記載する必要があります。
ワイルドカード
- *(アスタリスク) ← 全部が含まれます。
ルール(日および曜日フィールド)
「*」を日および曜日フィールドの両方に使用することはできません。
一方に使用する場合は、もう一方に「?」を使用する必要があります。
【例】
分 時間 日 月 曜日 年 意味
0 10 * * ? * 毎日午前 10:00 (UTC) に実行
※上記は毎日実行しますが、同時にすべての曜日に実行することになります。しかし日フィールドと曜日フィールドを同時に * にすることはできないため、曜日フィールドに ? を設定します。
【例】
分 時間 日 月 曜日 年 意味
0 18 ? * MON-FRI * 毎週月曜日から金曜日まで午後 6:00 (UTC) に実行
※月曜日から金曜日実行しますが、日は指定できないため ? にします。
「UTC」と「JST」対応表
簡単ですが、一瞬で分かるように「UTC」と「JST」の対応表です。
例えば、日本時間の21時に設定したい場合は、「12」を設定します。
簡単に計算する方法ですが、UTC で表示された数字を見たら「+9」すればOKです。
曜日で設定している場合、9をプラスすることで24を超える場合は、翌日の曜日になります。
- 0を見た ← 9を足して日本時間で9時
- 22を見た ← 9を足して31 ← 24を引くと7 ← 日本時間で7時
- 日本時間の月曜日の朝6時 ← UTC の日曜日の21時
- 日本時間の月曜日の夜12時(火曜日の0時) ← UTC の月曜日の15時
- UTC の月曜日の16時 ← 日本時間の火曜日の深夜1時
UTC(GMT) JST
0 9
1 10
2 11
3 12
4 13
5 14
6 15
7 16
8 17
9 18
10 19
11 20
12 21
13 22
14 23
15 0(翌日)
16 1(翌日)
17 2(翌日)
18 3(翌日)
19 4(翌日)
20 5(翌日)
21 6(翌日)
22 7(翌日)
23 8(翌日)
rate 式
rate 式は複雑な設定はできませんが、非常に直感的でシンプルです。
【例】
rate(5 minutes) ← 5分ごとに実行
rate(1 hour) ← 1時間ごとに実行
rate(7 days) ← 7日毎に実行(1週間ごとに実行)
コメント