lunes, 4 de diciembre de 2017

Mover Instancias entre Zonas con un comando


Es posible mover instancias entre Zonas con un solo comando y manteniendo las mismas direcciones IP. Con Google Compute Engine, cada instancia se ejecuta en una sola zona dentro de una región. En ocasiones, desea mover una instancia específica a otra zona dentro de una región para asegurar la redundancia multizona o reducir las tarifas debido al tráfico entre zonas.

Hacer esto manualmente es un poco complejo, tienes que:


  • Hacer una instantánea de los discos de las instancias.
  • Usar instantáneas para crear discos persistentes en la zona de destino.
  • Convertir la dirección IP efímera de la instancia en una dirección IP estática.
  • Ejecutar instancia basada en discos nuevos en la nueva zona
  • Asignar una dirección IP estática y convertirla de nuevo a efímera
  • Elimine las instantáneas, la instancia anterior y sus discos.


No es muy fácil, especialmente si quieres hacer esto varias veces. ¡Afortunadamente con la interfaz de la línea de comandos de gcloud, puedes hacer esto con un solo comando!

Imagine que tenemos una instancia en europe-west1-c y queremos moverlo a europe-west1-d:


NAME        ZONE            MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
instance-1  europe-west1-d  n1-standard-1               10.132.0.2   35.187.10.59  RUNNING
Y luego, ejecutamos el comando magic: gcloud compute instance move:
$ INSTANCE_ID --zone $ SOURCE_ZONE --destination-zone $ DEST_ZONE:


$ gcloud compute instances move instance-1 --zone europe-west1-d --destination-zone europe-west1-c
Moving gce instance instance-1...done.
¡Eso es todo! ¡La misma instancia, las mismas direcciones IP, diferentes zonas!


NAME        ZONE            MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
instance-1  europe-west1-c  n1-standard-1               10.132.0.2   35.187.10.59  RUNNING