Menyalin VM antar-project


Dokumen ini menjelaskan cara menyalin VM Anda ke project yang berbeda.

Sebelum memulai

  • Tinjau Praktik terbaik untuk snapshot persistent disk dan siapkan boot disk untuk snapshot.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menyalin VM antar-project, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menyalin VM antar-project. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menyalin VM antar-project:

  • compute.instances.create pada project
  • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
  • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly di snapshot
  • Untuk menggunakan template instance untuk membuat VM: compute.instanceTemplates.useReadOnly di template instance
  • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
  • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use di project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
  • Untuk menentukan subnet untuk VM Anda: compute.subnetworks.use pada project atau subnet yang dipilih
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp pada project atau di subnet yang dipilih
  • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata di project
  • Untuk menetapkan tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label VM: compute.instances.setLabels di VM
  • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru bagi VM: compute.disks.create di project
  • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
  • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Menyalin VM ke project lain

  1. Di project sumber, buat snapshot boot disk VM menggunakan salah satu perintah berikut:

    Boot disk zona

    Jika VM Anda memiliki boot disk zona, buat snapshot menggunakan perintah berikut:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --snapshot-type SNAPSHOT_TYPE \
        --source-disk-zone SOURCE_DISK_ZONE
    

    Ganti kode berikut:

    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_DISK: Nama volume Persistent Disk zona tempat Anda ingin membuat snapshot.
    • SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat. Pilih Archive untuk retensi data yang lebih hemat biaya.
    • SOURCE_DISK_ZONE: Zona volume Persistent Disk zona tempat Anda ingin membuat snapshot.

    Boot disk regional

    Jika VM Anda memiliki boot disk regional, buat snapshot menggunakan perintah berikut:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-region=SOURCE_DISK_REGION \
        --snapshot-type=SNAPSHOT_TYPE
    

    Ganti kode berikut:

    • SNAPSHOT_NAME: Nama untuk snapshot.
    • SOURCE_DISK: Nama volume Persistent Disk regional tempat Anda ingin membuat snapshot.
    • SOURCE_DISK_REGION: Region tempat volume Persistent Disk regional tempat Anda ingin membuat snapshot.
    • SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.

  2. Buat image kustom dari snapshot menggunakan perintah berikut:

    gcloud compute images create IMAGE_NAME \
        --source-snapshot=SOURCE_SNAPSHOT \
        [--storage-location=LOCATION]
    

    Ganti kode berikut:

    • IMAGE_NAME: nama untuk image baru
    • SOURCE_SNAPSHOT: snapshot tempat Anda ingin membuat image
    • LOCATION: Opsional: tanda yang memungkinkan Anda menentukan region atau multi-region tempat image Anda disimpan. Misalnya, tentukan us untuk menyimpan image di multi-region us, atau us-central1 untuk menyimpannya di region us-central1. Jika Anda tidak menentukan pilihan, Compute Engine akan menyimpan image dalam multi-region yang paling dekat dengan lokasi sumber image Anda.
  3. Opsional: Bagikan image kustom dengan pengguna yang membuat VM di project tujuan. Untuk mengetahui informasi selengkapnya tentang berbagi image kustom, lihat Membagikan image kustom dalam organisasi.

  4. Di project tujuan Anda, buat VM dari image kustom menggunakan perintah berikut:

    gcloud compute instances create VM_NAME \
        --image-project IMAGE_PROJECT \
        [--image IMAGE | --image-family IMAGE_FAMILY]
        --subnet SUBNET
    

    Ganti kode berikut:

    • VM_NAME: nama VM
    • IMAGE_PROJECT: nama project yang berisi image
    • IMAGE atau IMAGE_FAMILY: tentukan salah satu dari hal berikut:
      • IMAGE: nama image kustom Anda

        Misalnya, --image=my-debian-image-v2.

      • IMAGE_FAMILY: jika Anda membuat image kustom sebagai bagian dari kelompok image kustom, menentukan kelompok image kustom tersebut.

        Ini akan membuat VM dari OS image dan versi OS terbaru yang masih digunakan dalam kelompok image kustom Anda. Misalnya, jika Anda menentukan --image-family=my-debian-family, Compute Engine akan membuat VM dari OS image terbaru dalam kelompok image my-debian-family kustom Anda.

    • SUBNET: Jika subnet dan instance berada dalam project yang sama, ganti SUBNET dengan nama subnet yang berada di region yang sama dengan instance.

      Untuk menentukan subnet di jaringan VPC Bersama, ganti SUBNET dengan string bentuk:

              projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
             

      Ganti kode berikut:

      • HOST_PROJECT_ID adalah ID project dari project host VPC Bersama
      • REGION adalah region subnet
      • SUBNET_NAME adalah nama subnet

      Region subnet untuk jaringan VPC bersama juga harus cocok dengan region yang berisi instance.