Tema 1 de 10
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.
Contenido
| Método | Cómo | Clave SSH |
|---|---|---|
| SSH en el navegador | Página Instancias de VM → botón SSH | Compute Engine crea una clave efímera |
| gcloud | gcloud compute ssh VM_NAME --zone=ZONE, también desde Cloud Shell | Compute Engine crea una clave persistente |
| Cliente OpenSSH o PuTTY | ssh -i CLAVE_PRIVADA USUARIO@IP_EXTERNA | Tienes que añadir tú la clave 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.
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.
Permisos: Conceder IAP-secured Tunnel User (roles/iap.tunnelResourceAccessor) en el proyecto o en VM concretas.
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.
start-iap-tunnel.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.--regexp están obsoletos: se usa --filter="name=(…)" o --filter="name~'REGEXP'".--format cambia la salida (tabla, JSON, YAML…).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.
| Tipo | Para qué | Redundancia | ¿Se borra con el disco? | ¿Programable? |
|---|---|---|---|---|
| Estándar | Copia georredundante contra caídas locales, zonales y regionales | Una o varias regiones | No | Sí |
| De archivo | Lo mismo, pero más barato para retener meses o años (cumplimiento, auditoría) | Una o varias regiones | No | No |
| Instantáneo | Restaurar muy rápido tras un error humano o corrupción | Solo la zona o región del disco | Sí | No |
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.
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
--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).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
--force lo permite, con riesgo de inconsistencias.--storage-location se elige dónde se guarda la imagen.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.
| Estado | Efecto |
|---|---|
| DEPRECATED | Ya no es la más reciente; se puede usar, pero se avisa al lanzarla |
| OBSOLETE | No se debe usar: crear una instancia desde ella falla. Útil para archivar y montar como disco no de arranque |
| DELETED | Borrada 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.
GPU
--accelerator type=…,count=….TPU
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
| Situación | Respuesta | Por qué |
|---|---|---|
| Entrar por SSH a una VM sin IP externa y sin bastión | IAP 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 VM | IAP-secured Tunnel User en esas VM | Control fino de quién conecta y a dónde. |
| Copia diaria del disco con retención de 14 días | Programación de snapshots con max-retention-days 14 | Snapshots automáticos con borrado automático. |
| Guardar copias de disco durante años para auditoría al menor coste | Snapshots de archivo | Más baratos y pensados para retención larga. |
| Recuperar en segundos de un error humano en el mismo disco | Snapshot instantáneo | El mejor tiempo de recuperación. |
| Crear muchas VM idénticas ya configuradas | Imagen 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 anterior | Marcar la nueva como DEPRECATED | La familia apunta a la más reciente no obsoleta. |
| Copia de seguridad de una VM completa con varios discos | Machine image | Los snapshots son de un solo disco. |
❓ ¿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?
Preguntas originales, cada una con su explicación.
Empezar un simulacro