Protección de Datos: Snapshots y Automatización con Python
Autor: Eduardo Martínez Agrelo
En el ejercicio anterior logramos que nuestras máquinas fueran "inmortales" usando Managed Instance Groups. Si una VM muere, nace otra. Pero, ¿qué pasa con los datos? Si un disco se corrompe o un usuario borra una base de datos por error, crear una VM nueva no recuperará esa información. En el examen Associate Cloud Engineer, la gestión del almacenamiento de bloque (Persistent Disks) y sus copias de seguridad (Snapshots) es un tema recurrente. En este ejercicio, aprendemos a automatizar esta tarea crítica usando Python.
Discos Persistentes: Almacenamiento en Red
Lo primero es entender que en Google Cloud, el disco duro (Persistent Disk) no está físicamente pegado al servidor. Es almacenamiento conectado por red. Esto permite dos cosas:
- Redimensionamiento en caliente: Puedes aumentar el tamaño del disco (de 100GB a 200GB) sin apagar la máquina.
- Desacoplamiento: Puedes borrar la VM y mantener el disco para conectarlo a otra máquina.
La Magia de los Snapshots Incrementales
Un Snapshot (instantánea) es una copia de seguridad del disco en un momento exacto. Pero Google Cloud usa una tecnología inteligente:
- Incrementalidad: El primer snapshot copia todos los datos. El segundo snapshot solo copia los bloques que han cambiado desde el primero.
- Eficiencia: Si tienes un disco de 1TB pero solo cambias 10MB al día, tus backups diarios serán rapidísimos y costarán céntimos.
- Globalidad: Aunque los Discos son Zonales (viven en
us-central1-a), los Snapshots son globales (o multi-regionales). Esto significa que puedes restaurar un snapshot en cualquier parte del mundo.
Caso de Uso de Examen: Migración y DR
Una pregunta clásica del examen ACE es: "Tienes una VM en la zona us-central1-a y necesitas moverla a europe-west1-b. ¿Qué haces?"
No existe un botón "Mover VM". El procedimiento correcto es:
- Crear un Snapshot del disco de la VM en EE.UU.
- Crear un nuevo Disco en Europa usando ese Snapshot como fuente (Source).
- Crear una nueva VM en Europa y adjuntar ese disco nuevo como disco de arranque.
Automatización con Python: google-cloud-compute
Hacer backups manuales es arriesgado (se te olvidará). En este ejercicio, escribimos un script en Python que:
- Se autentica usando las credenciales de la máquina (o locales).
- Utiliza la librería cliente
google-cloud-compute. - Localiza el disco objetivo.
- Solicita la creación del snapshot de forma asíncrona y espera a que termine.
Conclusión: Datos Seguros
Al finalizar este ejercicio, tendrás un script capaz de proteger tu infraestructura. Has aprendido que la resiliencia de cómputo (MIGs) y la resiliencia de datos (Snapshots) son dos caras de la misma moneda, y ahora sabes cómo implementar ambas.