概要
- Amazon ECS タスクのスケジューリングは、CloudWatch イベント機能を使っているので、CloudWatch イベント利用時の注意点を考慮する必要がある。
cron式はUTC
- 例えば、cron式で cron(0 10 * * ? *) と設定した場合、毎日 10:00 (UTC) に実行する。
- 日本時間で毎日 10:00 に実行させるには、cron式で cron(0 1 * * ? *) と設定する(JST=UTC+9)。
スケジュールされた期間に対して同じルールを複数回トリガーする可能性がある
参照:1 つのイベントに応じてルールが複数回トリガーされました
- タスクの起動タイプ(ECS/Fargate)によらず、上記挙動が発生する可能性がある。これは、CloudWatch Events の仕様なので、どうしようもない(実際にAWSサポートに確認済)。
- この挙動が発生した場合、複数回トリガーがするということは、複数回タスクが実行されコンテナが作られるということ。
なので、タスク内の処理は重複実行に対応した形で実装しておく必要がある。