Configuración Automática de Proyectos y APIs en GCP con Terraform
Autor: Eduardo Martínez Agrelo
Antes de desplegar servidores o bases de datos, debemos construir los cimientos. En el examen Associate Cloud Engineer (ACE), esto comienza entendiendo dónde viven los recursos y cómo habilitar los servicios necesarios. En este primer ejercicio, dejamos de lado la consola manual para abrazar la automatización con Terraform, estableciendo una base sólida y reproducible.
La Jerarquía de Recursos: El Árbol Invertido
En Google Cloud, nada flota en el vacío. Todo recurso pertenece a una estructura jerárquica estricta que debes conocer para el examen:
- Organización: La raíz del árbol (tu empresa). Aquí se definen las políticas de seguridad globales.
- Carpetas (Folders): Permiten agrupar proyectos por departamentos (RRHH, Desarrollo) o entornos (Producción, Testing), facilitando la gestión de permisos delegados.
- Proyectos: La unidad base fundamental. Las máquinas virtuales, los buckets y las redes viven aquí. Es también donde se habilita la facturación y se activan las APIs.
Entender que los permisos se heredan (si tienes acceso a la Carpeta, tienes acceso a sus Proyectos) es vital para una correcta gestión de identidades y accesos (IAM).
El Concepto de las APIs: La Casa Cerrada
Un error común de los principiantes (y una pregunta trampa habitual en el examen) es intentar crear una máquina virtual en un proyecto nuevo y recibir un error inmediato. ¿Por qué ocurre esto? Porque Google Cloud sigue un modelo de seguridad por defecto: todas las puertas están cerradas.
Para usar un servicio (Compute Engine, Kubernetes Engine, Cloud Storage), primero debes habilitar su API correspondiente (por ejemplo, compute.googleapis.com). Esto reduce la superficie de ataque, mejora el rendimiento de la consola y evita costes accidentales en servicios no utilizados.
Automatización con Terraform: google_project_service
Hacer clic en "Habilitar API" en la consola web es aceptable para aprender, pero en el mundo real usamos Infraestructura como Código (IaC). En este ejercicio, utilizamos el recurso de Terraform google_project_service.
Este enfoque nos permite:
- Documentar qué servicios usamos: El código fuente se convierte en la documentación viva de la infraestructura.
- Evitar errores humanos: No olvidamos activar una API crítica antes de un despliegue complejo.
- Gestión de dependencias: Terraform entiende que debe activar la API de Compute Engine antes de intentar crear la instancia de VM, gestionando el orden de ejecución por nosotros.
Conclusión: Cimientos Listos
Al finalizar este ejercicio, tendrás un proyecto configurado programáticamente con las "luces encendidas" (APIs activas). Has evitado la trampa clásica del examen sobre las APIs deshabilitadas y estás listo para empezar a desplegar infraestructura real sobre estos cimientos seguros en los siguientes módulos.