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

Figura 02.

DURANTE

VS Code > Terminal > New terminal > terraform init
VS Code > Terminal > New terminal > terraform plan
VS Code > Terminal > New terminal > terraform apply
Figura 03.
Figura 04.

DEPOIS

Figura 05.
Figura 06.

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!

Figura 07.

CURTA, COMPARTILHE, COMENTE

Deixe uma resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.