使用 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 组的活动历史记录提到 AutoScaling 组尝试创建实例但由于以下错误而失败:
Launching a new EC2 instance. Status Reason: Invalid fleet configuration.
Overrides t2.nano, us-west-2c, LINUX. Launching EC2 instance failed.
答案1
错误消息Invalid fleet configuration. Overrides t2.nano
意味着该t2.nano
实例类型不是该地区支持的竞价实例类型。
看看现货实例顾问支持的实例类型。