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