DEV Community

Kaike Castro
Kaike Castro

Posted on

Como criar uma instância EC2 usando Terraform, adicionar um backend S3 e instalar o Docker

Neste tutorial, você aprenderá como criar uma instância EC2 (Elastic Compute Cloud) na AWS usando o Terraform, adicionar um backend S3 para armazenar o estado remoto do Terraform e, em seguida, como acessar a instância EC2 e instalar o Docker nela.

Configuração do ambiente

Certifique-se de ter o Terraform instalado no seu computador. Acesse o site oficial do Terraform para obter as instruções de instalação.

Criar um bucket no S3

Acesse o console da AWS e crie um novo bucket no serviço S3. Escolha um nome único e uma região para o bucket.

Segue uma breve explicação por que usamos o backend s3 no terraform.

Como funciona o backend S3 no Terraform

  • Estado remoto: Com o backend S3 configurado, o estado do Terraform (o arquivo "terraform.tfstate") será armazenado no bucket S3 que você especificou. Isso significa que, em vez de ser armazenado localmente, o estado será armazenado de forma remota em um local seguro e durável.
  • Colaboração em equipe: O uso de um backend remoto permite que várias pessoas trabalhem juntas em um mesmo projeto Terraform sem que ocorram conflitos no estado. Cada membro da equipe obtém a versão mais recente do estado do bucket S3 e pode trabalhar com segurança, sabendo que as alterações são mantidas consistentes.
  • Rastreamento de histórico: O backend S3 mantém um histórico de alterações no estado do Terraform, permitindo que você reverta ou veja o histórico de alterações ao longo do tempo.
  • Segurança e Durabilidade: A AWS oferece recursos de segurança e durabilidade para os buckets do S3, garantindo a integridade e a disponibilidade do estado do Terraform.

Criar um arquivo de configuração do Terraform

Crie um arquivo chamado "main.tf" e insira o seguinte conteúdo:

terraform {
  backend "s3" {
    bucket = "seu-bucket-terraform"  # Substitua pelo nome do bucket criado anteriormente
    key    = "terraform.tfstate"
    region = "us-east-1"  # Substitua pela região do bucket
  }
}

provider "aws" {
  region = "us-east-1"  # Substitua pela região desejada
}

resource "aws_instance" "ec2_instance" {
  ami           = "ami-0c55b159cbfafe1f0"  # AMI da região us-east-1 (Amazon Linux 2)
  instance_type = "t2.micro"  # Tipo da instância (pode ser alterado)

  tags = {
    Name = "MinhaEC2"
  }
}
Enter fullscreen mode Exit fullscreen mode

Inicializar o Terraform

Abra um terminal ou prompt de comando, navegue até o diretório onde você criou o arquivo "main.tf" e execute os seguintes comandos:

terraform init
Enter fullscreen mode Exit fullscreen mode

Aplicar a configuração

Após a inicialização do Terraform, execute o comando para aplicar a configuração:

terraform apply
Enter fullscreen mode Exit fullscreen mode

Confirme a ação digitando "yes" quando solicitado.

Acessar a instância EC2

Após o Terraform concluir a criação da instância EC2, você receberá informações sobre a instância criada. Procure pelo atributo "public_ip" que contém o endereço IP público da instância.

Use um terminal SSH (se estiver no Linux ou macOS) ou um cliente SSH como o PuTTY (se estiver no Windows) para acessar a instância EC2. O comando para se conectar via SSH é:

ssh -i /caminho/para/sua/chave.pem ec2-user@seu_ip_publico
Enter fullscreen mode Exit fullscreen mode

Lembre-se de substituir "/caminho/para/sua/chave.pem" pelo caminho para a chave privada (.pem) que você usou ao criar a instância e "seu_ip_publico" pelo endereço IP público da instância EC2.

Instalar o Docker

Agora que você está conectado à instância EC2 via SSH, vamos instalar o Docker:

sudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user
Enter fullscreen mode Exit fullscreen mode

Após executar esses comandos, o Docker deve estar instalado e em execução na sua instância EC2.

Conclusão

Parabéns! Agora você aprendeu como criar uma instância EC2 usando o Terraform, adicionar um backend S3 para armazenar o estado remoto do Terraform, acessá-la através do SSH e instalar o Docker na instância. A partir desse ponto, você pode implantar e executar seus aplicativos Docker na instância EC2.

Lembre-se de desalocar os recursos quando não estiverem em uso para evitar custos não desejados. Para isso, você pode usar o Terraform para destruir os recursos criados:

terraform destroy
Enter fullscreen mode Exit fullscreen mode

Espero que este tutorial tenha sido útil! Se tiver alguma dúvida ou sugestão, sinta-se à vontade para perguntar.

Top comments (0)