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"
}
}
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
Aplicar a configuração
Após a inicialização do Terraform, execute o comando para aplicar a configuração:
terraform apply
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
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
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
Espero que este tutorial tenha sido útil! Se tiver alguma dúvida ou sugestão, sinta-se à vontade para perguntar.
Top comments (0)