Este tutorial está diseñado para guiar a quienes desean aprender más acerca de Google Cloud Platform (GCP). Es ideal para un nivel medio.
Google Cloud Platform (GCP) ofrece una amplia gama de servicios en la nube para construir, desplegar y escalar soluciones tecnológicas aprovechando la infraestructura global de Google. Esta guía de nivel intermedio explora los servicios fundamentales como Compute Engine (máquinas virtuales), Cloud Storage (almacenamiento de objetos), BigQuery (análisis de datos), Cloud SQL y Firestore (bases de datos gestionadas), y las opciones serverless (Cloud Functions, Cloud Run, App Engine). Profundiza en conceptos clave como la Jerarquía de Recursos (proyectos, carpetas, organización), redes virtuales privadas (VPC, firewalls, subredes), Gestión de Identidad y Acceso (IAM) para controlar permisos, y herramientas esenciales como la CLI de `gcloud` y `gsutil`. Permite gestionar recursos en la nube de forma más estructurada, segura y eficiente.
El 'Hola, mundo' más rápido en GCP: desplegar una aplicación web básica en un contenedor usando Cloud Run.
gcloud run deploy hello-gcp --source=. --region=us-central1 --allow-unauthenticated
Resultado:
Service [hello-gcp] deployed to https://hello-gcp-xyz.a.run.app
Familiarizarse con estos comandos es esencial para interactuar eficientemente con Google Cloud Platform (GCP):
gcloud init
gcloud config list
gcloud projects list
gcloud config set project PROJECT_ID
gcloud compute instances list --zones=us-central1-a,europe-west1-b
gcloud compute instances create my-vm --zone=us-central1-a --machine-type=e2-medium --image-project=debian-cloud --image-family=debian-11
gcloud compute ssh my-vm --zone=us-central1-a
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-a
gsutil ls
gsutil mb -l us-central1 -c STANDARD gs://mi-bucket-globalmente-unico/
gsutil cp /ruta/local/archivo.txt gs://mi-bucket/carpeta_remota/archivo.txt
gsutil cp gs://mi-bucket/carpeta_remota/archivo.txt /ruta/local/donde_guardar/
gcloud compute networks create my-custom-network --subnet-mode=custom
gcloud compute networks subnets create my-subnet-us --network=my-custom-network --region=us-central1 --range=10.0.1.0/24
gcloud compute firewall-rules create allow-http --direction=INGRESS --priority=1000 --network=my-custom-network --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0
gcloud projects get-iam-policy PROJECT_ID
gsutil iam ch user:user@example.com:objectViewer gs://mi-bucket/
gcloud sql instances create my-pg-instance --database-version=POSTGRES_14 --tier=db-f1-micro --region=europe-west1
gcloud functions deploy myHttpFunction --runtime python311 --trigger-http --allow-unauthenticated --source=./path/to/function/code
gcloud run deploy my-container-app --region=us-central1 --source=. --allow-unauthenticated
gcloud logging read "resource.type=gce_instance" --limit=20 --format=json
gcloud alpha billing budgets create --billing-account=BILLING_ACCOUNT_ID --display-name="Monthly Budget" --amount=100 --calendar-period=MONTH --monitoring-period=MONTH --threshold-rule='{percent_threshold: 0.9, spend_basis: CURRENT_SPEND}'
Comprender estos conceptos fundamentales te ayudará a dominar Google Cloud Platform (GCP) de forma más organizada y eficiente:
Jerarquía de Recursos (Organización, Carpetas, Proyectos):
Comprender cómo los recursos de GCP se organizan lógicamente en una estructura jerárquica. Una Organización es el nodo raíz, puede contener Carpetas para agrupar proyectos, y los Proyectos contienen todos los recursos (VMs, buckets, bases de datos). Esta jerarquía afecta la gestión de IAM, políticas y facturación.
Servicios de Cómputo Clave (Compute Engine, Cloud Run, Cloud Functions, App Engine):
Entender las diferencias fundamentales, casos de uso y modelos de precios de las principales opciones para ejecutar código: Compute Engine (IaaS, máquinas virtuales totalmente controladas), Cloud Run (Contenedores serverless, pago por uso), Cloud Functions (FaaS, funciones que responden a eventos), y App Engine (PaaS, despliegue gestionado, con entornos Standard y Flexible).
Almacenamiento en la Nube (Cloud Storage):
Un servicio de almacenamiento de objetos masivamente escalable y duradero. Comprender los conceptos de Buckets (contenedores globales para objetos), Objetos (los archivos), Clases de Almacenamiento (Standard, Nearline, Coldline, Archive) y cómo elegir la adecuada según la frecuencia de acceso y el costo, y la gestión del ciclo de vida de objetos.
Redes Virtuales Privadas (VPC):
La red global y definida por software que interconecta los recursos de GCP. Comprender cómo crear Redes VPC, definir Subredes (que son regionales) dentro de ellas, configurar Reglas de Firewall para controlar el tráfico (entrante/saliente, por protocolo/puerto, por rangos IP/etiquetas) y el enrutamiento básico.
Gestión de Identidad y Acceso (IAM):
El sistema para controlar quién (Principals - usuarios de Google, Service Accounts, grupos, dominios) tiene qué tipo de acceso (Roles - conjuntos de Permisos) sobre qué recursos de GCP (proyectos, buckets, VMs, etc.). Comprender los Roles primitivos (Owner, Editor, Viewer), predefinidos (más granulares) y personalizados.
Bases de Datos Gestionadas (Cloud SQL, Firestore, BigQuery):
Opciones de base de datos como servicio. Cloud SQL ofrece instancias gestionadas de bases de datos relacionales populares (MySQL, PostgreSQL, SQL Server). Firestore es una base de datos NoSQL serverless, escalable y orientada a documentos. BigQuery es un data warehouse sin servidor para análisis de datos a escala.
Monitoreo y Logging (Cloud Monitoring y Cloud Logging):
Servicios esenciales para la observabilidad. Cloud Monitoring recopila métricas de tus servicios y aplicaciones, permite crear dashboards personalizados y configurar alertas basadas en umbrales. Cloud Logging recopila, almacena y permite buscar y exportar logs de tus recursos y aplicaciones.
Facturación y Gestión de Costos:
Comprender la estructura de facturación (Cuentas de Facturación asociadas a Proyectos). Utilizar herramientas como Presupuestos (con alertas) para monitorear el gasto, y el Explorador de Costos para analizar la distribución de los costos por servicio, proyecto o etiqueta.
Command-Line Tools (`gcloud` y `gsutil`):
Dominar el uso de las herramientas de línea de comandos principales. `gcloud` es la herramienta universal para interactuar con la mayoría de los servicios de GCP. `gsutil` es una utilidad específica para gestionar Cloud Storage.
Service Accounts:
Un tipo especial de principal de IAM que representa una identidad para una aplicación o una máquina virtual, no para un usuario humano. Las Service Accounts se utilizan para otorgar permisos a las aplicaciones para que puedan acceder a otros servicios de GCP de forma segura y controlada (principio del mínimo privilegio).
Algunos ejemplos de aplicaciones prácticas donde se utiliza Google Cloud Platform (GCP):
Alojar y escalar aplicaciones web modernas de varios niveles:
Construir arquitecturas de aplicaciones que combinan servicios de GCP: frontend (ej: servido desde Cloud Storage o App Engine), backend (ej: Cloud Run, Compute Engine, GKE), base de datos (ej: Cloud SQL, Firestore), y otros servicios (ej: caching con Memorystore).
Implementar autenticación y autorización granular para aplicaciones y acceso a recursos:
Utilizar IAM para definir roles personalizados o predefinidos y aplicarlos a usuarios, grupos o Service Accounts para controlar quién puede acceder a qué recursos de GCP y qué acciones puede realizar.
Almacenar, gestionar y servir grandes cantidades de archivos no estructurados de forma segura y económica:
Utilizar Cloud Storage con diferentes clases de almacenamiento (optimizando costos) y configurar reglas de firewall y permisos de IAM/ACLs para controlar el acceso. Usar ciclos de vida de objetos para archivar o eliminar datos automáticamente.
Diseñar e implementar una infraestructura de red segura y aislada en la nube:
Configurar redes VPC personalizadas con subredes, reglas de firewall estrictas para controlar el tráfico entre segmentos de red y hacia/desde internet, y rutas estáticas si es necesario.
Desplegar y administrar bases de datos relacionales o NoSQL gestionadas y escalables:
Crear instancias de Cloud SQL o Firestore, configurar backups, alta disponibilidad y escalabilidad para tus necesidades de base de datos sin la sobrecarga de gestionar la infraestructura subyacente.
Automatizar tareas y flujos de trabajo con lógica serverless basada en eventos:
Utilizar Cloud Functions para ejecutar código en respuesta a eventos (ej: subida de archivo a Cloud Storage, mensaje en Pub/Sub, evento de log), o Cloud Run para ejecutar tareas en contenedores bajo demanda.
Configurar monitoreo proactivo y alertas para la salud y el rendimiento de las aplicaciones y la infraestructura:
Utilizar Cloud Monitoring para crear dashboards con métricas relevantes y configurar políticas de alerta que te notifiquen cuando se alcanzan ciertos umbrales.
Analizar grandes conjuntos de datos utilizando BigQuery y otros servicios de datos:
Cargar datos en BigQuery, escribir y ejecutar consultas SQL para análisis, y usar otros servicios de datos de GCP como Cloud Dataflow o Dataproc para procesamiento.
Aquí tienes algunas recomendaciones para facilitar tus inicios en Google Cloud Platform (GCP):
Entiende la Jerarquía de Recursos (Proyectos):
Todos los recursos en GCP pertenecen a un proyecto. Aprende a crear, organizar y seleccionar proyectos. Es el contenedor fundamental para la facturación, IAM y la gestión de recursos. Para entornos más grandes, explora Organizaciones y Carpetas.
Domina la CLI de `gcloud` (y `gsutil`):
Son tus herramientas principales para interactuar con la mayoría de los servicios de GCP desde la terminal. Practica los comandos esenciales para listar, crear, describir, actualizar y eliminar recursos.
Aprende los Fundamentos de IAM (Identidad y Acceso):
La seguridad es crucial. Entiende qué son los Principals (usuarios, Service Accounts), los Roles (conjuntos de permisos) y las Políticas (que asocian Principals a Roles en recursos). Aplica el principio del mínimo privilegio: otorga solo los permisos necesarios.
Familiarízate con los Servicios Clave:
No necesitas ser un experto en todos, pero conoce los conceptos básicos y casos de uso de los servicios principales: Compute Engine (VMs), Cloud Storage (almacenamiento de archivos), Cloud SQL (bases de datos relacionales), Firestore (NoSQL), VPC (redes) y Firewall Rules. Estos son la base de muchas aplicaciones.
Presta Mucha Atención a la Facturación:
GCP cobra por el uso de los servicios. Entiende el modelo de precios de los servicios que utilizas. Configura presupuestos y alertas de facturación para evitar sorpresas y usa el Explorador de Costos para entender de dónde vienen tus gastos.
Usa Redes VPC y Reglas de Firewall para la Seguridad de Red:
Diseña tus redes para que sean seguras. Utiliza reglas de firewall para controlar estrictamente el tráfico entrante y saliente hacia y desde tus VMs y otros recursos. No expongas servicios a internet a menos que sea necesario.
Explora las Opciones Serverless (Cloud Functions, Cloud Run):
Para muchas aplicaciones web, APIs o tareas batch, los servicios serverless son más sencillos de gestionar y más escalables que las VMs. Entiende cuándo usar Cloud Functions (orientado a eventos) vs. Cloud Run (contenedores bajo demanda).
Configura Monitoreo y Logging Básico:
Utiliza Cloud Monitoring y Cloud Logging para ver el rendimiento de tus recursos y recopilar logs. Son esenciales para entender qué está pasando en tu aplicación y para depurar problemas.
Usa Service Accounts para tus Aplicaciones:
No uses tus credenciales de usuario para que las aplicaciones accedan a otros servicios de GCP. Crea Service Accounts con los roles mínimos necesarios y asócialas a tus VMs o Pods (GKE) o úsalas en tus despliegues serverless.
Si te interesa Google Cloud Platform (GCP), también podrías explorar estas herramientas:
Amplía tus conocimientos con estos enlaces y materiales: