📄 AWS Infrastructure Standard — v1 (Historical Reference)¶
Estado: Deprecado | Reemplazado por v2-active.md
Este archivo existe como referencia histĂłrica. No aplicar a clientes nuevos.
Stack v1¶
client-infra/
├── terraform/
│ └── main.tf # EC2 t3.small, EBS gp2, puerto 22 abierto, sin IAM role
├── docker-compose.yml # n8n + postgres + fastapi + nginx — sin log driver, sin health checks
├── python/
│ └── app/
│ └── core/
│ └── config.py # Lee .env del disco
├── scripts/
│ └── backup.sh # VACÍO — placeholder sin implementación
└── docs/
└── runbook.md # Genérico
Componentes v1¶
EC2 t3.small — 2 vCPU burstable, 2 GB RAM. Sin swap. CrĂ©ditos CPU se agotan bajo carga sostenida de n8n (caĂda a 20% de capacidad).
EBS gp2 Ăşnico — Volumen raĂz compartido entre SO, Docker, y datos de Postgres. Sin separaciĂłn de IO.
Docker Compose (4 servicios) — n8n, postgres, fastapi, nginx. Sin log driver (logs locales). Sin health checks.
Nginx + Certbot — TLS manual. Auto-renew con historial de fallas silenciosas en algunas distros.
Terraform básico — Sin IAM role, sin Parameter Store, puerto 22 abierto.
backup.sh vacĂo — El archivo existe pero no ejecuta nada. Riesgo crĂtico: pĂ©rdida total de datos ante falla de disco.
Sin observabilidad — CloudWatch solo reporta CPU. Sin métricas de memoria, disco, swap. Sin alarmas.
Limitaciones documentadas¶
| LimitaciĂłn | Riesgo | Fix en v2 |
|---|---|---|
| t3.small créditos CPU se agotan | Servidor a 20% capacidad bajo carga | t4g.large performance sostenida |
| backup.sh vacĂo | PĂ©rdida total de datos | pg_dump real a S3 + AWS Backup |
| Puerto 22 abierto | Superficie de ataque SSH | SSM Session Manager |
| .env con credenciales en disco | ExposiciĂłn si se compromete la instancia | Parameter Store SecureString |
| Sin métricas de memoria/disco | OOM kills y disco lleno sin alerta | CloudWatch Agent |
| Logs Docker locales | Logs perdidos si muere el contenedor | awslogs driver |
| Sin alarmas | Incidentes detectados por el cliente | 5 alarmas CloudWatch |
| Sin Sentry | Stack traces no capturados | Sentry free tier |
Workflow v1 (7 pasos)¶
- Clonar template
- Actualizar variables en main.tf
terraform apply- SSH a la instancia (puerto 22)
- Copiar .env con credenciales
docker compose up -d- Verificar que los contenedores están corriendo