Google Cloud Platform (GCP) es uno de los principales proveedores de servicios en la nube y ofrece una amplia gama de herramientas y servicios para ayudar a empresas y desarrolladores a crear, implementar y escalar aplicaciones sin problemas. Uno de los servicios más utilizados dentro de GCP es Compute Engine, que te permite crear y gestionar máquinas virtuales (VM) adaptadas a tus necesidades específicas. Ya sea que ejecutes una aplicación web, una base de datos o un entorno de desarrollo, Compute Engine ofrece la flexibilidad y escalabilidad necesarias para las cargas de trabajo modernas.
Sin embargo, a medida que las organizaciones crecen o se reestructuran, puede llegar un momento en el que necesites transferir una instancia de Compute Engine de Proyecto A a Proyecto B. Esto suele ocurrir al migrar recursos entre equipos, consolidar proyectos o incluso colaborar con otra organización. Aunque GCP no ofrece una función directa de «copia» para mover instancias de VM entre proyectos —especialmente cuando los proyectos pertenecen a cuentas diferentes—, existe una solución fiable con instantáneas y permisos compartidos.
En esta guía completa, te acompañaremos paso a paso por todo el proceso, desde la creación de instantáneas de tu VM hasta la configuración de permisos y la implementación de la instancia en el proyecto de destino. Ya seas un ingeniero de nube experimentado o un principiante que explora GCP, esta guía te dará los conocimientos y las herramientas para realizar esta tarea de forma eficiente. Al final de este artículo, podrás migrar tu instancia de GCP Compute Engine sin problemas, incluso entre proyectos de cuentas distintas.
Vamos a sumergirnos y simplificar lo que al principio puede parecer un proceso de migración complejo.
Tabla de contenido
¿Por qué copiar una instancia de GCP Compute entre proyectos?
Hay varias razones por las que podrías necesitar copiar una instancia de VM entre proyectos:
- Migración de proyectos: mover recursos a un nuevo proyecto para una mejor organización o facturación.
- Colaboración: compartir una VM con otro equipo u organización.
- Copia de seguridad y recuperación: crear una copia de seguridad de una VM en un proyecto diferente para la recuperación ante desastres.
Requisitos previos
Antes de empezar, asegúrate de lo siguiente:
- Permisos de acceso:
- Tienes permisos de propietario o editor en Proyecto A(proyecto de origen).
- Tienes permisos suficientes (por ejemplo, roles/compute.admin) en Proyecto B(proyecto de destino).
- Facturación habilitada:
- Ambos proyectos deben tener habilitada la facturación para crear y usar recursos.
- Cloud SDK instalado:
- Instala el Google Cloud SDK en tu equipo local o usa Cloud Shell.
- Instantánea de la VM de origen:
- Deberás crear una instantánea de la instancia de VM de origen.
Guía paso a paso para copiar una instancia de GCP Compute
Paso 1: crea una instantánea de la VM de origen en el Proyecto A
Una instantánea es una copia puntual del disco de la VM. Para crear una instantánea:
- Abre la Google Cloud Console de Proyecto A.
- Ve a Compute Engine> Instantáneas.
- Haz clic en «Crear instantánea».
- Rellena los datos requeridos:
- Nombre: dale a la instantánea un nombre único (por ejemplo,
my-vm-snapshot). - Disco de origen: selecciona el disco de la VM de origen.
- Ubicación: elige una multirregión o una región cercana a tu proyecto de destino.
- Nombre: dale a la instantánea un nombre único (por ejemplo,
- Haz clic en «Crear».
También puedes usar el siguiente comando de gcloud:
gcloud compute snapshots create my-vm-snapshot \
--source-disk=SOURCE_DISK_NAME \
--source-disk-zone=SOURCE_DISK_ZONE \
--project=PROJECT_A_ID
Reemplaza:
SOURCE_DISK_NAMEcon el nombre del disco de la VM de origen.SOURCE_DISK_ZONEcon la zona de la VM de origen (por ejemplo,us-central1-a).PROJECT_A_IDcon el ID del Proyecto A.
Paso 2: comparte la instantánea con el Proyecto B
Para permitir que el Proyecto B acceda a la instantánea, debes conceder permisos a la cuenta de destino.
- En Proyecto A, ve a Compute Engine> Instantáneas.
- Selecciona la instantánea que creaste.
- Haz clic en «Mostrar panel de información» (o el icono del lápiz para editar).
- Añade una vinculación de política de IAM:
- Miembro:
user:[email protected](reemplázalo con el correo electrónico de la cuenta de destino). - Rol:
Compute Storage Admin.
- Miembro:
También puedes usar este comando de gcloud:
gcloud compute snapshots add-iam-policy-binding my-vm-snapshot \
--member="user:[email protected]" \
--role="roles/compute.storageAdmin" \
--project=PROJECT_A_ID
Paso 3: usa la instantánea para crear un disco en el Proyecto B
Ahora que la instantánea está compartida, puedes crear un disco nuevo en Proyecto B con la instantánea.
- Cambia a Proyecto B en la Consola de Google Cloud o en Cloud Shell:
gcloud config set project PROJECT_B_ID
- Crea un disco nuevo a partir de la instantánea compartida:
gcloud compute disks create my-new-disk \
--source-snapshot=projects/PROJECT_A_ID/global/snapshots/my-vm-snapshot \
--zone=TARGET_ZONE \
--project=PROJECT_B_ID
Reemplaza:
PROJECT_A_IDcon el ID del Proyecto A.my-vm-snapshotcon el nombre de la instantánea.TARGET_ZONEcon la zona donde quieres crear el disco (por ejemplo,us-central1-a).PROJECT_B_IDcon el ID del Proyecto B.
Paso 4: crea una nueva VM en el Proyecto B usando el disco
Una vez creado el disco, puedes usarlo para lanzar una nueva VM en el Proyecto B.
- Ejecuta el siguiente comando para crear una nueva VM:
gcloud compute instances create my-new-vm \
--zone=TARGET_ZONE \
--disk=name=my-new-disk,boot=yes,auto-delete=no \
--project=PROJECT_B_ID
- Reemplaza los marcadores de posición con los valores adecuados:
my-new-vm: nombre de la nueva VM.my-new-disk: nombre del disco creado a partir de la instantánea.TARGET_ZONE: zona donde se creará la máquina virtual.PROJECT_B_ID: ID del Proyecto B.
Paso 5: verifica la nueva VM
Después de crear la máquina virtual, verifica que esté en ejecución y accesible:
- Ve a Compute Engine> Instancias de VM en Proyecto B.
- Comprueba el estado de la nueva máquina virtual.
- Conéctate por SSH a la máquina virtual para asegurarte de que funciona como se espera.
Prácticas recomendadas
- Limpiar recursos: elimina la instantánea del Proyecto A si ya no la necesitas para evitar cargos innecesarios:
gcloud compute snapshots delete my-vm-snapshot --project=PROJECT_A_ID
- Usar etiquetas: añade etiquetas a la nueva máquina virtual y al disco del Proyecto B para gestionar mejor los recursos.
- Supervisar los costes: vigila la facturación de ambos proyectos para evitar cargos inesperados.
Conclusión
Copiar una instancia de GCP Compute Engine de un proyecto a otro, especialmente cuando los proyectos pertenecen a cuentas diferentes, implica crear una instantánea, compartirla y luego usarla para crear una nueva máquina virtual. Si sigues los pasos descritos en esta guía, podrás migrar tu máquina virtual con éxito, garantizando seguridad y eficiencia.
Si esta guía te ha resultado útil, no dudes en compartirla con otros o dejar un comentario abajo. ¡Cuéntanos si tienes preguntas o consejos adicionales para gestionar recursos de GCP!