Duas formas de hospedar na AWS
Em um artigo da Lascasas Consulting, descrevemos uma arquitetura customizada de hospedagem web na AWS, com GitHub, AWS CodePipeline, CodeBuild, Amazon S3, CloudFront e Route 53 trabalhando juntos. Existe, porém, um caminho mais direto para chegar a um resultado parecido, que é o AWS Amplify Hosting, um serviço que empacota boa parte dessa esteira em um workflow gerenciado. Este artigo mostra como o Amplify funciona por dentro e em que cenário cada uma das duas abordagens faz mais sentido.
Por dentro do serviço
O AWS Amplify Hosting oferece um workflow de CI/CD baseado em Git, conectando diretamente a repositórios no GitHub, GitLab, Bitbucket ou AWS CodeCommit. A cada push, o Amplify builda o projeto automaticamente a partir de um arquivo de configuração chamado amplify.yml e publica o resultado em uma CDN global gerenciada pela própria AWS.
Diferente de uma arquitetura montada manualmente com S3 e CloudFront, o Amplify já suporta nativamente frameworks com renderização no servidor, como Next.js e Nuxt, além de aplicações single-page e geradores de site estático. Cada branch do repositório pode virar um ambiente próprio, e cada Pull Request gera automaticamente uma preview da aplicação, útil para revisar mudanças antes de publicar em produção.
Os deploys são atômicos, o que significa que o site só é atualizado depois que todo o novo conteúdo termina de subir, evitando o cenário em que um visitante vê uma mistura de arquivos antigos e novos durante o deploy. A invalidação de cache também acontece automaticamente a cada publicação, sem exigir um passo manual como na arquitetura customizada.
Quando o projeto precisa de backend, o Amplify Gen 2 permite declarar autenticação via Amazon Cognito, dados via AWS AppSync ou Amazon DynamoDB e funções via AWS Lambda, tudo no mesmo repositório de código, sem precisar provisionar cada serviço manualmente.
Arquitetura customizada vs Amplify
| Arquitetura Customizada | Amplify Hosting | |
|---|---|---|
| Setup inicial | Manual, exige configurar cada serviço | Automático, conecta o repositório e já builda |
| CI/CD | CodePipeline e CodeBuild configurados à mão | Nativo, incluso no serviço |
| Suporte a SSR | Exige arquitetura adicional própria | Nativo, Next.js, Nuxt e outros |
| Preview de Pull Requests | Não incluso, precisa ser construído | Nativo, por Pull Request |
| Invalidação de cache | Manual, um passo do pipeline | Automática a cada deploy |
| Backend integrado | Você escolhe e integra cada serviço | Amplify Gen 2, Cognito, AppSync, DynamoDB, Lambda |
| Controle de cache e CDN | Total, cada comportamento do CloudFront é seu | Limitado ao que o Amplify expõe |
| Portabilidade | Alta, infraestrutura em Terraform amplamente flexível | Menor, estrutura própria do Amplify |
Comparativo de custo entre as abordagens
A diferença de custo mais relevante entre as duas abordagens está na transferência de dados. O Amazon CloudFront cobra US$ 0,085 por GB entregue nos primeiros 10 TB mensais, com 1 TB sempre gratuito todo mês. Já o AWS Amplify Hosting cobra US$ 0,15 por GB, quase o dobro, com um free tier de apenas 15 GB por mês.
| Item | Arquitetura Customizada | Amplify Hosting |
|---|---|---|
| Build | CodeBuild, cobrado por minuto | US$ 0,01/min (instância padrão), 1.000 min grátis/mês |
| Armazenamento | S3, ~US$ 0,023/GB/mês | US$ 0,023/GB/mês, 5 GB grátis |
| Transferência de dados | CloudFront, US$ 0,085/GB, 1 TB grátis/mês | US$ 0,15/GB, 15 GB grátis/mês |
| Execução SSR | Não se aplica, ou custo próprio de Lambda@Edge | US$ 0,30/milhão de requisições + US$ 0,20/GB-hora |
Para ilustrar, um site que entrega 2 TB de tráfego por mês pagaria aproximadamente US$ 85 de transferência de dados na arquitetura customizada, já descontado o primeiro terabyte sempre gratuito do CloudFront, contra US$ 297,75 no Amplify Hosting, que desconta apenas 15 GB. Essa diferença cresce proporcionalmente conforme o tráfego aumenta, tornando a arquitetura customizada mais competitiva a partir de um determinado volume.
Orientação prática
Amplify Hosting é a escolha mais rápida para times pequenos, startups validando um produto ou projetos que usam frameworks com SSR como Next.js, especialmente quando o time quer preview automático de Pull Requests e um backend simples integrado sem provisionar cada peça manualmente.
Uma arquitetura customizada com S3, CloudFront e CodePipeline faz mais sentido para sites e plataformas com tráfego alto, onde a diferença de custo por GB entregue se torna relevante, ou quando o projeto precisa de controle fino sobre regras de cache, WAF ou integração com uma infraestrutura AWS já existente.
O que a prática mostra
A Neiman Marcus usou o Amplify para construir o Connect, uma plataforma completa de vendas omnichannel, e alcançou 50% mais velocidade no time-to-market e uma redução de 90% no custo de desenvolvimento comparado a um método tradicional, mostrando o ganho de velocidade que o Amplify entrega para quem está construindo algo novo rapidamente.
Já o artigo sobre hospedagem web customizada na AWS mostrou casos como a Mwave, com 60% de redução no custo de entrega de conteúdo ao migrar para o CloudFront, e um relato de site pessoal que reduziu o custo mensal de hospedagem de US$ 20 para US$ 7, evidenciando o ganho de controle e economia que uma arquitetura própria pode trazer conforme o projeto amadurece.
Resumo e recomendações
Não existe uma resposta única entre Amplify Hosting e uma arquitetura customizada com S3 e CloudFront, a escolha depende do estágio do projeto e do quanto controle e economia de escala importam para ele.
Começar pelo Amplify e migrar para uma arquitetura customizada conforme o tráfego cresce é um caminho válido, já que as duas abordagens se apoiam nos mesmos fundamentos da AWS. O que muda entre elas é a camada de abstração entre o time e a infraestrutura, não a base sobre a qual o projeto é construído.