Memulihkan disk dari snapshot instan


Untuk mengakses data yang diambil dalam snapshot instan, Anda harus memulihkan atau membuat disk baru dari snapshot instan.

Halaman ini menjelaskan cara membuat disk dari snapshot instan. Setelah membuat disk, Anda dapat menggunakannya dengan memasangnya ke mesin virtual (VM).

Sebelum memulai

  • 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.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Pembatasan

Berlaku batasan berikut:

  • Jika Anda membuat disk dari snapshot instan, disk baru selalu memiliki jenis, lokasi penyimpanan, dan enkripsi yang sama dengan disk sumber snapshot.

  • Anda tidak dapat membuat VM langsung dari snapshot instan. Anda harus membuat disk dari snapshot instan, lalu menggunakan disk baru untuk membuat VM.

  • Jika disk sumber snapshot instan menggunakan kunci enkripsi yang dikelola pelanggan atau yang disediakan pelanggan, Anda harus memberikan kunci enkripsi yang sama saat membuat disk baru dari snapshot instan.

    Pertimbangkan contoh ini. Bayangkan Anda memiliki disk DISK-1 yang dienkripsi dengan kunci enkripsi yang disediakan pelanggan (CSEK), KEY-1. Anda juga memiliki snapshot instan, IS-1, yang dibuat dari DISK-1. Untuk membuat disk baru dari IS-1, Anda harus memberikan kunci yang sama, KEY-1, saat Anda membuat disk baru.

    Jika disk dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK), Anda hanya perlu memberikan kunci jika menggunakan REST atau gcloud CLI untuk membuat disk. Jika menggunakan konsol Google Cloud, Anda tidak perlu menentukan kunci enkripsi.

Membuat disk dari snapshot instan

Snapshot instan dienkripsi dengan enkripsi yang sama dengan disk sumbernya. Langkah-langkah untuk membuat disk dari snapshot instan bergantung pada cara enkripsi disk sumber snapshot instan.

Setiap disk sumber dienkripsi dengan salah satu metode berikut:

  • Kunci enkripsi yang dikelola Google. Ini adalah setelan defaultnya.
  • Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK)
  • Kunci enkripsi yang disediakan pelanggan (CSEK).

Untuk mengetahui cara disk tertentu dienkripsi, lihat Melihat informasi tentang enkripsi disk.

Membuat disk dari snapshot instan yang dienkripsi dengan enkripsi yang dikelola Google (default)

Anda dapat membuat disk dari snapshot instan dengan gcloud CLI, Google Cloud Console, atau REST.

Konsol

  1. Temukan snapshot instan yang ingin Anda pulihkan:

    1. Di Konsol Google Cloud, buka halaman Snapshots.

      Buka Snapshot

    2. Klik tab Instant snapshot.

    3. Di kolom Name, klik nama snapshot instan yang ingin dipulihkan.

  2. Klik Create disk.

  3. Di kolom Name, masukkan nama baru untuk disk.

  4. Opsional: Di kolom Deskripsi, masukkan detail tambahan.

  5. Pastikan Disk source type adalah Instant snapshot.

  6. Pada daftar Source instant snapshot, pilih snapshot instan.

  7. Opsional: Konfigurasikan penyesuaian tambahan untuk disk.

    • Masukkan ukuran: Di kolom Size, tentukan ukuran untuk disk dalam GB. Ukuran harus sama dengan atau lebih besar dari ukuran disk sumber untuk snapshot.
    • Jadwalkan pencadangan: Jika Anda ingin Compute Engine membuat snapshot standar disk baru ini sesuai jadwal, centang kotak Enable snapshot schedule, lalu pilih snapshot jadwal proyek. Jika tidak, hapus centang pada kotak.
  8. Opsional: Untuk mengatur project Anda, tambahkan satu atau beberapa label.

  9. Untuk membuat disk, klik Buat.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Gunakan perintah gcloud beta compute disks create. Argumen yang Anda tentukan bergantung pada apakah Anda membuat disk zonal atau regional.

    Membuat disk zona

    Tentukan zona dengan flag --zone:

    gcloud beta compute disks create DISK_NAME \
         --zone=ZONE \
         --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME
    

    Ganti kode berikut:

    • DISK_NAME: nama disk baru.
    • ZONE: zona untuk disk baru, misalnya, europe-west1-a.
    • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.

    Membuat disk regional

    Tentukan region dengan --region dan zona replikasi target disk baru dengan --replica-zones.

      gcloud beta compute disks create DISK_NAME \
         --region=REGION \
         --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
         --replica-zones=ZONE1,ZONE2
    

    Ganti kode berikut:

    • DISK_NAME: nama disk baru.
    • REGION: region tempat disk regional berada, misalnya: europe-west1.
    • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
    • ZONE1,ZONE2: zona dalam region tempat dua replika disk berada, misalnya: europe-west1-b,europe-west1-c.

REST

Untuk membuat disk zona atau regional dari snapshot instan, gunakan metode disks.insert.

Membuat disk zona

Buat permintaan POST, yang menentukan snapshot instan sumber.

 POST https://compute.googleapis.com/compute/beta/projects/PROJECT/zones/SOURCE_ZONE/disks/insert
{
 "name": "NEW_DISK_NAME",
 "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME"
}

Ganti kode berikut:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.

Membuat disk regional

Buat permintaan POST, dengan menentukan snapshot instan sumber dan zona tempat disk harus direplikasi.


POST https://compute.googleapis.com/compute/beta/projects/PROJECT/region/SOURCE_REGION/disks/insert

{
"name": "NEW_DISK_NAME",
"sourceInstantSnapshot": "projects/PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"replicaZones": [
  "projects/PROJECT/zones/ZONE1",
  "projects/PROJECT/zones/ZONE2"
]
}

Ganti kode berikut:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_REGION: region tempat snapshot instan berada. Disk tersebut dibuat di region ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • ZONE1,ZONE2: zona dalam region untuk dua replika disk, misalnya, europe-west1-b,europe-west1-c.

Respons permintaan API

Jika permintaan POST berhasil, isi respons akan menjadi objek yang dapat Anda polling untuk mendapatkan status pembuatan disk. Lihat Menangani respons API untuk informasi selengkapnya.

Membuat disk dari snapshot instan yang dienkripsi CMEK atau CSEK

Konsol

Jika snapshot instan menggunakan enkripsi default Google atau CMEK, Konsol Google Cloud akan otomatis menyediakan kunci enkripsi saat Anda membuat disk dari snapshot instan. Jika tidak, jika snapshot instan dienkripsi CSEK, Anda harus memberikan kunci enkripsi untuk membuat disk.

Ikuti langkah-langkah di bagian enkripsi yang dikelola Google, yang menentukan kunci enkripsi menggunakan petunjuk ini:

  1. Di bagian Decryption, masukkan kunci enkripsi di kolom Encryption key.
  2. Jika kunci digabungkan dengan kunci RSA publik, pilih Wrapped key.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Gunakan perintah gcloud beta compute disks create.

    Jika disk sumber dienkripsi CMEK, gunakan parameter --kms-key untuk memberikan nama kunci.

    Jika disk sumber dienkripsi CSEK, gunakan parameter --csek-key-file untuk menentukan kunci enkripsi disk sumber.

    CMEK

    Untuk membuat disk zona dari snapshot instan terenkripsi CMEK, gunakan perintah berikut:

         gcloud beta compute disks create NEW_DISK_NAME \
           --zone=SOURCE_ZONE \
           --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
           --kms-key=projects/KMS_PROJECT_NAME/locations/KEYRING_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

    Ganti kode berikut:

    • NEW_DISK_NAME: nama disk baru.
    • SOURCE_ZONE: zona tempat snapshot instan disimpan, misalnya, europe-west1-a.
    • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
    • KMS_PROJECT_NAME: project yang berisi kunci.
    • KEYRING_LOCATION: lokasi key ring tempat kunci tersebut berada. Jika key ring bersifat global, tentukan global. Jika tidak, tentukan nama wilayah tempat key ring berada, misalnya, us-west1.
    • KEY_RING_NAME: nama key ring yang menyertakan kunci, misalnya, key-ring-1.
    • KEY_NAME: nama kunci yang digunakan untuk mengenkripsi disk.

    CSEK

    Untuk membuat disk zona dari snapshot instan yang dienkripsi CSEK, gunakan perintah berikut:

         gcloud beta compute disks create NEW_DISK_NAME \
           --zone=SOURCE_ZONE \
           --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \
           --csek-key-file=PATH_TO_CSEK_JSON_FILE
     

    Ganti kode berikut:

    • NEW_DISK_NAME: nama disk baru.
    • SOURCE_ZONE: zona tempat snapshot instan disimpan, misalnya, europe-west1-a.
    • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
    • CSEK_JSON_FILE: Jalur ke file JSON yang berisi kunci. Lihat contoh format file CSEK.

    Untuk membuat disk regional, ganti flag --zone dalam contoh sebelumnya dengan flag berikut:

    • --region: region untuk disk baru
    • --replica-zones: zona dalam region untuk dua replika disk.

REST

Untuk membuat disk zona atau regional dari snapshot instan yang dienkripsi CMEK atau CSEK, buat permintaan POST ke metode disks.insert menggunakan properti yang tercantum di bagian Enkripsi yang dikelola Google.

Selain itu, berikan kunci enkripsi disk sumber dengan kolom diskEncryptionKey. Properti kolom diskEncryptionKey bergantung pada apakah disk dienkripsi CMEK atau CSEK atau tidak.

Contoh berikut menunjukkan cara membuat disk zona baru untuk setiap jenis enkripsi.

CMEK

Dalam isi permintaan, tentukan nama kunci dengan properti diskEncryptionKey.kmsKeyName:

{
"name": "NEW_DISK_NAME",
"sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"diskEncryptionKey": {
      "kmsKeyName": "projects/KMS_PROJECT/locations/LOCATION/keyRings/KEYRING_LOCATION/cryptoKeys/KEY_NAME"
  }
}

Ganti kode berikut:

  • NEW_DISK_NAME: nama unik untuk disk baru.
  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • KMS_PROJECT: project yang berisi kunci.
  • LOCATION: lokasi key ring tempat kunci tersebut berada. Jika key ring bersifat global, tentukan global. Jika tidak, tentukan nama wilayah tempat key ring berada, misalnya, us-west1.
  • KEY_RING: nama key ring yang menyertakan kunci, misalnya, key-ring-1.
  • KEY: nama kunci yang digunakan untuk mengenkripsi disk.

CSEK

Isi permintaan bergantung pada apakah CSEK yang digunakan untuk mengenkripsi snapshot instan dienkripsi dengan RSA atau tidak.

Untuk menggunakan kunci mentah (dienkripsi non-RSA), tentukan kunci tersebut di properti diskEncryptionKey.rawKey dalam isi permintaan:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/SOURCE_ZONE/disks/insert
{
  "name": "NEW_DISK_NAME",
  "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME,
  "diskEncryptionKey": {
      "rawKey": "RAW_ENCRYPTION_KEY"
  }
}

Ganti nilai berikut dengan nilai yang sesuai:

  • PROJECT: project tempat disk baru akan dibuat.
  • SOURCE_ZONE: zona tempat snapshot instan berada, misalnya, us-central1-a. Disk dibuat di zona ini.
  • NEW_DISK_NAME: nama unik untuk disk baru.
  • SOURCE_INSTANT_SNAPSHOT_NAME: nama snapshot instan sumber.
  • RAW_ENCRYPTION_KEY: Kunci yang digunakan untuk mengenkripsi snapshot instan dan disk sumbernya, misalnya, SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=.

Untuk menggunakan kunci yang dienkripsi RSA, ubah contoh sebelumnya sebagai berikut:

  • Buat permintaan POST ke metode disk.insert versi beta:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/disks/insert
    

  • Tentukan kunci di properti diskEncryptionKey.rsaEncryptedKey dari isi permintaan:

    "diskEncryptionKey": {
     "rsaEncryptedKey": "RSA_ENCRYPTED_KEY"
    }
    

Ganti RSA_ENCRYPTED_KEY dengan kunci terenkripsi Anda.

Respons permintaan API

Jika permintaan POST berhasil, isi respons akan menjadi objek yang dapat Anda polling untuk mendapatkan status pembuatan disk. Lihat Menangani respons API untuk informasi selengkapnya.