Como copiar uma instância do GCP Compute Engine entre projetos

O Google Cloud Platform (GCP) é um dos principais provedores de serviços em nuvem, oferecendo uma ampla gama de ferramentas e serviços para ajudar empresas e desenvolvedores a criar, implantar e escalar aplicativos sem problemas. Um dos serviços mais usados no GCP é o Compute Engine, que permite criar e gerenciar máquinas virtuais (VMs) adaptadas às suas necessidades específicas. Esteja você executando um aplicativo web, um banco de dados ou um ambiente de desenvolvimento, o Compute Engine oferece a flexibilidade e a escalabilidade necessárias para cargas de trabalho modernas.

No entanto, à medida que as organizações crescem ou se reestruturam, pode chegar um momento em que você precise transferir uma instância do Compute Engine de Projeto A para Projeto B. Isso geralmente acontece ao migrar recursos entre equipes, consolidar projetos ou até colaborar com outra organização. Embora o GCP não ofereça uma função direta de “copiar” para mover instâncias de VM entre projetos — especialmente quando os projetos pertencem a contas diferentes —, existe uma solução alternativa confiável usando snapshots e permissões compartilhadas.

Neste guia abrangente, orientaremos você passo a passo por todo o processo, desde a criação de snapshots da sua VM até a configuração de permissões e a implantação da instância no projeto de destino. Seja você um engenheiro de nuvem experiente ou um iniciante explorando o GCP, este guia fornecerá o conhecimento e as ferramentas para realizar essa tarefa com eficiência. Ao final deste artigo, você será capaz de migrar sua instância do GCP Compute Engine sem problemas, mesmo entre projetos de contas separadas.

Vamos mergulhar e simplificar o que inicialmente pode parecer um processo de migração complexo.



Por que copiar uma instância do GCP Compute entre projetos?

Há vários motivos pelos quais você pode precisar copiar uma instância de VM entre projetos:

  • Migração de projeto: mover recursos para um novo projeto para melhor organização ou faturamento.
  • Colaboração: compartilhar uma VM com outra equipe ou organização.
  • Backup e recuperação: criar um backup de uma VM em um projeto diferente para recuperação de desastres.

Pré-requisitos

Antes de começar, verifique o seguinte:

  1. Permissões de acesso:
    • Você tem permissões de Proprietário ou Editor em Projeto A(projeto de origem).
    • Você tem permissões suficientes (por exemplo, roles/compute.admin) em Projeto B(projeto de destino).
  2. Faturamento ativado:
    • Ambos os projetos devem ter o faturamento ativado para criar e usar recursos.
  3. Cloud SDK instalado:
  4. Snapshot da VM de origem:
    • Você precisará criar um snapshot da instância de VM de origem.

Guia passo a passo para copiar uma instância do GCP Compute

Etapa 1: crie um snapshot da VM de origem no Projeto A

Um snapshot é uma cópia pontual do disco da VM. Para criar um snapshot:

  1. Abra o Google Cloud Console do Projeto A.
  2. Acesse Compute Engine> Snapshots.
  3. Clique em «Criar snapshot».
  4. Preencha os detalhes necessários:
    • Nome: dê ao snapshot um nome exclusivo (por exemplo, my-vm-snapshot).
    • Disco de origem: selecione o disco da VM de origem.
    • Local: escolha uma multirregião ou uma região próxima ao seu projeto de destino.
  5. Clique em «Criar».

Como alternativa, você pode usar o seguinte comando gcloud:

gcloud compute snapshots create my-vm-snapshot \
    --source-disk=SOURCE_DISK_NAME \
    --source-disk-zone=SOURCE_DISK_ZONE \
    --project=PROJECT_A_ID

Substitua:

  • SOURCE_DISK_NAME pelo nome do disco da VM de origem.
  • SOURCE_DISK_ZONE pela zona da VM de origem (por exemplo, us-central1-a).
  • PROJECT_A_ID pelo ID do Projeto A.

Etapa 2: compartilhe o snapshot com o Projeto B

Para permitir que o Projeto B acesse o snapshot, você deve conceder permissões à conta de destino.

  1. Em Projeto A, acesse Compute Engine> Snapshots.
  2. Selecione o snapshot que você criou.
  3. Clique em «Mostrar painel de informações» (ou o ícone de lápis para editar).
  4. Adicione uma vinculação de política do IAM:
    • Membro: user:[email protected] (substitua pelo e-mail da conta de destino).
    • Papel: Compute Storage Admin.

Como alternativa, use este comando gcloud:

gcloud compute snapshots add-iam-policy-binding my-vm-snapshot \
    --member="user:[email protected]" \
    --role="roles/compute.storageAdmin" \
    --project=PROJECT_A_ID


Etapa 3: use o snapshot para criar um disco no Projeto B

Agora que o snapshot está compartilhado, você pode criar um novo disco em Projeto B usando o snapshot.

  • Mude para Projeto B no Console do Google Cloud ou no Cloud Shell:
gcloud config set project PROJECT_B_ID
  • Crie um novo disco a partir do snapshot compartilhado:
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

    Substitua:

    • PROJECT_A_ID pelo ID do Projeto A.
    • my-vm-snapshot pelo nome do snapshot.
    • TARGET_ZONE pela zona onde você deseja criar o disco (por exemplo, us-central1-a).
    • PROJECT_B_ID pelo ID do Projeto B.

    Etapa 4: crie uma nova VM no Projeto B usando o disco

    Depois que o disco for criado, você poderá usá-lo para executar uma nova VM no Projeto B.

    • Execute o comando a seguir para criar uma nova 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
    
    
    • Substitua os marcadores pelos valores apropriados:
      • my-new-vm: nome da nova VM.
      • my-new-disk: nome do disco criado a partir do snapshot.
      • TARGET_ZONE: zona onde a VM será criada.
      • PROJECT_B_ID: ID do Projeto B.

    Etapa 5: verifique a nova VM

    Depois que a VM for criada, verifique se ela está em execução e acessível:

    1. Acesse Compute Engine> Instâncias de VM em Projeto B.
    2. Verifique o status da nova VM.
    3. Acesse a VM via SSH para garantir que ela esteja funcionando como esperado.

    Práticas recomendadas

    • Limpar recursos: exclua o snapshot no Projeto A se ele não for mais necessário, para evitar cobranças desnecessárias:
    gcloud compute snapshots delete my-vm-snapshot --project=PROJECT_A_ID
    
    • Usar rótulos: adicione rótulos à nova VM e ao disco no Projeto B para um melhor gerenciamento de recursos.
    • Monitorar custos: fique de olho no faturamento dos dois projetos para evitar cobranças inesperadas.

    Conclusão

    Copiar uma instância do GCP Compute Engine de um projeto para outro, especialmente quando os projetos pertencem a contas diferentes, envolve criar um snapshot, compartilhá-lo e usá-lo para criar uma nova VM. Seguindo as etapas descritas neste guia, você pode migrar sua VM com sucesso, garantindo segurança e eficiência.

    Se este guia foi útil, sinta-se à vontade para compartilhá-lo com outras pessoas ou deixar um comentário abaixo. Conte-nos se tiver dúvidas ou dicas adicionais para gerenciar recursos do GCP!

    Deixe um comentário