Использование Terraform для создания группы автоматического масштабирования в 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 пытается создать экземпляр, но выдает следующую ошибку:
Launching a new EC2 instance. Status Reason: Invalid fleet configuration.
Overrides t2.nano, us-west-2c, LINUX. Launching EC2 instance failed.