我正在尝试通过terraform上的auto_scaling_group创建ec2实例
我有类似的东西:
resource "aws_ecs_cluster" "my_cluster" {
name = "my-cluster"
}
resource "aws_autoscaling_group" "my_instances" {
name = "my-instances"
min_size = 1
max_size = 2
availability_zones = ["us-east-1a"]
launch_configuration = "${aws_launch_configuration.my_ecs_instance.id}"
}
resource "aws_launch_configuration" "my_ecs_instance" {
name_prefix = "my-ecs-instance"
instance_type = "t2.micro"
image_id = "ami-19e8cc0e"
}
Terraform plan -var-file=mykey.tfvars
工作正常,但
Terraform apply -var-file=mykey.tfvars
将创建像
这样的实例aws_autoscaling_group.my_instances: Still creating... (9m20s elapsed)
aws_autoscaling_group.my_instances: Still creating... (9m30s elapsed)
aws_autoscaling_group.my_instances: Still creating... (9m40s elapsed)
最终超时并说
aws_autoscaling_group.my_instances: "my-instances"
Waiting up to 10m0s: Need at least 1 healthy instances in ASG, have 0. Most recent activity:
..more..
StatusMessage: "No default VPC for this user. Launching EC2 instance failed."
我想我需要指定vpc id,但我发现auto_scaling_group
没有vpc_id属性。
我不知道如何解决这个问题,有人可以帮我解决这个问题吗?非常感谢!
答案 0 :(得分:1)
错误消息为:StatusMessage: "No default VPC for this user. Launching EC2 instance failed."
您需要创建带子网的VPC,并在创建自动缩放组时提供子网ID。
考虑添加vpc_zone_identifier
vpc_zone_identifier(可选)用于启动资源的子网ID列表。
https://www.terraform.io/docs/providers/aws/r/autoscaling_group.html#vpc_zone_identifier
答案 1 :(得分:1)
此等待是因为自动调整组正在等待至少一个ec2实例按照自动缩放组中的定义启动并运行,但没有。这导致了错误,其中提到了根本原因“此用户没有默认VPC”。基本上,没有ec2 up和runing,因为没有与自动缩放组关联的VPC,子网和/或VPC标识符。
要解决:
标识符应如下所示“aws_subnet.main-public-1”是在步骤2中创建的子网ID
vpc_zone_identifier = ["${aws_subnet.main-public-1.id}"
我希望有帮助