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.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more