Como iniciar ECs em uma VPC existente usando Terraform

Preciso criar vários novos EC2, RDS, etc. usando Terraform, em um AWS VPC existente. e a sub-rede, grupo de segurança, iam, etc. existentes, eles não são criados pelo Terraform. é criado manualmente.

Ouvi dizer que o caminho certo é usar a importação de terraform (está correto?). Para testar como a importação de terraform funciona, primeiro testei como importar um EC2 existente em vez de uma VPC existente, porque não quero alterar acidentalmente nada Em uma VPC existente.

antes de correr

terraform import aws_instance.example i-XXXXXXXXXX

Parece que preciso criar um recurso EC2 muito detalhado no meu arquivo ec2.tf, como:

resource "aws_instance" "example" {
  iam_instance_profile = XXXXXXXXXX
  instance_type = XXXXXXX
  ami = XXXXXXX
  tags {
    Name = XXXXX
    Department = XXXX
    ....
  }
} 

se eu apenas escrever:

resource "aws_instance" "example" {
}

mostrou que senti falta do tipo ami e instância,

se eu escrever:

resource "aws_instance" "example" {
  instance_type = XXXXXXX
  ami = XXXXXXX
}

a execução de "terraform apply" mudará as tags do meu EC2 existente para nada e o perfil iam para nada.

Ainda não tentei importar o vpc, sub-rede e grupo de segurança existentes. Receio que, se eu tentar, tenho que colocar muitas informações do vpc, sub-rede, grupo de segurança existente etc. meu sistema é complexo.

é esperado que eu precise indicar tantos detalhes no meu código de terraform? não existe uma maneira de simplesmente indicar o ID do material existente, como o ID do vpc, e meu novo material será criado com base no ID existente? sth. gostar:

data "aws_subnet" "public" {
    id = XXXXXXX
}

resource "aws_instance" "example" {
  instance_type = "t2.micro"
  ami = "${var.master_ami}"
  ......
  subnet_id = "${aws_subnet.public.id}"
}

questionAnswers(1)

yourAnswerToTheQuestion