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 reutilizable

Cada 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.