スケジュールされたタスク
Amazon ECS は、スケジュールされたタスクの作成をサポートします。スケジュールされたタスクは、Amazon EventBridge ルールを使用して、スケジュールに基づいて、または EventBridge イベントへの応答として、タスクを実行します。
バックアップオペレーションやログスキャンなど、設定された間隔でタスクを実行する場合は、指定した時刻に 1 つ以上のタスクを実行するスケジュールされたタスクを作成できます。規則的な間隔 (N
分、時間、または日ごとに実行)を指定したり、より複雑なスケジューリングのために、cron
式を使用したりできます。詳細については、Amazon EventBridge ユーザーガイドのCron 式とレート式を参照してください。
イベントによって開始されるタスクを実行する場合は、サービスの AWS マネージドイベント (Amazon ECS タスクおよびコンテナインスタンスの状態変更イベントなど) が存在するか、カスタムイベントパターンを作成できます。詳細については、Amazon EventBridge ユーザーガイドの「Event Patterns」を参照してください。
スケジュールされたタスクを作成する
スケジュールされたタスクは、EventBridge コンソールを使用して作成できる Amazon EventBridge ルールによって開始されます。Amazon ECS コンソールでスケジュールされたタスクを作成できますが、現在、EventBridge コンソールにはさらに多くの機能があるため、次の手順に従うことで、スケジュールされたタスクを開始する EventBridge ルールを作成できます。
スケジュールされたタスクを EventBridge のルールとターゲットで送信するには、ユーザーの代わりに Amazon ECS タスクを実行するためのいくつかのアクセス許可が EventBridge サービスに必要です。このロールに必要なサービスプリンシパルと IAM アクセス権限の詳細については、「Amazon ECS CloudWatch Events IAM ロール」を参照してください。
スケジュールされたタスクを作成する (EventBridge コンソール)
Amazon EventBridge コンソール (https://console.aws.amazon.com/events/
) を開きます。 -
ナビゲーションペインで [Rules] (ルール) を選択します。
-
[Create rule] (ルールの作成) を選択します。
-
ルールの名前と説明を入力します。
注記 ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。
-
[Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、AWS デフォルトのイベントバスを選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。
-
タスクのスケジュール方法を選択します。
... に基づきルールを作成するには 手順 イベント
-
[Rule type] (ルールタイプ) では、[Rule with an event pattern] (イベントパターンを持つルール) を選択します。
-
[Next] (次へ) を選択します。
-
[Event source] (イベントソース) で、[AWSevents] (イベント) を選択します。
-
[Event pattern] (イベントパターン) では、次のいずれかを実行します。
-
テンプレートを使用してイベントパターンを作成するには、[Event pattern form] (イベントパターンのフォーム)、[Event source] (イベントソース)、[AWS service]、[Event type] (イベントタイプ) の順に選択します。イベントタイプとして [All Events] (すべてのイベント) を選択した場合、AWS サービスによって出力されるすべてのイベントがルールに一致します。
テンプレートをカスタマイズするには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択して変更します。
-
カスタムイベントパターンを使用するには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択し、イベントパターンを作成します。
-
スケジュール -
[Rule type] (ルールタイプ) では、[Schedule] (スケジュール) を選択します。
-
[EventBridge Scheduler で続行] を選択します。
-
[スケジュール名] に、一意の名前を入力します。
-
[頻度] では、1 回だけ実行するか、スケジュールに従って実行するかを選択します。
-
[スケジュールの種類] では、次のいずれかを実行します。
-
Cron 式を使用してスケジュールを定義するには、[cron ベースのスケジュール] を選択して Cron 式を入力します。
-
Rate 式を使用してスケジュールを定義するには、[rate ベースのスケジュール] を選択して Rate 式を入力します。
-
-
-
[Next] (次へ) をクリックします。
-
[Target types] (ターゲットタイプ) では、AWS[services] (サービス) を選択します。
-
[Select a target] (ターゲットの選択) では、[ECS task] (ECS タスク) を選択します。
-
Cluster(クラスター)で、Amazon ECS クラスターを選択します。
-
Task definition(タスク定義)で、タスク定義ファミリーを選択します。
-
Task definition revision(タスク定義リビジョン)で、Latest(最新)または Revision(リビジョン)を選択し、使用する特定のタスク定義リビジョンを選択します。
-
Count(カウント)で、実行するタスクの数を指定します。
-
スケジュールされたタスクをクラスターのインフラストラクチャ全体に分散する方法を選択します。
ディストリビューションの方法 ステップ キャパシティープロバイダー戦略
-
[Compute options] (コンピューティングオプション) セクションで、[Capacity provider strategy] (キャパシティープロバイダー戦略) を選択します。
-
戦略を選択:
-
デフォルトのキャパシティープロバイダー戦略を使用するには、[Use cluster default] (デフォルトのクラスターを使用) を選択します。
-
クラスターにデフォルトのキャパシティープロバイダー戦略がない場合、またはカスタム戦略を使用する場合は、[Use custom] (カスタムを使用)、[Add capacity provider strategy] (キャパシティプロバイダー戦略の追加)を選択し、[Base] (ベース)、[Capacity provider] (キャパシティープロバイダー)、[Weight] (ウェイト) を指定して、カスタムキャパシティープロバイダー戦略を定義します。
-
注記 戦略でキャパシティープロバイダーを使用するには、キャパシティープロバイダーをクラスターに関連付ける必要があります。キャパシティープロバイダー戦略の詳細については、「Amazon ECS キャパシティープロバイダー」を参照してください。
起動タイプ -
[Compute options] (コンピューティングオプション) セクションで、[Launch type] (起動タイプ) を選択します。
-
[Launch type] (起動タイプ) で、起動タイプを選択します。
-
(オプション) Fargate 起動タイプが指定されている場合、Platform version(プラットフォームのバージョン)で、使用するプラットフォームのバージョンを指定します。プラットフォームのバージョンが指定されない場合、
LATEST
プラットフォームのバージョンが使用されます。
-
-
タスクが Fargate でホストされているか、
awsvpc
ネットワークモードを使用している場合、[Configure network configuration] (ネットワーク構成の設定) を開き、ネットワーク構成を指定します。-
Subnets(サブネット)で、1 つ以上のサブネット ID を指定します。
-
Security groups(セキュリティグループ)で、1 つ以上のセキュリティグループ ID を指定します。
-
Auto-assign public IP(自動割り当てパブリック IP)で、サブネットからタスクにパブリック IP アドレスを割り当てるかどうかを指定します。
-
-
(オプション) タスクに追加のパラメータを指定するには、[Configure additional properties] (追加のプロパティを設定) を開きます。
-
Task group(タスクグループ)で、タスクグループ名を指定します。タスクグループ名は、関連するタスクのセットを識別するために使用され、同じタスクグループ内のタスクがクラスター内のコンテナインスタンス間で均等に分散されるように
spread
タスク配置戦略と組み合わせて使用されます。 -
Placement constraint(配置制約)で、Add placement constraint(配置制約を追加)を選択します。配置制約のType(タイプ)を選択し、式を入力します。詳細については、「Amazon ECS タスク配置の制約事項」を参照してください
注記 タスク配置制約は Fargate でホストされるタスクではサポートされていません。
-
Placement strategy(配置戦略)で、Add placement strategy(配置戦略を追加)を選択します。配置戦略のType(タイプ)を選択し、式を入力します。追加する配置戦略ごとに、このプロセスを繰り返します。詳細については、「Amazon ECS タスク配置戦略」を参照してください。
注記 タスク配置戦略は、Fargate でホストされているタスクではサポートされていません。
-
Tags(タグ) で、Add tag(タグを追加)を選択して、タスクにキーバリューペアのタグを関連付けます。
-
コストと使用状況レポートでコスト配分を確認する際に使用するタグを追加するには、[Configure managed tags] (管理タグを設定) で、[Enable managed tags] (管理タグを有効化) を選択します。詳細については、「請求用のリソースにタグを付ける」を参照してください。
-
タスクのために ECS Exec 機能を使用するには、[Configure execute command] (実行コマンドを設定) で、[Enable execute command] (コマンドの実行を有効化) を選択します。詳細については、「デバッグ用にAmazon ECS Exec を使用」を参照してください。
-
タスク定義に関連付けられているタグをタスクに追加するには、[Configure propagate tags] (伝搬タグを設定) で、[Propagate tags from task definition] (タスク定義からタグを伝播) を選択します。詳細については、「リソースのタグ付け方法」を参照してください。
注記 [Tags] (タグ) セクションで同じキーを持つタグを指定する場合、タスク定義から伝達されたタグを上書きします。
-
-
多くのターゲットタイプでは、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。これらの場合、EventBridge は、イベントの実行に必要な IAM ロールを作成できます。以下のいずれかを実行します。
-
自動的に IAM ロールを作成するには、[この特定のリソースに対して新しいロールを作成する] を選択します。
-
以前に作成した IAM ロールを使用するには、[Use existing role] (既存のロールの使用) を選択し、ドロップダウンから既存のロールを選択します。
-
-
(オプション) [Additional settings] (追加設定) では、以下を実行します。
-
[Maximum age of event] (最大イベント有効期間) に、1 分 (00:01) から 24 時間 (24:00) の間の値を入力します。
-
Retry attempts(再試行) で、0~185 の数値を入力します。
-
Dead-letter queue(デッドレターキュー) で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。以下のいずれかを実行します。
-
デッドレターキューを使用しない場合は、[None] (なし) を選択します。
-
[Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue] を選択し、ドロップダウンから使用するキューを選択します。
-
Select an Amazon SQS queue in an other AWS account as a dead-letter queue(他の アカウントの Amazon SQS キューをデッドレターキューとして選択) を選択し、使用するキューの ARN を入力します。キューにメッセージを送信するための EventBridge 許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります。詳細については、Amazon EventBridge ユーザーガイドのGranting permissions to the dead-letter queue(デッドレターキューへの許可の付与)を参照してください。
-
-
[Next] (次へ) をクリックします。
-
(オプション) ルールに 1 つ以上のタグを入力します。詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge のタグ」を参照してください。
-
[Next] (次へ) をクリックします。
-
ルールの詳細を確認し、[Create rule] (ルールの作成) を選択します。
スケジュールされたタスクをクラシックコンソールで表示
スケジュールされたタスクは、クラシック Amazon ECS コンソールで確認できます。スケジュールされたタスクを開始する Amazon EventBridge ルールを EventBridge コンソールで観ることもできます。
スケジュールされたタスクを表示するには(Amazon ECS コンソール)
Amazon ECS コンソール (https://console.aws.amazon.com/ecs/
) を開きます。 -
スケジュールされたタスクを実行するクラスターを選択します。
-
Cluster:
cluster-name
(クラスター: cluster-name) ページで、Scheduled Tasks(スケジュールされたタスク)タブを選択します。 -
スケジュールされたすべてのタスクが一覧表示されます。
スケジュールされたタスクを編集する
スケジュールされたタスクは、クラシック Amazon ECS コンソールで編集できます。スケジュールされたタスクを開始する Amazon EventBridge ルールを EventBridge コンソールで編集することもできます。
スケジュールされたタスクを編集するには (Amazon ECS コンソール)
Amazon ECS コンソール (https://console.aws.amazon.com/ecs/
) を開きます。 -
スケジュールされたタスクを編集するクラスターを選択します。
-
Cluster:
cluster-name
ページで、Scheduled Tasksを選択します -
編集するスケジュールルールの左側にあるボックスを選択してから、Editを選択します。
-
更新するフィールドを編集し、Updateを選択します。