TERRAFORM SERIES: LAB … Working on AWS: (tags) NAME = elastic-computer_${COUNT.INDEX}
Ainda empolgado com o fato de ter criado uma instância? Por conta própria, usando poucas linhas de código, e sem necessariamente validar todo o processo na web … Lembra disso? E se eu te disser que, analogamente também é possível subir mais duas ou três máquinas iguais aquela, só que agora todas ao mesmo tempo. Num único e bem elaborado script … Ficaria satisfeito? Caso tenha respondido sim para ambas, então trago boas novas! Pois é exatamente o que pretendo lhes mostrar hoje 😊 Mas não antes de pontuar, comentando brevemente, essa captura que tirei da página do TERRAFORM:
Trata-se do repositório oficial de provedores, chamado aqui de REGISTRY (ou registro, em português) Colocando em outros termos, eles formam o conjunto de possibilidades para se trabalhar com Terraform. Vão desde empresas, passando por tipos de arquitetura, e chegando até mesmo em software/hardware muito específicos. Sempre que você for questionado por um colega/amigo sobre o que seria exatamente uma ferramenta de IaC, visite o site e mostre essa mesma tela. Garanto que além de surpreendido, o entendimento será quase instantâneo.
Mas voltando ao nosso foco, resgate o código passado em seu editor/IDE de programação preferido(a). No meu caso utilizo, e portanto recomendo, o VSCode da Microsoft. Lembrando que quanto a esse “pequeno” detalhe, não existe certo ou errado, melhor ou pior, e sim o que há de fato é: familiaridade, produtividade e afeição. A palavra final sempre será sua! 🙂
https://raw.githubusercontent.com/vicrlda/terraform-aws/master/main.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.27"
}
}
required_version = ">= 0.14.9"
}
provider "aws" {
profile = "default"
region = "us-east-2"
}
resource "aws_instance" "app_server" {
count = 3
ami = "ami-045137e8d34668746"
instance_type = "t2.micro"
key_name = "rootkiv-aws"
tags = {
Name = "elastic-computer_${count.index}"
}
}
Percebam que intencionalmente destaquei apenas três linhas, sendo duas consideradas efetivamente adições no código (ou seja, modificações) e outra que permaneceu inalterada mas fiz questão de destacá-la para fins de comparação. Eu sei, confesso … Confuso! 😕 Daqui a pouco tudo ficará mais claro e vocês entenderam o que quero com isso. Prometo! 🙃 No que diz respeito a segunda linha, a mesma consiste em um contador de eventos (ou elementos, como é este caso). Já a terceira e última, trata-se do recurso das TAGS no terraform. Estas que dão nome e sentido as coisas trabalhadas aqui. Sendo assim, estamos usando o índice do contador para a cada vez que ele for incrementado (i = i + 1), anexá-lo ao fim do nome daquela tag em questão. Mais ou menos como se fosse: computador1, computador2, computador3, e por aí vai.
Bem, agora consultando as etapas traçadas noutro post, e executando os mesmos passos novamente, o que teremos é o seguinte cenário:
ANTES

DURANTE
VS Code > Terminal > New terminal > terraform init
VS Code > Terminal > New terminal > terraform plan
VS Code > Terminal > New terminal > terraform apply


DEPOIS


E FIM … Por hoje é só! Jamais esqueça de encerrar suas instâncias!!! No máximo deixe apenas uma delas ligada durante o mês. 750 horas mensais gratuitas Nunca esqueça disso!
