Como Configurar um Servidor AWS EC2 Usando Terraform no Mac [Guia Passo a Passo]
Introdução: A Forma Mais Inteligente de Lançar Servidores AWS pelo Mac
Se você já criou uma instância EC2 manualmente pelo Console da AWS, já sabe como é fácil cometer erros — selecionar a região errada, esquecer de configurar os grupos de segurança ou não configurar a chave SSH.
Agora imagine lançar toda sua infraestrutura na nuvem automaticamente com apenas um comando. É aí que entra o Terraform.
Terraform é uma poderosa ferramenta de Infraestrutura como Código (IaC) que permite definir, versionar e automatizar implantações na nuvem na AWS, Azure, Google Cloud e mais. Para desenvolvedores que trabalham no Mac, oferece uma forma limpa, eficiente e repetível de gerenciar servidores — sem tocar no painel da AWS.
Neste guia, você aprenderá exatamente como:
- Configurar o Terraform no seu Mac
- Conectá-lo com credenciais da AWS
- Escrever um arquivo de configuração Terraform para lançar uma instância EC2
- Aplicar, verificar e gerenciar sua implantação com confiança
Ao final, você terá um servidor AWS EC2 totalmente funcional implantado com Terraform — reproduzível a qualquer momento e lugar.
Passo 1: O Que Você Precisa Antes de Começar
Antes de começarmos, certifique-se de ter os seguintes pré-requisitos:
🧰 Requisitos do Sistema
- macOS 12+
- Homebrew (para instalação fácil de pacotes)
- Uma conta AWS com chaves de acesso
- Conhecimentos básicos de AWS EC2
☁️ Configuração da Conta AWS
-
Faça login no Console da AWS.
-
Vá para IAM → Users → Security Credentials.
-
Gere um Access Key ID e Secret Access Key.
- Armazene-os com segurança — o Terraform precisa deles para se autenticar com a AWS.
Passo 2: Instalar o Terraform no Mac
A forma mais fácil de instalar o Terraform no macOS é pelo Homebrew.
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Verifique a instalação:
terraform -version
✅ Exemplo de saída:
Terraform v1.9.0
on darwin_amd64
É isso! O Terraform agora está instalado globalmente no seu sistema.
Passo 3: Configurar o AWS CLI
O Terraform se comunica com a AWS via AWS CLI. Vamos instalá-lo e configurá-lo.
brew install awscli
Uma vez instalado, configure com suas credenciais:
aws configure
Insira:
AWS Access Key ID: <your-access-key>
AWS Secret Access Key: <your-secret-key>
Default region name: us-east-1
Default output format: json
Isso cria um arquivo de configuração em ~/.aws/credentials, que o Terraform usará para autenticação.
Passo 4: Configurar um Novo Projeto Terraform
Agora vamos criar um diretório de projeto para seus arquivos Terraform.
mkdir terraform-ec2-setup
cd terraform-ec2-setup
Dentro desta pasta, crie um novo arquivo chamado main.tf:
touch main.tf
É aqui que todas as suas configurações Terraform ficarão.
Passo 5: Escrever seu Arquivo de Configuração Terraform
Vamos definir tudo que o Terraform precisa para criar uma instância EC2 — provedor, região, AMI, tipo de instância e grupos de segurança.
Abra main.tf e adicione o seguinte código:
# Especificar AWS como provedor
provider "aws" {
region = "us-east-1"
}
# Criar um par de chaves
resource "aws_key_pair" "mac_key" {
key_name = "mac-terraform-key"
public_key = file("~/.ssh/id_rsa.pub")
}
# Criar um grupo de segurança
resource "aws_security_group" "allow_ssh" {
name = "allow_ssh"
description = "Allow SSH inbound traffic"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
# Criar uma instância EC2
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = "t2.micro"
key_name = aws_key_pair.mac_key.key_name
security_groups = [aws_security_group.allow_ssh.name]
tags = {
Name = "Terraform-Mac-Instance"
}
}
Passo 6: Inicializar o Terraform
Antes de aplicar qualquer configuração, inicialize o Terraform. Isso baixa todos os plugins de provedor necessários.
terraform init
✅ Saída esperada:
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
Passo 7: Validar a Configuração
Sempre valide seus arquivos .tf antes de aplicar mudanças.
terraform validate
Se tudo estiver correto, você verá:
Success! The configuration is valid.
Passo 8: Pré-visualizar o Plano de Infraestrutura
Agora, vamos ver o que o Terraform vai criar — sem fazer mudanças reais ainda.
terraform plan
O Terraform mostrará um plano detalhado dos recursos a serem criados:
+ aws_instance.my_ec2
+ aws_security_group.allow_ssh
+ aws_key_pair.mac_key
Esta é sua chance de confirmar a configuração antes da implantação.
Passo 9: Aplicar e Criar a Instância EC2
Quando estiver pronto, implante a instância:
terraform apply
Digite yes quando solicitado.
O Terraform irá:
- Criar um par de chaves
- Configurar um grupo de segurança
- Implantar uma instância EC2
✅ Saída esperada:
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Outputs:
instance_public_ip = "54.210.19.33"
Agora você pode acessar sua nova instância via SSH:
ssh [email protected]
Passo 10: Verificar no Console da AWS
Abra seu Console de Gerenciamento da AWS → EC2 Dashboard, e você verá sua nova instância rodando sob:
Name: Terraform-Mac-Instance
Isso confirma que o Terraform implantou com sucesso sua infraestrutura.
Passo 11: Limpar Recursos (Opcional)
Quando terminar os testes, sempre destrua a infraestrutura para evitar custos desnecessários da AWS.
terraform destroy
Digite yes para confirmar.
Passo 12: Entendendo o Fluxo de Trabalho do Terraform
Aqui está um resumo rápido dos comandos do ciclo de vida do Terraform que você usará frequentemente:
| Comando | Descrição |
|---|---|
terraform init |
Inicializa o projeto e instala plugins de provedor |
terraform validate |
Verifica a sintaxe da configuração |
terraform plan |
Pré-visualiza as mudanças propostas de infraestrutura |
terraform apply |
Aplica e implanta as mudanças na AWS |
terraform destroy |
Exclui os recursos criados |
Passo 13: Problemas Comuns e Soluções
❌ Erro: Credenciais AWS Inválidas
Verifique seu arquivo ~/.aws/credentials ou execute novamente aws configure.
❌ Permission Denied (publickey)
Certifique-se de que sua chave SSH esteja adicionada corretamente no recurso de par de chaves do Terraform e no diretório ~/.ssh do seu Mac.
❌ Security Group Not Found
O Terraform cria dependências automaticamente, mas se você modificar nomes de recursos, execute novamente terraform init.
❌ Conflitos de Arquivo de Estado
Nunca edite manualmente terraform.tfstate. Use backends remotos como S3 para ambientes de equipe.
Passo 14: Melhores Práticas para Terraform + AWS no Mac
✅ Usar Armazenamento Remoto de Estado
Armazene o estado do Terraform no AWS S3 com bloqueio DynamoDB para evitar conflitos:
terraform {
backend "s3" {
bucket = "terraform-state-bucket"
key = "ec2/terraform.tfstate"
region = "us-east-1"
}
}
✅ Controle de Versão
Adicione .terraform/ ao seu .gitignore e armazene os arquivos .tf no Git para colaboração.
✅ Modularizar Infraestrutura
Use módulos Terraform para configurações reutilizáveis — como vpc, ec2 e security_groups.
✅ Etiquetar Tudo
Sempre etiquete os recursos AWS para facilitar o gerenciamento, faturamento e auditoria.
Passo 15: Automatizando a Configuração EC2 com Variáveis
Crie um arquivo variables.tf para tornar as configurações reutilizáveis:
variable "instance_type" {
default = "t2.micro"
}
variable "region" {
default = "us-east-1"
}
Depois atualize main.tf:
provider "aws" {
region = var.region
}
resource "aws_instance" "my_ec2" {
ami = "ami-0c02fb55956c7d316"
instance_type = var.instance_type
}
Execute:
terraform plan
terraform apply
Isso torna sua implantação flexível e independente de ambiente.
Passo 16: Bônus – Automatizar com GitHub Actions (CI/CD)
Para usuários avançados, automatize implantações Terraform diretamente do GitHub.
Crie .github/workflows/deploy.yml:
name: Terraform AWS Deploy
on:
push:
branches: [ "main" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
- name: Terraform Init
run: terraform init
- name: Terraform Apply
run: terraform apply -auto-approve
Este pipeline executa o Terraform automaticamente toda vez que você faz push para main — perfeito para automação em equipe.
Pontos-Chave
- 💻 O Terraform permite automatizar a configuração do AWS EC2 pelo Mac com código limpo e reutilizável.
- 🔐 Use chaves de acesso IAM para autenticação — nunca codifique credenciais diretamente.
- 🧠 Valide e pré-visualize planos antes de aplicar.
- 🧩 Modularize sua configuração Terraform para escalabilidade.
- ☁️ Limpe recursos não utilizados para controlar os custos da AWS.
Chamada para Ação
Pronto para levar sua automação AWS ao próximo nível? Dominar o Terraform no Mac é apenas o começo — a partir daqui, você pode expandir para gerenciar implantações multi-ambiente, buckets S3, VPCs e até clusters Kubernetes — tudo através de código.
👉 Comece agora configurando sua primeira instância EC2 gerenciada com Terraform, e experimente como a automação na nuvem pode ser fácil.
Perguntas Frequentes
P: Para que o Terraform é usado?
O Terraform automatiza a implantação de infraestrutura em plataformas de nuvem como AWS, Azure e Google Cloud através de arquivos de configuração simples.
P: O Terraform é gratuito?
Sim. O Terraform CLI é open source, embora a HashiCorp ofereça versões pagas para equipes e automação empresarial.
P: Posso usar o Terraform no Windows ou Linux também?
Com certeza. O Terraform funciona em todos os principais sistemas operacionais. Os comandos de configuração variam ligeiramente por plataforma.
P: Como faço SSH na minha instância EC2 do Terraform?
Use sua chave SSH privada e o IP público da instância:
ssh ec2-user@<instance_ip>
P: Devo excluir os recursos após os testes?
Sim — sempre execute terraform destroy após testar para evitar faturamento inesperado da AWS.