Projeto – AWS + EKS
⚙️ Configuração da AWS CLI
Primeiro, instale o AWS CLI conforme a documentação oficial da Amazon:
👉 Guia de Instalação do AWS CLI
Após a instalação, configure suas credenciais executando o comando:
Forneça as chaves de acesso (Access Key ID e Secret Access Key), além da região padrão e do formato de saída desejado.
☁️ Criação do Cluster EKS
Com o AWS CLI configurado, prossiga com a criação do cluster EKS (Elastic Kubernetes Service).
Exemplo de cluster em execução:

Ao final do processo, será criado um cluster com duas subnets — pública e privada — conectadas por um Load Balancer.
O tráfego externo chega pela subnet pública, onde o Load Balancer atua como intermediário, encaminhando as requisições para as aplicações hospedadas na subnet privada.
Essa arquitetura garante segurança e isolamento de rede, pois o usuário externo não tem acesso direto às instâncias internas:

Para conectar seu ambiente local ao cluster, execute o seguinte comando:
Após isso, você poderá acessar e gerenciar o cluster remotamente por meio do kubectl.
🧪 Teste de Carga
Abaixo está um vídeo demonstrando o teste de carga realizado no cluster:
📌 Clique na imagem para assistir ao vídeo do teste de carga.
🚀 CI/CD – Integração e Entrega Contínuas
O pipeline de CI/CD deste projeto é orquestrado pelo Jenkins, garantindo que todas as atualizações sejam: - Continuamente integradas ao repositório principal (CI) - Testadas e validadas automaticamente - Entregues e/ou implantadas de forma automatizada (CD)
Principais responsabilidades do Jenkins
- Build e validação do código a cada commit
- Execução automática da suíte de testes
- Geração e versionamento de artefatos
- Build e push de imagens Docker para o registro configurado
- Deploy nos ambientes configurados (ex.: Kubernetes/EKS)
Benefícios do pipeline
- Redução de falhas durante deploys
- Feedback rápido para desenvolvedores
- Maior padronização e rastreabilidade das versões
- Entregas mais rápidas e seguras
📚 Documentação Detalhada do Jenkins
A documentação completa do pipeline de CI/CD — incluindo arquitetura, fluxos dos jobs, ambientes, credenciais e logs de execução — pode ser acessada no link abaixo:
🔗 Acessar Documentação Jenkins 👉 Documentação Jenkins
💰 Custos
A partir do painel Billing and Cost Management da AWS, é possível acompanhar detalhadamente os custos do ambiente em execução no EKS, incluindo EC2, balanceadores de carga e demais serviços associados.
🔹 Visão Geral dos Custos
A imagem abaixo mostra o resumo dos custos mensais até o momento, incluindo o custo acumulado no mês atual e a previsão total para o mês:
- Month-to-date cost: US$ 51.90
- Total forecasted cost: US$ 57.37
- Último mês: Sem custos registrados, indicando início recente de uso dos recursos.
🔹 Distribuição por Serviço
O gráfico abaixo mostra o breakdown de custos por serviço da AWS:
Principais serviços com custo associado: - Amazon Elastic Container Service for Kubernetes (EKS) — custos do cluster e seus nós de controle.
- Amazon Elastic Compute Cloud (EC2) — instâncias utilizadas pelos worker nodes.
- Amazon Elastic Load Balancing (ALB) — balanceador de carga público responsável pelo tráfego externo.
- Impostos e outros serviços menores.
🔹 Recomendações de Otimização
A AWS fornece recomendações automáticas de otimização de custo, como mostrado no painel:
- 💡 Criar um monitor de anomalias de custo (Anomaly Monitor): identifica aumentos inesperados no gasto.
- 💡 Habilitar o Cost Optimization Hub: permite gerar relatórios de economia.
- 💡 Adicionar contatos de cobrança alternativos: melhora a visibilidade e controle financeiro.
Essas ações ajudam a manter os custos previsíveis e evitar gastos indevidos.
🔹 Análise Detalhada
Para análises mais completas, é possível acessar o AWS Cost Explorer e filtrar custos por: - Serviço (EKS, EC2, etc.)
- Região
- Tag de projeto
- Período mensal ou diário
📊 Essas informações ajudam a manter o controle financeiro da infraestrutura em nuvem, permitindo identificar rapidamente aumentos de custo e otimizar os recursos utilizados no cluster EKS.
☁️ PaaS – Onde e Como Utilizamos
Nesse projeto, o conceito de Plataforma como Serviço (PaaS) foi empregado com a AWS Elastic Kubernetes Service (EKS).
O EKS disponibiliza uma plataforma gerenciada pela AWS para executar e orquestrar containers Docker em produção, sem que seja necessário gerenciar diretamente:
- Sistema Operacional das máquinas
- Patches de segurança
- Setup do Control Plane (API Server, etcd, scheduler…)
- Alta disponibilidade e failover do cluster
- Atualizações e manutenção da infraestrutura Kubernetes
✅ A AWS assume a responsabilidade por toda a infraestrutura base
✅ Nossa equipe gerencia apenas as aplicações e configurações de deploy
🎯 O que fazemos (responsabilidade do grupo)
- Construção e versionamento das imagens Docker
- Deploy dos microserviços no EKS com
kubectlou via Jenkins - Configuração de Services, Deployments, ConfigMaps e Secrets
- Escalabilidade dos serviços de acordo com demanda
- Observabilidade e logs
💡 Isso significa que todo o ciclo de vida dos microserviços é controlado por nós, em uma plataforma onde não precisamos nos preocupar com servidores físicos ou VMs.
🏗️ O que a AWS faz para nós (característica PaaS)
| Componente | Quem gerencia? |
|---|---|
| Workers Nodes (infraestrutura) | ✅ AWS |
| Control Plane do Kubernetes | ✅ AWS |
| Load Balancer público | ✅ AWS |
| Provisionamento de rede e VPC | ✅ AWS |
| Autenticação nativa com IAM | ✅ AWS |
| Execução dos containers | ✅ AWS |
Ou seja: não precisamos instalar, configurar ou manter o Kubernetes —
apenas utilizá-lo como plataforma para rodar a solução.
📌 Serviços do projeto que utilizam diretamente a plataforma
Todos os microserviços Java rodam no PaaS através do Kubernetes:
gateway-serviceproduct-serviceorder-serviceaccount-serviceauth-service
Além disso, o EKS gerencia também:
✅ Comunicação interna entre serviços (Service ClusterIP)
✅ Balanceamento de carga (LoadBalancer → ELB)
✅ Redis Cache e Postgres como workloads do cluster
✅ Conclusão
A utilização do AWS EKS como plataforma de execução dos microserviços torna o projeto um exemplo claro de aplicação de PaaS, pois o grupo:
✔ Não administra servidores
✔ Não gerencia Kubernetes manualmente
✔ Aproveita automação de escala, rede e segurança da plataforma
✔ Concentra-se exclusivamente no desenvolvimento e deploy dos serviços
➡ Assim, o PaaS foi essencial para atingir alta disponibilidade, resiliência e redução de esforços operacionais.

