AWS Systems Manager でタスクのスケジューリングを置き換えれる
SSMとCloudWatch Eventで置き換えられそう。
Terraform の 以下を参考にする
AWS: aws_cloudwatch_event_target - Terraform by HashiCorp
resource "aws_iam_role" "ecs_events" { name = "ecs_events" assume_role_policy = <<DOC { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } DOC } resource "aws_iam_role_policy" "ecs_events_run_task_with_any_role" { name = "ecs_events_run_task_with_any_role" role = "${aws_iam_role.ecs_events.id}" policy = <<DOC { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*" }, { "Effect": "Allow", "Action": "ecs:RunTask", "Resource": "${replace(aws_ecs_task_definition.task_name.arn, "/:\\d+$/", ":*")}" } ] } DOC } resource "aws_cloudwatch_event_target" "ecs_scheduled_task" { target_id = "run-scheduled-task-every-hour" arn = "${aws_ecs_cluster.cluster_name.arn}" rule = "${aws_cloudwatch_event_rule.every_hour.name}" role_arn = "${aws_iam_role.ecs_events.arn}" ecs_target = { task_count = 1 task_definition_arn = "${aws_ecs_task_definition.task_name.arn}" } input = <<DOC { "containerOverrides": [ { "name": "name-of-container-to-override", "command": ["bin/console", "scheduled-task"] } ] } DOC }