Acabei de criar toda a infraestrutura e documentação necessária para configurar o CloudFront e fazer deploy em produção do Payment Widget.
-
setup-cloudfront.sh(executável)- Script de configuração automática do CloudFront
- Cria OAI, distribuição, configura S3, testes
- Gera relatório completo ao final
-
docs/CLOUDFRONT-SETUP.md- Guia completo de configuração CloudFront
- Setup automático e manual
- Troubleshooting e estimativas de custo
-
docs/RESUMO-CLOUDFRONT.md- Resumo executivo do que foi criado
- Fluxo de uso e checklist
- Explicação dos arquivos gerados
-
README.md- Adicionada seção "Deploy Rápido"
- Link para documentação CloudFront
-
docs/DEPLOY-GUIDE.md- Adicionada seção "Primeira Vez?"
- Pré-requisito: CloudFront configurado
-
docs/DOCS-INDEX.md- Adicionadas novas documentações
- Fluxo de trabalho atualizado
- Casos de uso expandidos
-
.gitignore- Arquivos temporários do setup ignorados
# Executar setup automático
./setup-cloudfront.sh production
# Aguardar conclusão (15-30 minutos)
# ✅ Cria OAI
# ✅ Cria distribuição CloudFront
# ✅ Configura bucket S3
# ✅ Gera relatório
# Verificar resultado
cat cloudfront-setup-report.txt# Fazer deploy
./deploy.sh production
# Arquivos enviados:
# ✅ widget-bootstrap.v1.min.js (~5KB)
# ✅ widget.v1.min.js (~427KB)
# ✅ widget.v1.min.css (~29KB)# Obter domain do CloudFront
cat .cloudfront-domain
# Testar URLs
curl -I https://$(cat .cloudfront-domain)/widget-bootstrap.v1.min.js
curl -I https://$(cat .cloudfront-domain)/widget.v1.min.js
curl -I https://$(cat .cloudfront-domain)/widget.v1.min.css
# Ou abrir página de teste
open examples/cloudfront-test.htmlApós executar ./setup-cloudfront.sh production, você terá:
.oai-id # ID do Origin Access Identity
.distribution-id # ID da distribuição CloudFront
.cloudfront-domain # Domain Name (ex: d123abc.cloudfront.net)
cloudfront-setup-report.txt # Relatório completo com próximos passos
Não commitar esses arquivos (já estão no .gitignore).
| Documento | Quando Usar |
|---|---|
| CLOUDFRONT-SETUP.md | Primeira vez configurando CloudFront |
| RESUMO-CLOUDFRONT.md | Ver o que foi criado pelo setup |
| DEPLOY-GUIDE.md | Deploy regular após CloudFront configurado |
| DOCS-INDEX.md | Navegar por toda documentação |
1. Primeira vez
└── CLOUDFRONT-SETUP.md → setup-cloudfront.sh → RESUMO-CLOUDFRONT.md
2. Deploy regular
└── DEPLOY-GUIDE.md → deploy.sh
3. Troubleshooting
└── CLOUDFRONT-SETUP.md (Troubleshooting) → DEPLOY-GUIDE.md (Troubleshooting)
# Production
./setup-cloudfront.sh production
# Staging (se necessário)
./setup-cloudfront.sh staging# Production
./deploy.sh production
# Staging
./deploy.sh staging# Ver domain CloudFront
cat .cloudfront-domain
# Ver distribution ID
cat .distribution-id
# Ver status da distribuição
aws cloudfront get-distribution --id $(cat .distribution-id) | jq -r '.Distribution.Status'# Invalidar todos os arquivos
aws cloudfront create-invalidation \
--distribution-id $(cat .distribution-id) \
--paths "/*"# Testar bootstrap
curl -I https://$(cat .cloudfront-domain)/widget-bootstrap.v1.min.js
# Testar bundle
curl -I https://$(cat .cloudfront-domain)/widget.v1.min.js
# Testar CSS
curl -I https://$(cat .cloudfront-domain)/widget.v1.min.cssO setup configura automaticamente:
| Arquivo | Cache | Motivo |
|---|---|---|
widget-bootstrap.v1.min.js |
5 minutos | Permite atualizações rápidas |
widget.v1.min.js |
1 ano | Arquivo versionado (imutável) |
widget.v1.min.css |
1 ano | Arquivo versionado (imutável) |
Para 100.000 pageviews/mês:
| Item | Custo |
|---|---|
| Data Transfer Out | ~$0.85 |
| HTTPS Requests | ~$1.00 |
| S3 Storage | ~$0.02 |
| S3 Requests | ~$0.04 |
| Total | ~$2-3/mês |
Com região Brasil (mais caro):
- Total: ~$3-5/mês
AWS Free Tier: Primeiros 1 TB/mês grátis no primeiro ano!
- AWS CLI instalado e configurado (
aws configure) -
jqinstalado (brew install jq) - Permissões AWS: S3 + CloudFront
- Li CLOUDFRONT-SETUP.md
-
./setup-cloudfront.sh production - Aguardar conclusão (15-30 min)
- Verificar mensagem de sucesso
- Ler
cloudfront-setup-report.txt - Anotar Domain Name (
.cloudfront-domain) - Executar
./deploy.sh production - Testar URLs com
curl -I - Abrir
examples/cloudfront-test.html - Verificar console sem erros
- Testar modal abre/fecha
- Testar estilos aplicados
- Configurar domínio customizado (DNS CNAME)
- Configurar SSL customizado (ACM)
- Configurar alarmes CloudWatch
- Documentar URLs para equipe
# Criar bucket primeiro
./deploy.sh production
# Depois configurar CloudFront
./setup-cloudfront.sh productionaws configure
# Informar Access Key, Secret Key, Region (us-east-1)brew install jqNormal no primeiro deploy! Aguardar até 30 minutos. Verificar status:
aws cloudfront get-distribution --id $(cat .distribution-id) | jq -r '.Distribution.Status'
# Deve retornar "Deployed"# Forçar invalidação
aws cloudfront create-invalidation \
--distribution-id $(cat .distribution-id) \
--paths "/*"
# Aguardar 1-2 minutos- Documentação completa: docs/CLOUDFRONT-SETUP.md
- Troubleshooting detalhado: Seção no final de cada guia
- Exemplos: examples/cloudfront-test.html
- Issues: https://github.com/Rellyso/payment-widget-poc/issues
Após o setup com sucesso:
- ✅ Testar em staging antes de produção
- ✅ Configurar DNS para domínio customizado (opcional)
- ✅ Configurar SSL customizado (opcional)
- ✅ Monitorar CloudWatch para métricas
- ✅ Documentar URLs para a equipe
Agora você tem:
- ✅ Script de configuração automática do CloudFront
- ✅ Documentação completa e atualizada
- ✅ Fluxo de deploy automatizado
- ✅ Testes e validação prontos
- ✅ Troubleshooting documentado
Execute ./setup-cloudfront.sh production e siga o guia!
💡 Dica: Comece sempre testando em staging (./deploy.sh staging) antes de produção.
🚀 Boa sorte com o deploy!