Brains4Cloud
ESEN
Practicar

Tema 1 de 10

D3 · Garantizar el funcionamiento de una solución en la nube

Operar Compute Engine

Una vez desplegadas las VM, el apartado 3.1 del temario pide operarlas: conectarse en remoto, ver las instancias en ejecución, trabajar con snapshots e imágenes (crear, ver, borrar y programar snapshots) y conectar GPU y TPU. La creación de instancias y los MIG están en el dominio D2.

Conectarse a una VM Linux

MétodoCómoClave SSH
SSH en el navegadorPágina Instancias de VM → botón SSHCompute Engine crea una clave efímera
gcloudgcloud compute ssh VM_NAME --zone=ZONE, también desde Cloud ShellCompute Engine crea una clave persistente
Cliente OpenSSH o PuTTYssh -i CLAVE_PRIVADA USUARIO@IP_EXTERNATienes que añadir tú la clave a la VM
  • Estos métodos sirven para VM con IP externa; para VM solo con IP interna se usa IAP (siguiente apartado) u otras opciones de conectividad.
  • Con OS Login, el nombre de usuario sale de tu perfil de Google; con claves en metadatos, es el que pusiste al crear la clave.
  • Quien se conecta puede usar los permisos IAM de la cuenta de servicio asociada a la VM.

Identity-Aware Proxy (IAP) TCP forwarding crea un túnel cifrado para reenviar SSH, RDP u otro tráfico a VM que no tienen IP externa o no permiten acceso directo desde internet, con control fino de quién puede abrir túneles y hacia qué VM.

1

Regla de firewall: Permitir la entrada desde 35.235.240.0/20 (rango de IAP para TCP; en IPv6, 2600:2d00:1:7::/64) a los puertos necesarios, p. ej. 22 y 3389.

2

Permisos: Conceder IAP-secured Tunnel User (roles/iap.tunnelResourceAccessor) en el proyecto o en VM concretas.

3

Conectar: gcloud compute ssh VM_NAME --tunnel-through-iap, o gcloud compute start-iap-tunnel VM_NAME 3389 --local-host-port=localhost:PUERTO para RDP u otros puertos.

gcloud compute firewall-rules create allow-ssh-ingress-from-iap \
  --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges=35.235.240.0/20

Las reglas default-allow-ssh y default-allow-rdp permiten SSH y RDP desde cualquier IP, no solo desde IAP: Google sugiere desactivarlas o borrarlas si quieres impedir el acceso directo.

Conectarse a una VM Windows

  • Se usa un cliente RDP contra el puerto TCP 3389.
  • Primero hay que crear una cuenta y una contraseña de Windows en la instancia; si se olvida la contraseña, se puede restablecer.
  • Si la VM no tiene IP externa, el RDP se hace a través de un túnel de IAP con start-iap-tunnel.

Ver las instancias en ejecución

En la consola, la página Instancias de VM muestra todas las VM con su zona, IP y estado. Con gcloud:

gcloud compute instances list
gcloud compute instances list --filter="status=RUNNING" --zones=us-central1-a
gcloud compute instances list --sort-by=name --limit=20
gcloud compute instances describe VM_NAME --zone=us-central1-a
  • --filter aplica una expresión booleana; --zones limita las zonas; --sort-by y --limit ordenan y recortan.
  • Los argumentos de nombre y --regexp están obsoletos: se usa --filter="name=(…)" o --filter="name~'REGEXP'".
  • --format cambia la salida (tabla, JSON, YAML…).

Snapshots

Un snapshot copia el contenido de un disco en un momento dado, aunque esté conectado a una VM en marcha. Para copiar una VM entera o varios discos a la vez se usa una machine image.

TipoPara quéRedundancia¿Se borra con el disco?¿Programable?
EstándarCopia georredundante contra caídas locales, zonales y regionalesUna o varias regionesNoSí
De archivoLo mismo, pero más barato para retener meses o años (cumplimiento, auditoría)Una o varias regionesNoNo
InstantáneoRestaurar muy rápido tras un error humano o corrupciónSolo la zona o región del discoSíNo
  • Son incrementales: cada uno guarda solo lo que cambió desde el anterior, para no cobrar datos duplicados.
  • Por defecto son recursos globales: un disco creado desde un snapshot puede estar en cualquier región o proyecto. Se pueden restringir las regiones y compartir entre proyectos.
  • Para usar los datos se restaura: se crea un disco nuevo desde el snapshot, con rendimiento máximo inmediato. Restaurar no sobrescribe el disco original.
  • Tiempo de recuperación: instantáneo < estándar < archivo.
gcloud compute snapshots create web-snap-01 --source-disk=web-disk --source-disk-zone=us-central1-a
gcloud compute snapshots list
gcloud compute snapshots delete web-snap-01

Google recomienda gcloud compute snapshots create en lugar de gcloud compute disks snapshot, porque admite más funciones, como crear el snapshot en otro proyecto.

Programar snapshots

Una programación de snapshots es una política de recursos que se crea una vez y se asocia a uno o varios discos.

gcloud compute resource-policies create snapshot-schedule daily-backup \
  --region=us-central1 --max-retention-days=14 \
  --start-time=04:00 --daily-schedule \
  --on-source-disk-delete=keep-auto-snapshots

gcloud compute disks add-resource-policies web-disk \
  --resource-policies=daily-backup --zone=us-central1-a
  • Frecuencia: --hourly-schedule, --daily-schedule o --weekly-schedule (se usa solo una).
  • --max-retention-days: cuántos días se conservan los snapshots automáticos. --start-time se indica en UTC.
  • --on-source-disk-delete: por defecto keep-auto-snapshots (conservarlos para siempre si se borra el disco) o apply-retention-policy (seguir aplicando la retención).
  • Las programaciones solo crean snapshots estándar.

Imágenes

Públicas

Las mantienen Google, comunidades de código abierto y proveedores. Todos los proyectos tienen acceso. Se actualizan con regularidad o cuando hay un CVE crítico.

Personalizadas

Solo de tu proyecto (se pueden compartir). Se crean desde discos de arranque, otras imágenes o snapshots, o importando discos virtuales.

gcloud compute images list
gcloud compute images create web-image-v2 --source-disk=web-disk \
  --source-disk-zone=us-central1-a --family=web-images
gcloud compute images create web-image-v3 --source-snapshot=web-snap-01
gcloud compute images delete web-image-v1
  • Por defecto no se puede crear una imagen desde una instancia en marcha; --force lo permite, con riesgo de inconsistencias.
  • Con --storage-location se elige dónde se guarda la imagen.
  • Una imagen personalizada permite crear VM ya configuradas con las apps necesarias, sin partir de una imagen pública.
  • Para migrar muchas VM a Compute Engine, Google recomienda el servicio de migración de VM en lugar de importar disco a disco.

Familias y estados de las imágenes

Una familia de imágenes apunta siempre a la versión más reciente que no esté obsoleta (por ejemplo, debian-13 en debian-cloud). Si la última imagen falla, se marca como obsoleta y la familia vuelve a la anterior.

EstadoEfecto
DEPRECATEDYa no es la más reciente; se puede usar, pero se avisa al lanzarla
OBSOLETENo se debe usar: crear una instancia desde ella falla. Útil para archivar y montar como disco no de arranque
DELETEDBorrada o marcada para borrar; no se puede lanzar

Se cambia con gcloud compute images deprecate, que también admite programar los estados futuros (--obsolete-in, --obsolete-on). Las imágenes obsoletas y borradas no aparecen por defecto; se ven con --show-deprecated.

Conectar GPU y TPU

GPU

  • En la serie N1 (salvo shared-core) se eligen modelo y número de GPU (T4, V100, P4) con --accelerator type=…,count=….
  • En las series optimizadas para aceleradores (A y G) la GPU viene incluida en el tipo de máquina.
  • Hay que instalar los drivers de GPU y comprobar la cuota de GPU de la región.
  • Las VM con GPU no admiten migración en vivo: se detienen en los eventos del host.
  • Rol para crearlas: Compute Instance Admin (v1).

TPU

  • Se gestionan con recursos de Compute Engine.
  • TPU VM: una VM conectada directamente al hardware TPU; equivale a un slice de un solo host.
  • Slice multihost: varias TPU VM unidas por interconexión de alta velocidad; se crea como un MIG con una topología de aceleradores.
  • La antigua API de Cloud TPU está obsoleta.
gcloud compute instances create gpu-vm --zone=us-central1-a \
  --machine-type=n1-standard-8 --accelerator=type=nvidia-tesla-t4,count=1 \
  --maintenance-policy=TERMINATE --image-family=debian-13 --image-project=debian-cloud

Escenarios de examen

SituaciónRespuestaPor qué
Entrar por SSH a una VM sin IP externa y sin bastiónIAP TCP forwarding (gcloud compute ssh --tunnel-through-iap)Túnel cifrado a través de IAP.
Los administradores solo deben poder abrir túneles IAP a ciertas VMIAP-secured Tunnel User en esas VMControl fino de quién conecta y a dónde.
Copia diaria del disco con retención de 14 díasProgramación de snapshots con max-retention-days 14Snapshots automáticos con borrado automático.
Guardar copias de disco durante años para auditoría al menor costeSnapshots de archivoMás baratos y pensados para retención larga.
Recuperar en segundos de un error humano en el mismo discoSnapshot instantáneoEl mejor tiempo de recuperación.
Crear muchas VM idénticas ya configuradasImagen personalizada (mejor en una familia)Arranca VM con las apps ya instaladas.
Una imagen nueva da problemas y quieres que la familia vuelva a la anteriorMarcar la nueva como DEPRECATEDLa familia apunta a la más reciente no obsoleta.
Copia de seguridad de una VM completa con varios discosMachine imageLos snapshots son de un solo disco.

Trampas frecuentes del examen

❓ ¿Qué rango hay que permitir en el firewall para IAP TCP forwarding?

35.235.240.0/20 (y 2600:2d00:1:7::/64 para IPv6).

❓ ¿Un snapshot instantáneo sobrevive si se borra el disco?

No. Los instantáneos se borran con el disco; los estándar y de archivo no.

❓ ¿Cada snapshot es una copia completa del disco?

No. Son incrementales: guardan solo los cambios desde el anterior.

❓ ¿Un snapshot sirve para hacer copia de una VM con varios discos?

No. Un snapshot es de un disco; para la VM completa se usa una machine image.

❓ ¿Se puede lanzar una VM desde una imagen en estado OBSOLETE?

No, falla. DEPRECATED sí permite lanzarla, con aviso.

❓ ¿Se puede crear una imagen desde una VM en marcha?

No por defecto; hace falta --force y conviene hacerlo con la VM detenida para evitar inconsistencias.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Las VM de producción no tienen IP externa. Los ingenieros de guardia necesitan SSH para diagnosticar, sin bastión ni VPN, y el acceso debe quedar limitado por IAM. ¿Qué configura?

¿Listo para poner a prueba "Operar Compute Engine"?

Preguntas originales, cada una con su explicación.

Empezar un simulacro