Skip to main content
📝 Cloud & DevOps (AWS)

Como Configurar um Servidor AWS EC2 Usando Terraform no Mac [Guia Passo a Passo]

Guia passo a passo para configurar um servidor AWS EC2 usando Terraform no Mac. Inclui instalação, configuração de credenciais, arquivos HCL e implantação.

8 min

Tempo de leitura

1,545

Palavras

Apr 02, 2025

Publicado

Engr Mejba Ahmed

Escrito por

Engr Mejba Ahmed

Compartilhar Artigo

Como Configurar um Servidor AWS EC2 Usando Terraform no Mac [Guia Passo a Passo]

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

  1. Faça login no Console da AWS.

  2. Vá para IAM → Users → Security Credentials.

  3. 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.

Publicidade
Coffee cup

Gostou deste artigo?

Seu apoio me ajuda a criar mais conteúdo técnico aprofundado, ferramentas open-source e recursos gratuitos para a comunidade de desenvolvedores.

Tópicos Relacionados

Engr Mejba Ahmed

Sobre o Autor

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

3  x  2  =  ?

Continue Aprendendo

Artigos Relacionados

Ver Todos

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support