Amplify
Hospedagem e CI/CD para aplicações frontend
O AWS Amplify Hosting (Amplify Console) hospeda e faz deploy de aplicações web frontend (React, Next.js estático, Vue, etc.) com integração a repositório Git, preview por branch e CDN CloudFront gerenciada.
No ecossistema do CRM, o Amplify é uma alternativa ou complemento ao deploy de painel/admin em S3+CloudFront: reduz operação manual de upload de build e centraliza pipeline do frontend.
O que o Amplify oferece
| Recurso | Descrição |
|---|---|
| Hosting | Serve arquivos estáticos e SSR (conforme framework) |
| CI/CD | Build na AWS a cada push em branch configurada |
| Preview | URL temporária por PR/branch |
| Domínio customizado | SSL via ACM + integração com Route 53 |
| Rewrites / redirects | SPA fallback, proxies para API |
| Variáveis de ambiente | REACT_APP_*, NEXT_PUBLIC_* no build |
Amplify vs S3 + CloudFront
| Critério | Amplify Hosting | S3 + CloudFront manual |
|---|---|---|
| Setup | Conectar repo, poucos cliques | Bucket, OAC, distribution, invalidation |
| Build | Integrado | Pipeline externo (GitHub Actions, etc.) |
| Custo | Build minutes + hosting | S3 + CF + pipeline |
| Controle fino | Menos knobs | Total na infra |
| API backend | Ainda no ECS + ALB | Mesmo |
A API do CRM continua normalmente no ECS; o frontend só consome a URL da API via variável de ambiente no build.
Fluxo de deploy típico
- Desenvolvedor faz push na branch
mainoudevelop. - Amplify executa
npm ci && npm run build(comando configurável). - Artefatos publicados na CDN.
- Browser carrega JS; chamadas
fetchvão parahttps://api...(ALB).
Rewrites importantes para SPA
| Origem | Destino | Motivo |
|---|---|---|
| Rotas sem extensão de arquivo (regex no console Amplify) | /index.html | React Router / Vue Router no client |
/api/* | https://api.exemplo.com/* | Proxy opcional (evita CORS em dev) |
Sem rewrite, refresh em /clientes/123 retorna 404 do CDN.
Variáveis de ambiente e segurança
| Tipo | Pode ir no build Amplify? |
|---|---|
| URL pública da API | Sim |
| Chaves públicas (analytics) | Sim |
| Secrets de servidor | Não — ficam no ECS/Secrets Manager |
Tudo prefixado com NEXT_PUBLIC_ ou equivalente fica visível no bundle JS.
Ambientes
| Branch | Uso comum |
|---|---|
main | Produção — domínio app.exemplo.com |
develop | Homologação — subdomínio ou preview |
| feature/* | Preview URL automática |
Monitoramento
- Métricas de build (sucesso/falha, duração).
- Access logs da CDN (opcional).
- Erros de build visíveis no console Amplify (dependências, env faltando).
Relação com outros serviços
| Serviço | Relação |
|---|---|
| Route 53 | CNAME/alias para app Amplify |
| CF | CDN usada internamente pelo Amplify |
| ALB | Backend chamado pelo frontend |
| S3 | Alternativa manual ao Amplify para o mesmo tipo de arquivo |
Se o painel já está em S3+CloudFront com pipeline maduro, migrar para Amplify é opcional — avalie custo de build na AWS versus pipeline existente.