スケジュールされたタスク - Amazon ECS

スケジュールされたタスク

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 コンソール)

  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. ナビゲーションペインで [Rules] (ルール) を選択します。

  3. [‬Create rule]‭ (ルールの作成) を選択します。

  4. ルールの名前と説明を入力します。

    注記

    ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

  5. [Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、AWSデフォルトのイベントバスを選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  6. タスクのスケジュール方法を選択します。

    ... に基づきルールを作成するには 手順

    イベント

    1. [Rule type] (ルールタイプ) では、[Rule with an event pattern] (イベントパターンを持つルール) を選択します。

    2. [Next] を選択します。

    3. [Event source] (イベントソース) で、[AWSevents] (イベント) を選択します。

    4. [Event pattern] (イベントパターン) では、次のいずれかを実行します。

      • テンプレートを使用してイベントパターンを作成するには、[Event pattern form] (イベントパターンのフォーム)、[Event source] (イベントソース)、[AWS service] (AWS のサービス)、[Event type] (イベントタイプ) を選択します。イベントタイプとして [All Events] (すべてのイベント) を選択した場合、AWS サービスによって出力されるすべてのイベントがルールに一致します。

        テンプレートをカスタマイズするには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択して変更します。

      • カスタムイベントパターンを使用するには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択し、イベントパターンを作成します。

    スケジュール
    1. [Rule type] (ルールタイプ) では、[Schedule] (スケジュール) を選択します。

    2. [Next] を選択します。

    3. [Schedule pattern] (スケジュールパターン) では、次のいずれかを実行します。

      • Cron 式を使用してスケジュールを定義するには、午前 8 時など、特定の時間に実行されるきめ細かいスケジュールを選択します。毎月最初の月曜日の PST に、cron 式を入力します。

      • rate 式を使用してスケジュールを定義するには、10 分ごとなど、通常レートで実行されるスケジュールを選択し、rate 式を入力します。

  7. [Next] を選択します。

  8. [Target types] (ターゲットタイプ) では、AWS[services] (サービス) を選択します。

  9. [Select a target] (ターゲットの選択) では、[ECS task] (ECS タスク) を選択します。

  10. Cluster(クラスター)で、Amazon ECS クラスターを選択します。

  11. Task definition(タスク定義)で、タスク定義ファミリーを選択します。

  12. Task definition revision(タスク定義リビジョン)で、Latest(最新)または Revision(リビジョン)を選択し、使用する特定のタスク定義リビジョンを選択します。

  13. Count(カウント)で、実行するタスクの数を指定します。

  14. スケジュールされたタスクをクラスターのインフラストラクチャ全体に分散する方法を選択します。

    ディストリビューションの方法 ステップ

    キャパシティープロバイダー戦略

    1. [Compute options] (コンピューティングオプション) セクションで、[Capacity provider strategy] (キャパシティープロバイダー戦略) を選択します。

    2. 戦略を選択:

      • デフォルトのキャパシティープロバイダー戦略を使用するには、[Use cluster default] (デフォルトのクラスターを使用) を選択します。

      • クラスターにデフォルトのキャパシティープロバイダー戦略がない場合、またはカスタム戦略を使用する場合は、[Use custom] (カスタムを使用)、[Add capacity provider strategy] (キャパシティプロバイダー戦略の追加)を選択し、[Base] (ベース)、[Capacity provider] (キャパシティープロバイダー)、[Weight] (ウェイト) を指定して、カスタムキャパシティープロバイダー戦略を定義します。

    注記

    戦略でキャパシティープロバイダーを使用するには、キャパシティープロバイダーをクラスターに関連付ける必要があります。キャパシティープロバイダー戦略の詳細については、「Amazon ECS キャパシティープロバイダー」を参照してください。

    起動タイプ
    1. [Compute options] (コンピューティングオプション) セクションで、[Launch type] (起動タイプ) を選択します。

    2. [Launch type] (起動タイプ) で、起動タイプを選択します。

    3. (オプション) Fargate 起動タイプが指定されている場合、Platform version(プラットフォームのバージョン)で、使用するプラットフォームのバージョンを指定します。プラットフォームのバージョンが指定されない場合、LATESTプラットフォームのバージョンが使用されます。

  15. タスクが Fargate でホストされているか、awsvpc ネットワークモードを使用している場合、[Configure network configuration] (ネットワーク構成の設定) を開き、ネットワーク構成を指定します。

    1. Subnets(サブネット)で、1 つ以上のサブネット ID を指定します。

    2. Security groups(セキュリティグループ)で、1 つ以上のセキュリティグループ ID を指定します。

    3. Auto-assign public IP(自動割り当てパブリック IP)で、サブネットからタスクにパブリック IP アドレスを割り当てるかどうかを指定します。

  16. (オプション) タスクに追加のパラメータを指定するには、[Configure additional properties] (追加のプロパティを設定) を開きます。

    1. Task group(タスクグループ)で、タスクグループ名を指定します。タスクグループ名は、関連するタスクのセットを識別するために使用され、同じタスクグループ内のタスクがクラスター内のコンテナインスタンス間で均等に分散されるように spread タスク配置戦略と組み合わせて使用されます。

    2. Tags(タグ) で、Add tag(タグを追加)を選択して、タスクにキーバリューペアのタグを関連付けます。

    3. コストと使用状況レポートでコスト配分を確認する際に使用するタグを追加するには、[Configure managed tags] (管理タグを設定) で、[Enable managed tags] (管理タグを有効化) を選択します。詳細については、「請求用のリソースにタグを付ける」を参照してください。

    4. タスクのために ECS Exec 機能を有効にするには、[Configure execute command] (実行コマンドを設定) で、[Enable execute command] (コマンドの実行を有効化) を選択します。詳細については、「デバッグ用にAmazon ECS Exec を使用」を参照してください。

    5. タスク定義に関連付けられているタグをタスクに追加するには、[Configure propagate tags] (伝搬タグを設定) で、[Propagate tags from task definition] (タスク定義からタグを伝播) を選択します。詳細については、「リソースのタグ付け」を参照してください。

      注記

      [Tags] (タグ) セクションで同じキーを持つタグを指定する場合、タスク定義から伝達されたタグを上書きします。

  17. 多くのターゲットタイプでは、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。これらの場合、EventBridge は、イベントの実行に必要な IAM ロールを作成できます。次のいずれかを実行します。

    • 自動的に IAM ロールを作成するには、[この特定のリソースに対して新しいロールを作成する] を選択します。

    • 以前に作成した IAM ロールを使用するには、[Use existing role] (既存のロールの使用) を選択し、ドロップダウンから既存のロールを選択します。

  18. (オプション) [Additional settings] (追加設定) では、以下を実行します。

    1. [Maximum age of event] (最大イベント有効期間) に、1 分 (00:01) から 24 時間 (24:00) の間の値を入力します。

    2. Retry attempts(再試行) で、0~185 の数値を入力します。

    3. Dead-letter queue(デッドレターキュー) で、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを実行します。

      • デッドレターキューを使用しない場合は、None(なし) を選択します。

      • [Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue] (デッドレターキューとして使用する現在の AWS アカウントの Amazon SQS キューを選択) を選択し、ドロップダウンから使用するキューを選択します。

      • 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(デッドレターキューへの許可の付与)を参照してください。

  19. [Next] を選択します。

  20. (オプション) ルールに 1 つ以上のタグを入力します。詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge のタグ」を参照してください。

  21. [Next] を選択します。

  22. ルールの詳細を確認し、[Create rule] (ルールの作成) を選択します。

スケジュールされたタスクを表示する

スケジュールされたタスクは、従来の Amazon ECS コンソールで確認できます。スケジュールされたタスクをトリガーする Amazon EventBridge ルールを EventBridge コンソールで観ることもできます。

スケジュールされたタスクを表示するには(Amazon ECS コンソール)

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs/) を開きます。

  2. スケジュールされたタスクを実行するクラスターを選択します。

  3. Cluster:cluster-name(クラスター: cluster-name) ページで、Scheduled Tasks(スケジュールされたタスク)タブを選択します。

  4. スケジュールされたすべてのタスクが一覧表示されます。

スケジュールされたタスクを編集する

スケジュールされたタスクは、従来の Amazon ECS コンソールで編集できます。スケジュールされたタスクをトリガーする Amazon EventBridge ルールを EventBridge コンソールで編集することもできます。

スケジュールされたタスクを編集するには (Amazon ECS コンソール)

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs/) を開きます。

  2. スケジュールされたタスクを編集するクラスターを選択します。

  3. Cluster: cluster-nameページで、Scheduled Tasksを選択します

  4. 編集するスケジュールルールの左側にあるボックスを選択してから、Editを選択します。

  5. 更新するフィールドを編集し、Updateを選択します。