Использование Terraform для создания Autoscaling Group в AWS.
С помощью mixed_instances_policy
в aws_autoscaling_group
ресурс Terraform.
resource "aws_launch_template" "go_app" {
image_id = "${data.aws_ami.go_app.id}"
instance_type = "${var.launch_config["instance_type"]}"
vpc_security_group_ids = ["${aws_security_group.go_app.id}"]
key_name = "${var.key_name}"
}
В instance_type
в шаблоне запуска есть t2.small
.
resource "aws_autoscaling_group" "go_app" {
name = "${aws_launch_template.go_app.name}-asg"
vpc_zone_identifier = ["${aws_subnet.public.*.id}"]
min_size = 1
desired_capacity = 2
max_size = 4
mixed_instances_policy {
launch_template {
launch_template_specification {
launch_template_id = "${aws_launch_template.go_app.id}"
version = "$$Latest"
}
override {
instance_type = "t2.micro"
}
override {
instance_type = "t2.nano"
}
}
instances_distribution {
on_demand_base_capacity = 1
on_demand_percentage_above_base_capacity = 0
spot_allocation_strategy = "lowest-price"
spot_instance_pools = 2
}
}
}
Это должно создать 1 инстанс по требованию и 1 спотовый инстанс (желаемая емкость равна 2). Но он создает 1 экземпляр по требованию и не может создать спотовый экземпляр.
В истории действий группы Autoscaling упоминается, что группа AutoScaling пытается создать экземпляр, но терпит неудачу из-за следующей ошибки:
Launching a new EC2 instance. Status Reason: Invalid fleet configuration.
Overrides t2.nano, us-west-2c, LINUX. Launching EC2 instance failed.
В Invalid fleet configuration. Overrides t2.nano
сообщение об ошибке означает, что t2.nano
Тип инстанса не поддерживается в данном регионе.
Взгляните на советник по спотовым инстансам для поддерживаемых типов экземпляров.