Я пишу сценарий 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"
}