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 → 1Paso 1: Variables
source ~/route53-arc-tf/global.envPaso 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_statelocal - ✅ 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