Lab 7: Destroy

Lab 7: Destroy – Eliminar todos los recursos

Con Terraform la limpieza es directa: terraform destroy en cada módulo en orden inverso.

Aviso

Ejecutá este lab al finalizar. Los recursos generan costos mientras existen.


Orden de destroy

Los módulos tienen dependencias via terraform_remote_state local. El orden de eliminación es inverso al de creación:

4 → 3 → 2 → 1

Paso 1: Variables

source ~/route53-arc-tf/global.env

Paso 2: Destroy Lab 4 – SNS + Lambda

cd ~/route53-arc-tf/04_automation

terraform destroy \
  -var="notification_email=dummy@example.com" \
  -auto-approve

echo "✅ Lab 4 destruido"

Paso 3: Destroy Lab 3 – ARC + Route 53

cd ~/route53-arc-tf/03_arc

terraform destroy -auto-approve

echo "✅ Lab 3 destruido"
Información

El destroy del ARC Cluster puede tardar 3-5 minutos — AWS lo desaprovisiona de múltiples regiones.


Paso 4: Destroy Lab 2 – S3 + CloudFront

cd ~/route53-arc-tf/02_secondary

terraform destroy -auto-approve

echo "✅ Lab 2 destruido"

Paso 5: Destroy Lab 1 – EC2 + ALB

cd ~/route53-arc-tf/01_primary

terraform destroy \
  -var="vpc_mode=${VPC_MODE}" \
  -var="instance_type=t4g.micro" \
  -auto-approve

echo "✅ Lab 1 destruido"

✅ Verificación de Limpieza

echo "=== Verificación Final ==="

# EC2
EC2_COUNT=$(aws ec2 describe-instances \
  --filters "Name=tag:Workshop,Values=route53-arc" \
            "Name=instance-state-name,Values=running,stopped,stopping" \
  --region $AWS_REGION \
  --query 'length(Reservations[])' --output text 2>/dev/null)
[ "${EC2_COUNT:-0}" = "0" ] \
  && echo "✅ Sin instancias EC2" \
  || echo "⚠️  Quedan $EC2_COUNT instancias"

# ALB
ALB_COUNT=$(aws elbv2 describe-load-balancers \
  --region $AWS_REGION \
  --query "length(LoadBalancers[?contains(LoadBalancerName,'route53-arc')])" \
  --output text 2>/dev/null)
[ "${ALB_COUNT:-0}" = "0" ] \
  && echo "✅ Sin ALBs" || echo "⚠️  Quedan $ALB_COUNT ALBs"

# Lambda
aws lambda get-function \
  --function-name route53-arc-failover-handler \
  --region $AWS_REGION > /dev/null 2>&1 \
  && echo "⚠️  Lambda aún existe" \
  || echo "✅ Lambda eliminada"

echo ""
echo "🎉 ¡Limpieza completa! Gracias por usar AWS Workshop."

🎓 Workshop completado

Aprendiste a implementar AWS Route 53 ARC con Terraform:

  • ✅ Estado local por módulo (workshop volátil efímero)
  • ✅ Módulos independientes con terraform_remote_state local
  • ✅ AMI dinámica por arquitectura (ARM / x86)
  • ✅ VPC default o nueva según necesidad
  • ✅ ARC Cluster, Routing Controls y Safety Rules
  • ✅ Dominio real (opcional) con Public Hosted Zone
  • ✅ Failover automático vía Lambda + CloudWatch + SNS
  • ✅ Failback manual y deliberado

AWS Route 53 ARC Workshop