2017-06-21 126 views
0

我试图通过auto_scaling_group上terraform创建EC2实例如何在我的情况下通过terraform创建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) 
实例库存

最终tim Ë出来,说

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属性。

我不知道如何解决这个问题,有人可以帮我吗?非常感谢!

回答

1

这个等待是因为autoscalling组正在等待至少有一个ec2实例可以按照自动缩放组中定义的方式启动并运行,但不存在。这导致错误提到了根本原因“此用户没有默认VPC”。所以基本上,没有ec2启动和运行,因为没有与autoscaling组相关联的VPC,子网和/或VPC标识符。

要解决:

  • 首先,如果你还没有这样做,你将需要创建一个VPC与VPC资源“aws_vpc”
  • 下一页创建子网资源子网“aws_subnet”
  • 接着准的VPC标识符“vpc_zone_identifier”与自动缩放组中“aws_autoscaling_group”资源REA

标识符应该如下,其中“aws_subnet.main公开-1”是一步创建的子网ID 2

vpc_zone_identifier = ["${aws_subnet.main-public-1.id}" 

我希望帮助

相关问题