Как запустить экземпляр EC2 в существующем VPC с помощью Terraform?

Я пишу сценарий TF для запуска экземпляра EC2 в существующий VPC. Я видел несколько примеров, когда сценарий назначает идентификатор подсети с помощью переменной из другой части сценария, где были созданы VPC и подсеть. Вместо использования subnet_id = "$ {aws_subnet.main-public-1.id}", как было показано в этом примере, я попытался поместить фактический идентификатор подсети из существующей подсети в существующий vpn, оба из которых были сделаны с помощью консоли , нравится:

subnet_id = "subnet-xxxxx"

и применил группу безопасности таким же образом. Но когда экземпляр EC был запущен, он находился в VPC по умолчанию с группой безопасности по умолчанию. Почему это случилось? Как запустить EC2 в существующий VPC и подсеть с существующими группами безопасности?

Вот полный сценарий

EC2.tf

provider "aws" {
  profile    = "default"
  region     = var.region
}

resource "aws_instance" "WindowsBox" {
  ami           = "ami-xxxxx"
  instance_type = "t2.medium"
  key_name = aws_key_pair.keypair.key_name

  subnet_id = "subnet-xxxxx"
  vpc_security_group_ids = ["sg-xxxxx"]

  tags = {
    Name ="WindowsBox"
  }
}

resource "aws_eip" "ip" {
    vpc = true
    instance = aws_instance.WindowsBox.id
}

resource "aws_key_pair" "keypair" {
  key_name = "WindowsBox-keypair"
  public_key = file("./kp/WindowsBox-keypair.pub")
}

Variables.tf

variable "region" {
  default = "us-east-2"
}

person user20358    schedule 14.02.2020    source источник


Ответы (1)


Группа безопасности, которую вы используете для создания экземпляра, также должна существовать внутри VPC. Думаю, здесь дело обстоит не так.

Я бы проверил, совпадает ли идентификатор VPC группы безопасности с идентификатором VPC подсети.

Надеюсь это поможет

person Arun K    schedule 14.02.2020