リファレンス: Systems Manager の Cron 式および rate 式 - AWS Systems Manager

リファレンス: Systems Manager の Cron 式および rate 式

AWS Systems Manager メンテナンスウィンドウまたはステートマネージャーの関連付けを作成するときは、ウィンドウまたは関連付けを実行するスケジュールを指定します。スケジュールは、時間ベースのエントリ (cron 式) または頻度ベースのエントリ (rate 式) を使用して指定できます。

メンテナンスウィンドウの関連付けを作成するときは、指定された時刻に 1 回実行されるように、協定世界時 (UTC) 形式でタイムスタンプを指定できます。メンテナンスウィンドウでは、CRON 式のみでスケジュールオフセットがサポートされます。スケジュールオフセットは、CRON 式で指定された日時からメンテナンスウィンドウを実行するまでに待機する日数です。たとえば、以下の CRON/Rate 式では、毎月第 3 火曜日の午後 11:30 にメンテナンスウィンドウがスケジュールされます。

cron(30 23 ? * TUE#3 *)

スケジュールオフセットが 2 の場合、メンテナンスウィンドウは 2 日後の 11:30 PM まで実行されません。

注記

すでに経過した日を対象とした cron 式を使用して現在の期間にメンテナンスウィンドウを作成し、将来のスケジュールオフセット日を追加した場合、その期間にメンテナンスウィンドウは実行されません。後続の期間に有効となります。たとえば、メンテナンスウィンドウの実行日を昨日とした cron 式を指定し、2 日間のスケジュールオフセットを追加しても、メンテナンスウィンドウは明日実行されません。

関連付けまたはメンテナンスウィンドウをプログラムで作成する場合や、AWS コマンドラインインターフェイス (AWS CLI) などのコマンドラインツールを使用する場合は、有効な cron 式または rate 式 (またはメンテナンスウィンドウのタイムスタンプ) のスケジュールパラメータを正しい形式で指定する必要があります。

AWS Systems Manager コンソールを使用してメンテナンスウィンドウまたは関連付けを作成する場合は、有効な cron 式または rate 式を使用してスケジュールを指定できます。また、スケジュールを作成するプロセスを簡素化するツールをユーザーインターフェイスに使用することもできます。

メンテナンスウィンドウの例

AWS CLI を使用してメンテナンスウィンドウを作成するには、--schedule パラメータに cron 式または rate 式またはタイムスタンプを含めます。以下の例では、ローカル Linux マシンで AWS CLI を使用します。

aws ssm create-maintenance-window \ --name "My-Cron-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(0 16 ? * TUE *)" \ --schedule-timezone "America/Los_Angeles" \ --start-date 2021-01-01T00:00:00-08:00 \ --end-date 2021-06-30T00:00:00-08:00 \ --duration 4 \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-Cron-Offset-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(30 23 ? * TUE#3 *)" \ --duration 4 \ --cutoff 1 \ --schedule-offset 2
aws ssm create-maintenance-window \ --name "My-Rate-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "rate(7 days)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-TimeStamp-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "at(2021-07-07T13:15:30)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1

関連付けの例

AWS CLI を使用してステートマネージャーの関連付けを作成するには、--schedule-expression パラメータに cron 式または rate 式を含めます。以下の例では、ローカル Linux マシンで AWS CLI を使用します。

aws ssm create-association \ --association-name "My-Cron-Association" \ --schedule-expression "cron(0 2 ? * SUN *)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "rate(7 days)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "at(2020-07-07T15:55:00)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent \ --apply-only-at-cron-interval
注記

デフォルトでは、新しい関連付けを作成すると、その作成直後にシステムによってその関連付けは実行され、以降は指定したスケジュールに従って実行されます。関連付けが作成直後に実行されないように --apply-only-at-cron-interval を指定します。このパラメータは、rate 式ではサポートされていません。

cron 式または rate 式に関する一般情報

Systems Manager の cron 式には、6 つの必須フィールドがあります。7 番目のフィールドである Seconds フィールド (cron 式の最初のフィールド) はオプションです。フィールドは空白で区切ります。

cron 式の例
時間 曜日 意味
0 10 * * ? * 毎日午前 10:00 (UTC) に実行
15 12 * * ? * 毎日午後 12:15 (UTC) に実行
0 18 ? * MON-FRI * 毎週月曜日から金曜日まで午後 6:00 (UTC) に実行
0 8 1 * ? * 毎月 1 日の午前 8:00 (UTC) に実行
0/15 * * * ? * 15 分ごとに実行
0/10 * ? * MON-FRI * 月曜日から金曜日まで 10 分ごとに実行
0/5 8-17 ? * MON-FRI * 月曜日から金曜日まで午前 8:00 から午後 5:55 (UTC) まで 5 分ごとに実行

サポートされる値

次の表は、サポートされている必須 cron エントリの値の一覧です。

注記

関連付けの Cron 式は、これらの値をすべてサポートしていません。詳細については、関連付のための cron および rate 式 を参照してください。

cron 式でサポートされている値
フィールド ワイルドカード
0-59 , - * /
時間 0-23 , - * /
1-31 , - * ? / L W
1-12 または JAN-DEC , - * /
曜日 1-7 または SUN-SAT , - * ? / L
1970-2199 , - * /
注記

cron 式の日フィールドおよび曜日フィールドに同じ 値を指定することはできません。一方のフィールドに値を指定する場合、もう一方のフィールドで ? (疑問符) を使用する必要があります。

ワイルドカード

以下の表に示しているのは、cron 式がサポートするワイルドカード値です。

cron 式でサポートされているワイルドカード
ワイルドカード 説明
, ワイルドカード , (カンマ) には追加の値が含まれます。月フィールドの、「JAN,FEB,MAR」は、1 月、2 月、3 月を含みます。
- ワイルドカード - (ダッシュ) は範囲を指定します。日フィールドの、「1-15」は、指定した月の 1 日から 15 日を含みます。
* ワイルドカード * (アスタリスク) にはフィールドのすべての値が含まれます。時間フィールドの、* にはすべての時間が含まれています。
/ ワイルドカード / (スラッシュ) で増分を指定します。Minutes フィールドで、「1/10」と入力して、その時間の最初の分から始めて、10 分毎を指定できます。したがって、「1/10」は、1 分、11 分、21 分、31 分などを指定します。
? ? (疑問符) ワイルドカードは任意を意味します。[日] フィールドに 7 と入力し、7 日が何曜日であってもかまわない場合、[曜日] フィールドに ? を入力できます。
L Day-of-month フィールドまたは Day-of-week フィールドの、ワイルドカード L は月または週の最終日を指定します。
W Day-of-month フィールドの、ワイルドカード W は、平日を指定します。Day-of-month フィールドで、「3W」は月の 3 番目の平日に最も近い日を指定します。
注記

5 分より短いレートを導き出す Cron 式はサポートされていません。曜日フィールドと日フィールドの値の両方を指定することはまだ完全にはサポートされていません。現時点では、これらのフィールドのいずれかで疑問符 (?) 文字を使用する必要があります。

cron 式の詳細については、「CRON expression」 (Wikipedia ウェブサイト) を参照してください。

rate 式

rate 式には以下の 2 つの必須フィールドがあります。フィールドはスペースで区切ります。

rate 式の必須フィールド
フィールド

正数、115 など

単位

minute

minutes

hour

hours

day

days

値が 1 に等しい場合、単位は単数形であることが必要です。同様に、1 より大きい値の場合、単位は複数であることが必要です。たとえば、rate(1 hours)rate(5 hour) は有効ではありませんが、rate(1 hour)rate(5 hours) は有効です。

関連付のための cron および rate 式

このセクションには、ステートマネージャーの関連付けのための cron 式および rate 式の例をご紹介します。これらの式の 1 つを作成する前に、次の制限事項に注意してください。

  • 関連付けは、次の cron 式のみをサポートします。1/2、1、2、4、8、または 12 時間ごと。毎日または毎週の特定の時間。

  • 関連付けは、30 分以上 31 日未満の間隔の rate 式のみをサポートします。

  • オプションの Seconds フィールドを指定した場合、その値は 0 (ゼロ) のみが可能です。例: cron(0 */30 * * * ? *)

注記

Systems Manager Inventory のメタデータを収集する関連付けには、レート式を使用することをお勧めします。

以下の表は、必要な 6 つのフィールドを使用する関連付けの cron 式の例を示しています。

関連付けの cron の例
詳細

cron(0/30 * * * ? *)

30分毎

cron(0 0/1 * * ? *)

1時間毎

cron(0 0/2 * * ? *)

2時間毎

cron(0 0/4 * * ? *)

4時間毎

cron(0 0/8 * * ? *)

8時間毎

cron(0 0/12 * * ? *)

12時間毎

cron(15 13 ? * * *)

毎日午後 1:15

cron(15 13 ? * MON *)

毎週月曜日の午後 1:15

関連付けのためのいくつかの rate の例を示します。

関連付けの rate の例
詳細

rate(30 minutes)

30分毎

rate(1 hour)

1時間毎

rate(5 hours)

5時間毎

rate(15 days)

15日毎

メンテナンスウィンドウの関連付けに使用する cron 式および rate 式

このセクションには、メンテナンスウィンドウの関連付けに使用する cron 式および rate 式の例が含まれています。

ステートマネージャーの関連付けとは異なり、メンテナンスウィンドウはすべての cron および rate 式をサポートします。秒フィールドでの値もサポートします (注意: 秒フィールドでのゼロ (0) はサポートしません)。

たとえば、次の 6 フィールドの Cron 式は、毎日午前 9:30 にメンテナンスウィンドウを実行します。

cron(30 09 ? * * *)

Seconds フィールドに値を追加することで、次の 7 フィールドの Cron 式は、毎日午前 9:30:24 にメンテナンスウィンドウを実行します。

cron(24 30 09 ? * * *)

次の表は、メンテナンスウィンドウの追加の 6 フィールドの cron 式の例を示します。

メンテナンスウィンドウの cron の例
詳細

cron(0 2 ? * THU#3 *)

毎月第 3 木曜日の午前 02:00

cron(15 10 ? * * *)

毎日午前 10:15

cron(15 10 ? * MON-FRI *)

毎週月〜金の午前 10:15

cron(0 2 L * ? *)

毎月最終日の午前 02:00

cron(15 10 ? * 6L *)

毎月の最終金曜日の午前 10:15

次の表にメンテナンスウィンドウの rate 式の例を示します。

メンテナンスウィンドウの rate の例
詳細

rate(30 minutes)

30分毎

rate(1 hour)

1時間毎

rate(5 hours)

5時間毎

rate(25 days)

25日毎