24:00にリフレッシュさせる
example_app.tfvars
ENV_VALUE_ENVIRONMENT = "develop" sample_app_ecs_service_max_capacity = 4 sample_app_ecs_service_min_capacity = 2
example_app.variables
variable "ENV_VALUE_ENVIRONMENT" {} variable "sample_app_ecs_service_max_capacity" {} variable "sample_app_ecs_service_min_capacity" {}
resource "aws_appautoscaling_target" "example_app" { service_namespace = "ecs" resource_id = "service/${module.example-app.aws_ecs_cluster_example_app_name}/${module.example-app.aws_ecs_service_example_app_name}" scalable_dimension = "ecs:service:DesiredCount" role_arn = module.iam.ecs_service_role_arn min_capacity = 2 # 初期値。スケールする時はAWSコンソールのECS Serviceから更新してください max_capacity = 10 # 初期値。 lifecycle { ignore_changes = [ role_arn, min_capacity, max_capacity ] } } resource "aws_appautoscaling_scheduled_action" "example_app_scale_out" { name = "${var.example_app_prefix}-reflesh-scale-out-${var.ENV_VALUE_ENVIRONMENT}" service_namespace = "${aws_appautoscaling_target.example_app.service_namespace}" resource_id = "${aws_appautoscaling_target.example_app.resource_id}" scalable_dimension = "${aws_appautoscaling_target.example_app.scalable_dimension}" schedule = "cron(0 15 ? * MON-SUN *)" scalable_target_action { min_capacity = "${var.example_app_ecs_service_max_capacity}" max_capacity = "${var.example_app_ecs_service_max_capacity}" } } resource "aws_appautoscaling_scheduled_action" "example_app_scale_in" { name = "${var.example_app_prefix}-reflesh-scale-in-${var.ENV_VALUE_ENVIRONMENT}" service_namespace = "${aws_appautoscaling_target.example_app.service_namespace}" resource_id = "${aws_appautoscaling_target.example_app.resource_id}" scalable_dimension = "${aws_appautoscaling_target.example_app.scalable_dimension}" schedule = "cron(15 15 ? * MON-SUN *)" scalable_target_action { min_capacity = "${var.example_app_ecs_service_min_capacity}" max_capacity = "${var.example_app_ecs_service_min_capacity}" } } resource "aws_appautoscaling_scheduled_action" "example_app_scale_in_modify_max_capacity" { name = "${var.example_app_prefix}-reflesh-scale-in-modify-max-capacity-${var.ENV_VALUE_ENVIRONMENT}" service_namespace = "${aws_appautoscaling_target.example_app.service_namespace}" resource_id = "${aws_appautoscaling_target.example_app.resource_id}" scalable_dimension = "${aws_appautoscaling_target.example_app.scalable_dimension}" schedule = "cron(20 15 ? * MON-SUN *)" scalable_target_action { min_capacity = "${var.example_app_ecs_service_min_capacity}" max_capacity = "${var.example_app_ecs_service_max_capacity}" } }