AWS Route 53 ARC – Terraform
AWS Route 53 ARC con Terraform
Detección de Caídas, Failover Automático y Failback 1-Click
¿Qué construimos?
En este workshop aprenderás a construir una solución de alta disponibilidad para un sitio web usando servicios nativos de AWS. El sistema detecta cuando el sitio principal cae, notifica a los equipos correspondientes vía SNS → Email / SMS, redirige el tráfico a un sitio de contingencia (AWS Amplify) de forma automática y ofrece mecanismos de Failback en 1-Click (Zero-Command) basados 100% en Terraform. Cada lab despliega un módulo independiente con estado propio (terraform apply / terraform destroy por separado).
┌────────────────────────────────────────────────────────┐
│ Route 53 + ARC Cluster │
│ DNS Failover + Routing Controls │
└───────────────┬────────────────────────┬───────────────┘
│ │
(Primario │ │ (Contingencia)
▼ ▼
┌────────────────────────┐ ┌────────────────────────┐
│ EC2 + ALB (ACM SSL) │ │ AWS Amplify │
│ t4g.micro + nginx │ │ "Página Mantenimiento" │
└───────────────┬────────┘ └────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ Route 53 Health Check → CloudWatch Alarm → SNS │
│ → Lambda Failover Automático │
│ → Detección de Recuperación (OK) │
│ → Failback 1-Click (Email Link / SSM Automation) │
└────────────────────────────────────────────────────────┘Estructura de módulos Terraform
terraform/
├── 01_primary/ EC2 + ALB (HTTP 80 -> HTTPS 443) + ACM SSL Certificate
├── 02_secondary/ AWS Amplify (o S3 + CloudFront) + Domain Association
├── 03_arc/ ARC Cluster + Routing Controls + CNAME Failover DNS
├── 04_automation/ SNS + Lambda Failover + Lambda 1-Click Failback (Function URL)
└── 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, AWS CLI y Política IAM Granular (Menor Privilegio) |
| Lab 1 | Sitio primario: EC2 (t4g.micro) + ALB + Certificado ACM SSL + HTTPS 443 |
| Lab 2 | Sitio secundario: AWS Amplify + Asociación de Dominio Personalizado |
| Lab 3 | Route 53 Health Checks + ARC Routing Controls + CNAME Failover DNS |
| Lab 4 | SNS + Lambda Failover + 1-Click Failback URL |
| Lab 5 | Simulación de incidente (3 métodos: Apagado EC2/SSM, Alarm state, Lambda direct) |
| Lab 6 | Failback manual (3 opciones 1-Click: Email Link, SSM Automation, CLI) |
| Lab 7 | Limpieza de Recursos (terraform destroy) |
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.