AWS

19 de Fevereiro de 2024 - @Walmir Neto

Depois de Configurando usuário Terraform na AWS, vamos dá uma olhada por cima do Terraform OU você pode seguir o Instalando OpenTofu e trocar todos os comandos terraform nesse artigo por tofu

Criando "hello world"

Agora vamos criar uma nova arquivo para os novos testes, no meu caso vou criar uma pasta chamada devops e dentro dela vou criar um arquivo main.tf. Neles vamos ter que criar alguns blocos. O primeiro deles é referente ao provider que será utilizado, além de setar a região, entre outos. Nesse caso basicamente ficaria assim:

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "~> 3.0"
    }
  }
}

provider "aws" {
  # N. Virginia
  region = "us-east-1" 
}

resource "aws_instance" "ows-apps" {
  # Identificador do sistema operacional (Lembrando que é por região)
  ami = "ami-09e67e426f25ce0d7"
  # Elegível como plano gratuito (caso não extrapole os limites da AWS)
  instance_type = "t2.micro"
  # Nome da chave ssh (Lembrando que é por região e não precisa de extensão do arquivo)
	key_name = "ows-apps" 

  tags = {
    # nome da instancia na AWS
    Name = "ows-apps" 
  }
}

Criando chave ssh

Dentro do bloco provider, temos o parametro key_name que é relacionado a chave ssh. Precisamos criar uma, nesse caso vou criar uma chave chamada ows-apps :

ssh-keygen -t rsa -C [email protected] -f ~/.ssh/ows-apps

Com isso será criado os dois arquivos ows-apps.pub e ows-apps dentro de ~/.ssh e você precisa importa-lá na AWS.

Na barra de pesquisa procure por "Key pairs", clique "Key pairs", em seguida em "Actions" > "Import key pair":

Screen Shot 2021-12-06 at 22.42.06.png

Em seguida ou selecione o arquivo que você criou (no campo "key pair file") ou adicione o conteúdo no textarea:

Screen Shot 2021-12-06 at 22.47.54.png

Feito isso, sua chave vai está salva:

Screen Shot 2021-12-06 at 23.06.05.png

Fazendo a criação dos sevidores

Após a criação do seu arquivo qualquer_coisa.tf, que no caso atual é o main.tf. É preciso rodar alguns comandos do terraform.

Screenshot from 2021-12-04 21-55-30.png

terraform init # Prepara/inicializa o projeto (baixa dependencias)