Páginas

terça-feira, 28 de abril de 2026

 

Infraestrutura AWScom Node.js+PostgreSQL na AWS com Terraform e Docker, e Automacao via GitHub Actions 

 

Este projeto consiste em uma pipeline de CI/CD totalmente automatizada utilizando GitHub Actions, Terraform e Docker para provisionamento e deploy de uma aplicação Node.js na AWS.

A infraestrutura é gerenciada como código (IaC), garantindo reprodutibilidade, escalabilidade e facilidade de destruição e recriação do ambiente.

 

O que o projeto faz

O sistema automatiza todo o ciclo de vida da aplicação:

  1. Build da aplicação
    • A aplicação Node.js é empacotada em uma imagem Docker.  
  2. Publicação da imagem
    • A imagem é enviada para o Docker Hub automaticamente.
  3. Provisionamento de infraestrutura
    • O Terraform cria toda a infraestrutura na AWS, incluindo:
      • EC2 (servidor da aplicação)
      • RDS (banco de dados)
      • Security Groups
      • Dependências de rede
  4. Deploy automatizado
    • A EC2 baixa a imagem Docker e executa a aplicação.
  5. Destruição sob demanda
    • Um workflow separado permite destruir toda a infraestrutura com um clique.

 

Tecnologias utilizadas

  • GitHub Actions → CI/CD pipeline
  • Terraform → Infraestrutura como código (IaC)
  • AWS (EC2, RDS, VPC, Security Groups) → Cloud provider
  • Docker → Containerização da aplicação
  • Docker Hub → Registry de imagens
  • Node.js → Aplicação backend

 

Imagens do repositório 

 


 

 
 


Checar se aplicação se conectou corretamente

 ( Seu IP da EC2 conectando na porta 3000 )


 

Checar se o docker está rodando na EC2

( Entrar na maquina com sua chave .pem criada ssh -i my-key.pem ec2-user@SEU_IP_EC2, e la dentro emitir um docker ps )



Checar se a aplicação está conectando com o banco

( Use os comandos abaixo pra confirmar

docker exec -it node-app printenv | grep DB_HOST
docker logs node-app
nslookup app-db.cclwyemq4f8s.us-east-1.rds.amazonaws.com
cat /home/ec2-user/db_debug.txt
getent hosts app-db.cclwyemq4f8s.us-east-1.rds.amazonaws.com )  

 


 

Link do repositório https://github.com/RafaelFerreiraNeves/Infraestrutura-AWS-Node.js-PostgreSQL-na-AWS-com-Terraform-e-Docker-e-Automacao-via-GitHub-Actions.git

quarta-feira, 22 de abril de 2026

 

Infraestrutura AWS com Terraform (Arquitetura Modular) com uso de outputs, e Automação via GitHub Actions


Desenvolvi uma infraestrutura em nuvem na AWS utilizando Terraform, aplicando princípios de Infraestrutura como Código (IaC) e arquitetura modular para garantir escalabilidade, reutilização e fácil manutenção.

O projeto foi estruturado com módulos independentes de VPC, EC2 e S3, simulando um ambiente real de produção e seguindo boas práticas utilizadas em times de engenharia de plataforma e DevOps.

 

Principais entregas e responsabilidades

  • Projetei e implementei uma VPC customizada, garantindo isolamento de rede e base para workloads seguros
  • Automatizei o provisionamento de instâncias EC2, prontas para hospedar aplicações e serviços backend
  • Estruturei buckets S3 para armazenamento de dados, logs e possíveis integrações com aplicações
  • Organizei o código em módulos reutilizáveis, facilitando versionamento e escalabilidade da infraestrutura
  • Preparei o ambiente para uso com backend remoto (S3 + DynamoDB), permitindo controle de estado e lock em ambientes colaborativos
  • Estruturei o projeto para integração com pipelines CI/CD (GitHub Actions)
  •  

     

    Tecnologias e conceitos aplicados

    • AWS (VPC, EC2, S3)
    • Terraform (módulos, variáveis, outputs, state management)
    • Infraestrutura como Código (IaC)
    • Boas práticas de organização e reutilização de código
    • Conceitos de redes (subnets, isolamento, segurança)
    • Automação e CI/CD

     

     Imagen do repositório 

     

       Link do repositório https://github.com/RafaelFerreiraNeves/Infraestrutura-AWS-comInfraestrutura-AWS-Arquitetura-Modular-com-uso-de-outputs-e-Automacao-via-GitH.git

     

    quinta-feira, 16 de abril de 2026

     

     

    Implementação de um Cluster Kubernetes com Terraform e Automação via GitHub Actions

     

    Automação com Terraform Objetivo do projeto

    O objetivo é automatizar o processo de criação e manutenção do ambiente para execução dos projetos de Software

    Para o desenvolvimento do projeto, foram levantadas as seguintes premissas:

     

    Utilizar o Terraform como ferramenta de infraestrutura como código.
    O cluster Kubernetes deve ser criado utilizando o serviço Elastic Kubernetes Service (EKS) da AWS.
    O projeto deve ser o mais simples e reaproveitável possível.
    Toda vez que houver alteração no código Terraform na branch main do repositório, a pipeline deve ser executada.
    Só vai haver um ambiente Kubernetes (os ambientes de desenvolvimento, homologação e produção serão separados por namespace).

     

    AWS
        S3
        EKS
    AWS CLI
    Terraform
        AWS Provider
        AWS VPC Terraform module
        AWS EKS Terraform module
    GitHub
        GitHub Actions

     

     Motivações para o uso de cada tecnologia

     

    EKS - Requisito do projeto.
    S3 - Foi adotado para armazenar o estado atual do projeto Terraform. Foi definido o seu uso por ser um serviço da própria AWS e ter controle de versionamento dos arquivos.
    GitHub Actions - Requisito do projeto.

     

    Instruções para executar

     

    A pipeline de criação ou atualização do projeto é executada sempre que o código Terraform do projeto for alterado na branch main. Configurações

    As variáveis de configuração do projeto estão no arquivo terraform.tfvars, exceto as variáveis consideradas sensiveis que estão no gerenciador de secrets do GitHub Actions.

    Variáveis armazendas em secrets:

    AWS_ACCESS_KEY_ID => Access Key utilizada para configurar o AWS CLI.

    AWS_SECRET_ACCESS_KEY => Secret access Key utilizada para configurar o AWS CLI.

    Estrutura da solução

    Diagrama do projeto

    Explicação do Fluxo Possíveis evoluções do projeto

    Algumas evoluções que sugiro para o projeto:

     

    Separar ambientes dev, homolog e prod utilizando o Terraform Workspace ou Terraform Grunt para criação e gerenciamento desses ambientes.
    Usar o DynamoDB junto com o S3 para evitar execução paralela do Terraform. 

     

     Imagens do repositório

     

     

     
     
     
     

     

     Link do repositório https://github.com/RafaelFerreiraNeves/Infraestrutura-AWS-de-um-Cluster-Kubernetes-com-Terraform-e-Automa-o-via-GitHub-Actions.git

     

    Obs:  Sempre de fork no GitHub, isso serve para criar uma cópia pessoal de um repositório de terceiros na sua própria conta, permitindo que você experimente, altere e melhore o código livremente sem afetar o projeto original

    ATENÇÂO : O EKS não está incluído no AWS Free Tier, que é um programa que oferece acesso gratuito limitado a determinados serviços da AWS. Embora o Free Tier cubra determinados serviços como EC2 (horas limitadas), S3 e RDS, as cobranças do EKS se aplicam imediatamente após o uso, independentemente da elegibilidade do nível gratuito. As cobranças adicionais do EC2, VPC, KMS e CloudWatch também estão associadas à sua infraestrutura do EKS.