AWS Route 53 ARC – Terraform
AWS Route 53 ARC con Terraform
Detección de Caídas y Failover Automático
¿Qué construimos?
En este workshop aprenderás a construir una solución de alta disponibilidad para un sitio web estático usando servicios nativos de AWS. El objetivo no es recuperación ante desastres: es que el sistema detecte solo cuando el sitio principal cae, notifique a los equipos correspondientes vía SNS → Email / SMS, redirija el tráfico a una página de mantenimiento, y tenga un mecanismo para volver al sitio primario cuando esté recuperado basado 100% en Terraform. Cada lab despliega un módulo independiente con estado propio (terraform apply / terraform destroy por separado).
┌───────────────────────────────────┐
│ Route 53 + ARC │
│ DNS Failover + Routing Controls │
└──────────┬─────────┬──────────────┘
│ │
(Primario │ │ (Fallback)
▼ ▼
┌──────────────┐ ┌─────────────────┐
│ EC2 + ALB │ │ S3 + CloudFront │
│ t4g.micro │ │ "Mantenimiento" │
│ nginx │ │ │
└──────┬───────┘ └─────────────────┘
│
┌───────▼────────────────────────────┐
│ Route 53 Health Check │
│ → CloudWatch Alarm │
│ → SNS (Email + SMS) │
│ → Lambda Failover automático │
└────────────────────────────────────┘Estructura de módulos Terraform
terraform/
├── 01_primary/ EC2 + ALB + VPC (nueva u default)
├── 02_secondary/ S3 + CloudFront
├── 03_arc/ ARC Cluster + Routing Controls + DNS
├── 04_automation/ SNS + Lambda failover
└── modules/
├── ec2_nginx/ EC2 con nginx reutilizable
└── arc_cluster/ ARC Cluster reutilizableCada directorio es un root module independiente. Los outputs del módulo anterior se leen como data "terraform_remote_state".
Estructura del Workshop
| Lab | Título |
|---|---|
| Lab 0 | Prerrequisitos: Instalación de Terraform y AWS CLI |
| Lab 1 | Sitio primario: EC2 (t4g.micro) + ALB + nginx |
| Lab 2 | Sitio secundario: S3 + CloudFront |
| Lab 3 | Route 53 Health Checks + ARC Routing Controls |
| Lab 4 | SNS + Lambda failover automation |
| Lab 5 | Simulación de incidente |
| Lab 6 | Failback manual |
| Lab 7 | Destroy de todos los módulos |
Aviso
¡Cuidado con los archivos terraform.tfstate!
Este es un workshop volátil que se empieza y se termina en el día. Los estados de Terraform se guardan localmente en el archivo terraform.tfstate de cada directorio. Si trabajás en CloudShell, tené presente que los archivos se pueden perder si la sesión se resetea. Sin estos archivos, Terraform perderá el rastreo de los recursos en AWS y no podrás ejecutar terraform destroy automáticamente.
Aviso
Ejecutá el Lab 7 (Destroy) al finalizar para evitar costos innecesarios.