2017-06-21 5 views
0

Je suis en train de créer une instance EC2 par auto_scaling_group sur terraformComment créer une instance ec2 via terraform dans mon cas?

J'ai quelque chose comme:

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 

fonctionne très bien, mais

Terraform apply -var-file=mykey.tfvars 

stockera dans la création de l'instance comme

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) 

éventuellement tim e et en disant

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." 

Je pense que je dois préciser id vpc, mais je ne trouve pas auto_scaling_group a vpc_id attribut.

Je ne sais pas comment résoudre ce problème, quelqu'un peut-il m'aider à ce sujet? Merci beaucoup!

Répondre

1

Cette attente est parce que le groupe autoscalling attend au moins une instance ec2 à lancer et à exécuter telle que définie dans le groupe de mise à l'échelle automatique, mais il n'y en a aucune. Cela a entraîné l'erreur qui a mentionné la cause racine "Aucun VPC par défaut pour cet utilisateur". Donc, fondamentalement, il n'y a pas d'ec2 up et runing car il n'y a pas d'identificateur VPC, de sous-réseau et/ou de VPC associé au groupe d'autoscaling.

Pour résoudre:

  • Tout d'abord si vous ne l'avez pas fait cela, vous devrez créer un VPC avec la ressource vpc « aws_vpc »
  • Créez ensuite un sous-réseau avec les ressources de sous-réseau « aws_subnet »
  • associé suivant l'identifiant VPC « de vpc_zone_identifier » avec le groupe de mise à l'échelle automatique dans « aws_autoscaling_group » ressource une rea

L'identifiant doit ressembler ci-dessous où "aws_subnet.main-public-1" est l'ID de sous-réseau créé à l'étape 2

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

J'espère que cela aide