Escopo do projeto

Avaliação da aplicação (linguagem, framework, estado em memória, arquivos locais, tarefas agendadas, dependências de sistema operacional). Empacotamento em imagem de contêiner, com separação de configuração e segredos. Escolha entre Amazon ECS com AWS Fargate (padrão para PME, com a plataforma administrada pela AWS) e Amazon EKS (quando o time já opera Kubernetes ou o fornecedor entrega manifestos Kubernetes).

Serviço em duas zonas de disponibilidade atrás de um Application Load Balancer, com verificação de saúde e escala automática por métrica. Pipeline de build e implantação com troca gradual de versão e reversão. Banco em Amazon RDS Multi-AZ (migrado pelo exemplo Banco de dados com AWS DMS quando ainda estiver em servidor próprio). Arquivos locais movidos para Amazon S3 ou Amazon EFS. Observabilidade, alarmes e orçamento com alerta. Operação assistida e transferência de conhecimento.

Desafio e problemas de hoje

  • Aplicação de fornecedor ou própria que precisa continuar como está por enquanto, mas precisa sair do servidor sempre ligado.
  • "Funciona na minha máquina": ambientes diferentes entre desenvolvimento, homologação e produção.
  • Atualização é um evento: janela, plantão, medo de rollback.
  • Um servidor só: queda ou patch derruba a aplicação inteira.
  • Segredos (senhas de banco, chaves de API) em arquivo de configuração no servidor.
  • Equipe pequena, com a operação de cluster fora do alcance.

O ambiente de partida (perfil típico deste exemplo)

Perfil típico do ambiente de partida deste exemplo
ItemO que costuma existir
AplicaçãoMonólito ou poucos serviços (Java, .NET, Node.js, PHP ou Python), de 1 a 4 servidores, às vezes já em Docker num servidor só
BancoRelacional em servidor próprio ou Amazon RDS
EntregaImplantação manual por cópia de arquivos ou script; pipeline inexistente ou parcial
ConfiguraçãoArquivos de configuração e segredos no servidor; diferenças entre ambientes
DependênciasArquivos locais (uploads, relatórios), tarefas agendadas no servidor, sessão em memória
RestriçõesJanela de parada inexistente em horário comercial; dados pessoais sob LGPD; fornecedor homologa versões; time com operação compartilhada

Perfil típico, com faixas, construído a partir de projetos desse tipo. O inventário real é o primeiro entregável do diagnóstico.

Requisitos

  1. R1Rodar a aplicação com servidor e cluster administrados pela AWS.
  2. R2Duas zonas de disponibilidade e escala automática por demanda.
  3. R3Atualizações frequentes com troca gradual de versão e reversão rápida.
  4. R4Ambientes idênticos (desenvolvimento, homologação, produção) a partir da mesma imagem.
  5. R5Segredos fora da imagem e fora do servidor, com rotação.
  6. R6Arquivos e sessão fora do contêiner, para permitir escala e substituição.
  7. R7Observabilidade por serviço e orçamento com alerta.

O que desenhamos para cada requisito

Decisão de arquitetura e serviço AWS para cada requisito
RequisitoDecisão de arquiteturaServiço AWS
R1Tarefas em contêiner com a plataforma administrada pela AWS; cluster gerenciadoAmazon ECS, AWS Fargate (Amazon EKS quando o time já opera Kubernetes)
R2Serviço com tarefas distribuídas em duas zonas, atrás de balanceador com verificação de saúde; escala por CPU, memória ou requisiçõesElastic Load Balancing (Application Load Balancer), Amazon ECS
R3Pipeline que constrói a imagem, publica no registro e implanta com troca gradual; reversão para a imagem anteriorAmazon ECR, AWS CodePipeline e AWS CodeBuild (ou pipeline do repositório da empresa)
R4Uma imagem por versão, promovida entre ambientes; configuração por variável de ambienteAmazon ECR, AWS Systems Manager Parameter Store
R5Segredos injetados em tempo de execução, com rotação e acesso por funçãoAWS Secrets Manager, AWS Identity and Access Management (IAM)
R6Uploads e relatórios em armazenamento de objetos ou sistema de arquivos compartilhado; sessão em cache gerenciado quando necessárioAmazon S3, Amazon EFS, Amazon ElastiCache (opcional)
R7Logs por tarefa, métricas por serviço, alarmes e painel; orçamento mensal com alertaAmazon CloudWatch, AWS Budgets

Arquitetura

Diagrama de arquitetura de aplicação em contêineres: usuários acessam um Application Load Balancer que distribui para tarefas do Amazon ECS executadas em AWS Fargate em duas zonas de disponibilidade, com imagens no Amazon ECR, segredos no AWS Secrets Manager, banco Amazon RDS primário e em espera, arquivos no Amazon S3 e observabilidade no Amazon CloudWatch.
Usuários chegam pelo Application Load Balancer, que distribui para tarefas do Amazon ECS em AWS Fargate em duas zonas de disponibilidade; as imagens vêm do Amazon ECR, os segredos do AWS Secrets Manager; o banco é um Amazon RDS primário com réplica em espera; arquivos ficam no Amazon S3; o Amazon CloudWatch recebe logs e métricas. Abrir o diagrama em tela cheia
Componentes e fluxos deste diagrama
  • Usuários: acesso por HTTPS ao Elastic Load Balancing (Application Load Balancer).
  • Elastic Load Balancing: distribui as requisições para as tarefas em cada zona de disponibilidade.
  • Amazon ECS: orquestra as tarefas do AWS Fargate nas zonas A e B; recebe as imagens do Amazon ECR.
  • AWS Fargate (tarefas), zonas A e B: rodam a aplicação; recebem segredos do AWS Secrets Manager em tempo de execução.
  • Amazon RDS primário (zona A) e Amazon RDS em espera (zona B): dados das tarefas, com réplica síncrona entre os dois.
  • Amazon S3: arquivos gravados pelas tarefas.
  • Amazon CloudWatch: logs e métricas do Amazon ECS.

Ganhos: o que medimos no projeto

Indicadores medidos no projeto, como são medidos e o que muda
IndicadorComo medimosO que muda
Servidores e clusters a administrarContagem de hosts com sistema operacional sob responsabilidade do timeDe servidores sempre ligados para zero hosts administrados
Frequência e duração da atualizaçãoImplantações por semana, minutos de implantação, tempo de reversãoDe evento com plantão para troca gradual de versão com reversão rápida
Disponibilidade na troca de versão e no patchErros durante implantações e durante manutenção da plataformaDe parada a cada atualização para implantação com a aplicação no ar
Paridade entre ambientesIncidentes causados por diferença de ambienteDe "funciona na minha máquina" para a mesma imagem nos três ambientes
Segredos expostosSegredos em arquivo ou repositório encontrados em varreduraDe senha em arquivo para segredo gerenciado com rotação
Custo por demandaTarefas em execução por hora do dia e parcela da fatura que variaDe servidor fixo para capacidade que acompanha o uso

Indicadores de um projeto típico, medidos no próprio projeto: resultado típico, não garantia.

Escopo e entregáveis por fase

Fases do projeto, o que acontece, entregáveis e duração típica
FaseO que aconteceEntregáveisDuração
1. AvaliaçãoDependências, estado, arquivos, tarefas agendadas, escolha ECS ou EKS, plano de empacotamentoRelatório de avaliação, arquitetura alvo, plano de transição1 semana
2. Empacotamento e fundaçãoImagem de contêiner, registro, segredos, parâmetros, cluster, balanceador, rede em duas zonas, observabilidadeImagem publicada, ambiente de desenvolvimento em contêiner, painéis e alarmesde 2 a 3 semanas
3. Pipeline e homologaçãoPipeline de build e implantação, promoção entre ambientes, testes com o fornecedor ou o timePipeline funcionando, homologação aprovadade 1 a 3 semanas
4. Produção e operação assistidaVirada do tráfego para o novo ambiente, escala automática, ajuste de tamanho, documentação, transferência para o time, desligamento do servidor antigoAplicação em produção em duas zonas, runbook, documentação, relatório de ajustede 2 a 4 semanas

Durações típicas, em faixa. O plano do projeto fixa as datas reais.

Algo a mais: Amazon ECS ou Amazon EKS, como escolhemos

Comparação entre Amazon ECS com AWS Fargate e Amazon EKS por critério
CritérioAmazon ECS com AWS FargateAmazon EKS
Quem operaA AWS administra a plataforma; o cluster fica por conta do serviçoKubernetes gerenciado; o time ou a RFX administra o que roda dentro
Quando faz sentidoA maioria das PMEs, aplicação própria ou de fornecedor em DockerTime já opera Kubernetes, fornecedor entrega manifestos Kubernetes, múltiplos times
O que fica igualPipeline, registro de imagens, segredos, observabilidade, orçamentoPipeline, registro de imagens, segredos, observabilidade, orçamento

Na dúvida, começamos pelo Amazon ECS com AWS Fargate; a imagem é a mesma e a mudança para EKS, se um dia fizer sentido, preserva a aplicação como está.

Perguntas frequentes deste exemplo

Em geral, a aplicação segue como está. O que muda é como ela é empacotada, configurada e entregue. Pontos de atenção são estado em memória, arquivos locais e tarefas agendadas, tratados na avaliação.

Com Amazon ECS e AWS Fargate, a plataforma fica com a AWS. O Amazon EKS entra quando o time já opera Kubernetes ou o fornecedor exige.

Precisa homologar a versão em contêiner. Envolvemos o fornecedor desde a avaliação; muitos já entregam imagem Docker.

Em Amazon RDS Multi-AZ. Se ainda estiver em servidor próprio, a migração segue o exemplo Banco de dados com AWS DMS, feita antes ou junto.

Viram tarefas agendadas do próprio Amazon ECS ou funções AWS Lambda disparadas pelo Amazon EventBridge, fora do contêiner da aplicação.

Serviços AWS deste exemplo

  • Amazon ECS
  • AWS Fargate
  • Amazon ECR
  • Elastic Load Balancing (Application Load Balancer)
  • AWS CodePipeline
  • AWS CodeBuild
  • AWS Systems Manager Parameter Store
  • AWS Secrets Manager
  • AWS Identity and Access Management (IAM)
  • Amazon RDS
  • Amazon S3
  • Amazon EFS
  • Amazon CloudWatch
  • AWS Budgets
  • Amazon VPC
  • Amazon EKS (variante)
  • Amazon ElastiCache (opcional)

Incentivos AWS

A RFX busca para o projeto os programas de incentivo e créditos da AWS aplicáveis, sempre sujeitos a aprovação da AWS.

Agende uma conversa com um especialista

Conte em uma linha o que você tem hoje. Um engenheiro da RFX responde em até 4 horas úteis com o próximo passo para o seu caso. O primeiro contato é uma conversa técnica; a proposta vem depois, se fizer sentido para você.

Ver cases reais da RFX (anonimizados por confidencialidade)

A RFX busca para o projeto os programas de incentivo e créditos da AWS aplicáveis, sempre sujeitos a aprovação da AWS.

Onde roda hoje? (opcional)
Prazo? (opcional)

Quem responde é um engenheiro da RFX, AWS Partner Advanced Tier, em até 4 horas úteis. Seus dados são usados para responder a este contato, conforme a Política de Privacidade.

Casos relacionados

Modernização

Aplicação web serverless

Cada serviço escala sozinho e cobra pelo uso; o time cuida do código e dos dados.

Caminho: Redesenhar (Refactor) · Duração típica: de 8 a 16 semanas

Ver o exemplo
Migração

Banco de dados com AWS DMS

O banco migra enquanto continua em uso: carga inicial, replicação de mudanças e virada curta para um banco gerenciado em duas zonas.

Caminho: Ajustar (Replatform) · Duração típica: de 4 a 8 semanas por banco

Ver o exemplo
Fundação

Ambiente base (landing zone)

Governança central, duas zonas de disponibilidade e backup desde a primeira conta: o ponto de partida antes de migrar o primeiro sistema.

Caminho: Fundação · Duração típica: de 2 a 4 semanas

Ver o exemplo
Falar com um engenheiro