Alta Disponibilidad y Escalado: Managed Instance Groups (MIGs) con Terraform
Autor: Eduardo Martínez Agrelo
En el ejercicio anterior creamos una Máquina Virtual (VM). Eso está bien para desarrollo, pero en producción, una sola VM es un punto único de fallo (SPOF). Si esa máquina cae, tu negocio se detiene. En el examen Associate Cloud Engineer, la respuesta a "¿Cómo garantizo que mi aplicación siempre esté disponible?" casi siempre implica Managed Instance Groups (MIGs). En este ejercicio, aprendemos a tratar a los servidores como ganado, no como mascotas.
La Filosofía Cloud: Mascotas vs. Ganado
Este es el cambio de mentalidad más importante al migrar a la nube:
- Mascotas (On-Premise): Servidores con nombres propios (ej. "Zeus", "Apollo"). Si enferman, pasas la noche arreglándolos. Son únicos y difíciles de recrear.
- Ganado (Cloud Native): Servidores numerados (ej. "node-001", "node-002"). Si uno falla, no lo arreglas; lo eliminas y el sistema crea uno nuevo idéntico automáticamente.
Los Managed Instance Groups (MIGs) son la herramienta de GCP para gestionar este "ganado".
Componente 1: La Plantilla de Instancia (The Cookie Cutter)
Para que GCP pueda crear máquinas automáticamente, necesita instrucciones. Esto es la Instance Template.
Define qué se va a crear: Tipo de máquina (e2-micro), imagen de disco (Debian), scripts de arranque, etiquetas de red, etc. Es inmutable; si quieres cambiar la configuración, creas una nueva plantilla, no editas la existente.
Componente 2: El Gestor del Grupo (MIG)
El MIG utiliza la plantilla para mantener un número objetivo de instancias. Tiene dos superpoderes clave para el examen:
1. Auto-healing (Auto-curación)
El MIG no solo comprueba si la máquina está encendida (Running), sino si la aplicación responde. Configuras un Health Check (ej. una petición HTTP al puerto 80). Si la aplicación se bloquea (código 500) aunque el servidor siga encendido, el MIG declara la instancia como "unhealthy", la elimina y crea una nueva fresca. Esto es resiliencia automática.
2. Auto-scaling (Auto-escalado)
Puedes configurar reglas basadas en métricas. Por ejemplo: "Si la CPU media del grupo supera el 70%, añade 2 máquinas más". "Si baja del 20%, elimínalas". Esto permite pagar solo por lo que necesitas en cada momento, absorbiendo picos de tráfico sin intervención humana.
MIG Zonal vs. Regional
Una distinción crítica:
- Zonal MIG: Todas las instancias viven en una zona (ej.
us-central1-a). Si la zona cae, todo el servicio cae. - Regional MIG: Las instancias se distribuyen automáticamente en 3 zonas (a, b, c). Si una zona desaparece, el MIG redistribuye la carga en las otras dos. Esto ofrece la máxima disponibilidad (SLA).
Implementación con Terraform
En este ejercicio, usamos dos recursos de Terraform:
google_compute_instance_template: El molde.google_compute_region_instance_group_manager: El cerebro que gestiona el ciclo de vida.
Conclusión: Infraestructura Resiliente
Al finalizar este ejercicio, tendrás una flota de servidores que se gestionan solos. Si matas una máquina manualmente en la consola, verás cómo Terraform y GCP la resucitan en segundos. Has construido un sistema a prueba de fallos.