本文へスキップ
cron.surf

AWS EventBridge のスケジュールを5 分ごとに実行する

AWS EventBridge で「5 分ごと」を表す式は cron(0/5 * * * ? *) です。以下に、そのまま使える設定、次回の実行時刻、注意点をまとめます。 AWS EventBridge Scheduler は cron() で分から年までの 6 フィールドを使い、設定したタイムゾーン(既定は UTC)で動きます。

cron(0/5 * * * ? *)ツールで開く

“5 分ごと”

EventBridge Scheduler

AWS CLI (EventBridge Scheduler)
aws scheduler create-schedule \
  --name every-5-minutes \
  --schedule-expression "cron(0/5 * * * ? *)" \
  --schedule-expression-timezone "UTC" \
  --flexible-time-window Mode=OFF \
  --target '{"Arn":"arn:aws:lambda:REGION:ACCOUNT:function:my-job","RoleArn":"arn:aws:iam::ACCOUNT:role/scheduler-invoke"}'
Terraform
resource "aws_scheduler_schedule" "every_5_minutes" {
  name                         = "every-5-minutes"
  schedule_expression          = "cron(0/5 * * * ? *)"
  schedule_expression_timezone = "UTC"

  flexible_time_window {
    mode = "OFF"
  }

  target {
    arn      = aws_lambda_function.job.arn
    role_arn = aws_iam_role.scheduler.arn
  }
}

AWS EventBridge の注意点

cron() 内は 6 フィールド分、時、日、月、曜日、年です。秒フィールドはありません。
日付フィールドの一方は ?日を指定したら曜日は ?、その逆も同じです。両方指定するとエラーです。
日曜日は 1曜日は SUN から 1〜7 なので、2-6 が月曜日〜金曜日です。
曜日にステップは使えない曜日フィールドはリスト、範囲、L、# 1 つに対応しますが、/ は使えません。曜日を列挙してください。

よくある質問

AWS EventBridge で「5 分ごと」を表す cron 式は?

cron(0/5 * * * ? *) です。意味:5 分ごと

AWS EventBridge のスケジュールはどのタイムゾーンで動きますか?

EventBridge Scheduler は --schedule-expression-timezone で IANA 名を指定でき、既定は UTC です。古い EventBridge ルールは UTC のみです。

rate() と cron() の違いは?

rate(5 minutes) はスケジュール開始時から一定間隔で動き、cron() は時刻で動きます。分が重要なら cron() を使います。

EventBridge Scheduler とルールのどちらを使うべきですか?

新しいスケジュールには EventBridge Scheduler が推奨されています。タイムゾーンと 1 回限りのスケジュールに対応します。ルールは UTC のみです。