Amazon EventBridge スケジューラを使用して Amazon ECS タスクをスケジュールする
EventBridge スケジューラーはサーバーレススケジューラであり、一元化されたマネージドサービスからタスクを作成、実行、管理できます。イベントバスやルールに依存しない、1 回限りの定期的なスケジューリング機能を提供します。EventBridge スケジューラは高度にカスタマイズ可能で、EventBridge のスケジュールルールよりもスケーラビリティが高く、ターゲット API 操作と AWS サービスの範囲が広がります。EventBridge スケジューラには、EventBridge スケジューラコンソールでタスクに設定できる以下のスケジュールが用意されています。
-
レートベース
-
cron ベース
cron ベースのスケジュールはどのタイムゾーンでも設定できます。
-
1 回限りのスケジュール
1 回限りのスケジュールはどのタイムゾーンでも設定できます。
Amazon ECS は Amazon EventBridge スケジューラを使用してスケジュールできます。
Amazon ECS コンソールでスケジュールされたタスクを作成できますが、現在、EventBridge Scheduler コンソールではさらに多くの機能を提供しています。
タスクをスケジュールする前に、次のステップを完了します。
-
タスクが実行されるサブネット ID とサブネットのセキュリティグループ ID を取得するには、VPC コンソールを使用します。詳細については、「Amazon VPC ユーザーガイド」の「サブネットを表示する」および「セキュリティグループの表示」を参照してください。
-
EventBridge スケジューラの実行ロールを設定します。詳細については、「Amazon EventBridge スケジューラユーザーガイド」の「実行ロールを設定する」を参照してください。
コンソールを使用して新しいスケジュールを作成するには
Amazon EventBridge スケジューラコンソール (https://console.aws.amazon.com/scheduler/home
) を開きます。 -
[スケジュール] ページで、[スケジュールを作成] を選択します。
-
[スケジュールの詳細を指定] ページの [スケジュールの名前と説明] セクションで、次を実行します。
-
[スケジュール名] で、スケジュールの名前を入力します。例えば、
MyTestSchedule
と指定します。 -
(オプション) [説明] で、スケジュールの説明を入力します。例えば、
TestSchedule
と指定します。 -
[スケジュールグループ] で、スケジュールグループを選択します。グループがない場合は、[デフォルト] を選択します。スケジュールグループを作成するには、[独自のスケジュールを作成] を選択します。
スケジュールグループを使用して、スケジュールのグループにタグを追加します。
-
-
スケジュールオプションを選択します。
頻度 手順 [1 回限りのスケジュール]
1 回限りのスケジュールは、指定した日時に 1 回だけターゲットを呼び出します。
[日付と時刻] で、次を実行します。
-
有効な日付を
YYYY/MM/DD
形式で入力します。 -
タイムスタンプを 24 時間 (
hh:mm
) 形式で入力します。 -
[タイムゾーン] で、タイムゾーンを選択します。
[繰り返しのスケジュール]
繰り返しのスケジュールは、cron 式またはレート式を使用して指定したレートでターゲットを呼び出します。
-
[スケジュールの種類] では、次のいずれかを実行します。
-
Cron 式を使用してスケジュールを定義するには、[cron ベースのスケジュール] を選択して Cron 式を入力します。
-
Rate 式を使用してスケジュールを定義するには、[rate ベースのスケジュール] を選択して Rate 式を入力します。
cron およびレート式の詳細については、「Amazon EventBridge スケジューラユーザーガイド」の「EventBridge スケジューラのスケジュールタイプ」を参照してください。
-
-
[フレックスタイムウィンドウ] で、[オフ] を選択してオプションをオフにするか、事前定義された時間枠のいずれかを選択します。例えば、[15 分] を選択し、1 時間に 1 回ターゲットを呼び出す繰り返しのスケジュールを設定した場合、スケジュールは毎時の開始後 15 分以内に実行されます。
-
-
(オプション) 前のステップで [定期的なスケジュール] を選択した場合は、[時間枠] セクションで次を実行します。
-
[タイムゾーン] で、タイムゾーンを選択します。
-
[開始日時] で、有効な日付を
YYYY/MM/DD
形式で入力してから、タイムスタンプを 24 時間 (hh:mm
) 形式で指定します。 -
[終了日時] で、有効な日付を
YYYY/MM/DD
形式で入力してから、タイムスタンプを 24 時間 (hh:mm
) 形式で指定します。
-
-
[Next] を選択します。
-
[ターゲットを選択] ページで、次の操作を行います。
-
[すべての API] を選択し、検索ボックスで ECS と入力します。
-
[Amazon ECS] を選択します。
-
検索ボックスで RunTask と入力し、[RunTask] を選択します。
-
[ECS クラスター] で、クラスターを選択します。
-
[ECS タスク] で、タスクに使用するタスク定義を選択します。
-
起動タイプを使用するには、[コンピューティングオプション] を展開し、[起動タイプ] を選択します。その後、起動タイプを選択します。
Fargate 起動タイプが指定される場合、[プラットフォームバージョン] で、使用するプラットフォームバージョンを入力します。プラットフォームが指定されていない場合は、
LATEST
プラットフォームバージョンが使用されます。 -
[サブネット] で、タスクを実行するサブネット ID を入力します。
-
[セキュリティグループ] で、サブネットのセキュリティグループ ID を入力します。
-
(オプション) デフォルト以外のタスク配置戦略を使用するには、[配置制約] を展開し、制約を入力します。
詳細については、「Amazon ECS がタスクをコンテナインスタンスに配置する方法」を参照してください。
-
(オプション) タスクを識別しやすくするために、[タグ] でタグを設定します。
新しく起動されたすべてのタスクに対して、Amazon ECS がタスク定義タグを自動的にタグ付けするようにするには、[Amazon ECS マネージドタグを有効にする] を選択します。
-
-
[Next] を選択します。
-
[Settings] (設定) ページで、以下の操作を行います。
-
スケジュールをオンにするには、[スケジュールの状態] で [スケジュールを有効にする] をオンに切り替えます。
-
スケジュールの再試行ポリシーを設定するには、[再試行ポリシーとデッドレターキュー (DLQ)] で次を実行します。
-
[再試行] を切り替えてオンにします。
-
[イベントの最大保持時間] で、EventBridge スケジューラが未処理のイベントを保持しなければならない最大の [時間] と [分] を入力します。
-
最大 24 時間です。
-
[最大再試行回数] で、ターゲットがエラーを返した場合に EventBridge スケジューラがスケジュールを再試行する最大回数を入力します。
再試行の最大値は 185 です。
再試行ポリシーを使用すると、スケジュールがそのターゲットの呼び出しに失敗した場合、EventBridge スケジューラはスケジュールを再実行します。設定されている場合は、スケジュールの最大保持時間と再試行を設定する必要があります。
-
-
EventBridge スケジューラが未配信のイベントを保存する場所を選択します。
[デッドレターキュー (DLQ)] オプション 手順 保存しない [None] を選択します。 スケジュールを作成しようとしている同じ AWS アカウント にイベントを保存する -
[自分の AWS アカウント の Amazon SQS キューを DLQ として選択] を選択します。
-
Amazon SQS キューの Amazon リソースネーム (ARN) を選択します。
スケジュールを作成しようとしているのとは別の AWS アカウント にイベントを保存する -
[他の AWS アカウント の Amazon SQS キューを DLQ として指定] を選択します。
-
Amazon SQS キューの Amazon リソースネーム (ARN) を入力します。
-
-
カスタマーマネージドキーを使用してターゲットの入力を暗号化するには、[暗号化] で [暗号化設定をカスタマイズする (高度)] を選択します。
このオプションを選択した場合は、既存の KMS キー ARN を入力するか、[AWS KMS key を作成] を選択して AWS KMS コンソールに移動します。EventBridge スケジューラが保管中のデータを暗号化する方法の詳細については、「Amazon EventBridge スケジューラユーザーガイド」の「保管中の暗号化」を参照してください。
-
[許可] で、[既存のロールを使用] を選択してから、ロールを選択します。
EventBridge スケジューラに新しい実行ロールを作成させるには、[このスケジュールの新しいロールを作成] を選択します。その後、[ロール名] で名前を入力します。このオプションを選択すると、EventBridge スケジューラは、テンプレート化されたターゲットに必要な許可をロールにアタッチします。
-
-
[Next] を選択します。
-
[スケジュールの確認と作成] ページで、スケジュールの詳細を確認します。各セクションで、そのステップに戻って詳細を編集するには、[編集] を選択します。
-
[スケジュールを作成] を選択します。
[スケジュール] ページで、新規および既存のスケジュールのリストを表示できます。[ステータス] 列で、新しいスケジュールが [有効] になっていることを確認します。
次のステップ
EventBridge スケジューラコンソールまたは AWS CLI を使用し、スケジュールを管理できます。詳細については、「Amazon EventBridge スケジューラユーザーガイド」の「Managing a schedule」を参照してください。