Using Amazon EventBridge Scheduler to schedule Amazon ECS tasks - Amazon Elastic Container Service

Using Amazon EventBridge Scheduler to schedule Amazon ECS tasks

EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. It provides one-time and recurring scheduling functionality independent of event buses and rules. EventBridge Scheduler is highly customizable, and offers improved scalability over EventBridge scheduled rules, with a wider set of target API operations and AWS services. EventBridge Scheduler provides the following schedules which you can configure for your tasks in the EventBridge Scheduler console:

  • Rate-based

  • Cron-based

    You can configure cron-based schedules in any time zone.

  • One-time schedules

    You can configure one-time schedules in any time zone.

You can schedule your Amazon ECS using Amazon EventBridge Scheduler.

Although you can create a scheduled task in the Amazon ECS console, currently the EventBridge Scheduler console provides more functionality.

Complete the following steps before you schedule a task:

  1. Use the VPC console to get the subnet IDs where the tasks run and the security group IDs for the subnets. For more information, see View your subnets, and View your security groups in the Amazon VPC User Guide.

  2. Configure the EventBridge Scheduler execution role. For more information, see Set up the execution role in the Amazon EventBridge Scheduler User Guide.

To create a new schedule using the console
  1. Open the Amazon EventBridge Scheduler console at https://console.aws.amazon.com/scheduler/home.

  2. On the Schedules page, choose Create schedule.

  3. On the Specify schedule detail page, in the Schedule name and description section, do the following:

    1. For Schedule name, enter a name for your schedule. For example, MyTestSchedule.

    2. (Optional) For Description, enter a description for your schedule. For example, TestSchedule.

    3. For Schedule group, choose a schedule group. If you don't have a group, choose default. To create a schedule group, choose create your own schedule.

      You use schedule groups to add tags to groups of schedules.

  4. Choose your schedule options.

    Occurrence Do this...

    One-time schedule

    A one-time schedule invokes a target only once at the date and time that you specify.

    For Date and time, do the following:

    • Enter a valid date in YYYY/MM/DD format.

    • Enter a timestamp in 24-hour hh:mm format.

    • For Timezone, choose the timezone.

    Recurring schedule

    A recurring schedule invokes a target at a rate that you specify using a cron expression or rate expression.

    1. For Schedule type, do one of the following:

      • To use a cron expression to define the schedule, choose Cron-based schedule and enter the cron expression.

      • To use a rate expression to define the schedule, choose Rate-based schedule and enter the rate expression.

        For more information about cron and rate expressions, see Schedule types on EventBridge Scheduler in the Amazon EventBridge Scheduler User Guide.

    2. For Flexible time window, choose Off to turn off the option, or choose one of the pre-defined time windows. For example, if you choose 15 minutes and you set a recurring schedule to invoke its target once every hour, the schedule runs within 15 minutes after the start of every hour.

  5. (Optional) If you chose Recurring schedule in the previous step, in the Timeframe section, do the following:

    1. For Timezone, choose a timezone.

    2. For Start date and time, enter a valid date in YYYY/MM/DD format, and then specify a timestamp in 24-hour hh:mm format.

    3. For End date and time, enter a valid date in YYYY/MM/DD format, and then specify a timestamp in 24-hour hh:mm format.

  6. Choose Next.

  7. On the Select target page, do the following:

    1. Choose All APIs, and then in the search box enter ECS.

    2. Select Amazon ECS.

    3. In the search box, enter RunTask, and then choose RunTask.

    4. For ECS cluster, choose the cluster.

    5. For ECS task, choose the task definition to use for the task.

    6. To use a launch type, expand Compute options, and then select Launch type. Then, choose the launch type.

      When the Fargate launch type is specified, for Platform version, enter the platform version to use. If there is no platform specified, the LATEST platform version is used.

    7. For Subnets, enter the subnet IDs to run the task in.

    8. For Security groups, enter the security group IDs for the subnet.

    9. (Optional) To use a task placement strategy other than the default, expand Placement constraint, and then enter the constraints.

      For more information, see How Amazon ECS places tasks on container instances.

    10. (Optional) To help identify your tasks, under Tags configure your tags.

      To have Amazon ECS automatically tag all newly launched tasks with the task definition tags, select Enable Amazon ECS managed tags.

  8. Choose Next.

  9. On the Settings page, do the following:

    1. To turn on the schedule, under Schedule state, toggle Enable schedule.

    2. To configure a retry policy for your schedule, under Retry policy and dead-letter queue (DLQ), do the following:

      • Toggle Retry.

      • For Maximum retention time of event, enter the maximum hour(s) and min(s) that EventBridge Scheduler must keep an unprocessed event.

      • The maximum time is 24 hours.

      • For Maximum retries, enter the maximum number of times EventBridge Scheduler retries the schedule if the target returns an error.

        The maximum value is 185 retries.

      With retry policies, if a schedule fails to invoke its target, EventBridge Scheduler re-runs the schedule. If configured, you must set the maximum retention time and retries for the schedule.

    3. Choose where EventBridge Scheduler stores undelivered events.

      Dead-letter queue (DLQ) option Do this...
      Don't store Choose None.
      Store the event in the same AWS account where you're creating the schedule
      1. Choose Select an Amazon SQS queue in my AWS account as a DLQ.

      2. Choose the Amazon Resource Name (ARN) of the Amazon SQS queue.

      Store the event in a different AWS account from where you're creating the schedule
      1. Choose Specify an Amazon SQS queue in other AWS accounts as a DLQ.

      2. Enter the Amazon Resource Name (ARN) of the Amazon SQS queue.

    4. To use a customer managed key to encrypt your target input, under Encryption, choose Customize encryption settings (advanced).

      If you choose this option, enter an existing KMS key ARN or choose Create an AWS KMS key to navigate to the AWS KMS console. For more information about how EventBridge Scheduler encrypts your data at rest, see Encryption at rest in the Amazon EventBridge Scheduler User Guide.

    5. For Permissions, choose Use existing role, then select the role.

      To have EventBridge Scheduler create a new execution role for you, choose Create new role for this schedule. Then, enter a name for Role name. If you choose this option, EventBridge Scheduler attaches the required permissions necessary for your templated target to the role.

  10. Choose Next.

  11. In the Review and create schedule page, review the details of your schedule. In each section, choose Edit to go back to that step and edit its details.

  12. Choose Create schedule.

    You can view a list of your new and existing schedules on the Schedules page. Under the Status column, verify that your new schedule is Enabled.

Next steps

You can use the EventBridge Scheduler console or the AWS CLI to manage the schedule. For more information, see Managing a schedule in the Amazon EventBridge Scheduler User Guide.