Membuat pemesanan bersama


Dokumen ini menjelaskan cara membuat pemesanan bersama, yaitu pemesanan yang dibagikan ke beberapa project, dan mengelola project di organisasi Anda yang dapat memakai pemesanan bersama.

Pemesanan bersama dapat digunakan oleh project yang menghosting pemesanan (project pemilik) dan oleh project yang memakai pemesanan bersama tersebut (project konsumen). Gunakan pemesanan bersama jika organisasi Anda memiliki beberapa project yang membutuhkan instance mesin virtual (VM) dengan properti sama yang dipesan. Dengan menggunakan pemesanan bersama, Anda dapat meningkatkan pemanfaatan pemesanan dan mengurangi jumlah pemesanan yang perlu dibuat serta dikelola. Untuk mempelajari pemesanan lebih lanjut, lihat Pemesanan resource zona Compute Engine.

Untuk metode pembuatan pemesanan yang lain, lihat halaman berikut:

  • Jika Anda memiliki komitmen 1 tahun atau 3 tahun dalam project saat ini, resource yang dicadangkan Anda akan otomatis menerima diskon abonemen (CUD) yang berlaku. Anda juga dapat membuat dan melampirkan reservasi ke abonemen saat membeli komitmen. Untuk mempelajari lebih lanjut, lihat Melampirkan pemesanan ke komitmen.

  • Untuk membuat pemesanan yang hanya dapat digunakan oleh satu project, lihat Membuat pemesanan untuk satu project.

Sebelum memulai

  • Tinjau persyaratan dan batasan untuk pemesanan.
  • Tinjau persyaratan dan batasan untuk pemesanan bersama.
  • Pastikan project yang Anda gunakan untuk membuat pemesanan bersama telah ditambahkan ke daftar yang diizinkan untuk batasan kebijakan organisasi Project Pemilik Pemesanan Bersama (compute.sharedReservationsOwnerProjects) oleh administrator kebijakan organisasi. Daftar yang diizinkan ini secara default kosong, sehingga Anda tidak dapat membuat pemesanan bersama hingga organisasi memberikan izin ini ke satu atau beberapa project. Untuk detail selengkapnya tentang cara melihat dan mengedit batasan kebijakan organisasi, lihat Mengizinkan dan membatasi project agar tidak membuat dan mengubah pemesanan bersama dalam dokumen ini.
  • 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.

    Terraform

    Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Menginstal Google Cloud CLI.
    2. Untuk initialize gcloud CLI, jalankan perintah berikut:

      gcloud init
    3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login

    Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.

    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

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna membuat reservasi bersama, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran bawaan ini berisi izin yang diperlukan untuk membuat reservasi bersama. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat pemesanan bersama:

  • compute.reservations.create pada project
  • Untuk melihat kebijakan organisasi: orgpolicy.policy.get di organisasi
  • Untuk mengedit kebijakan organisasi: orgpolicy.policy.set di organisasi
  • Untuk menentukan template instance: compute.instanceTemplates.useReadOnly pada template instance

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran yang telah ditetapkan sebelumnya.

Praktik terbaik

Saat membuat pemesanan bersama, praktik terbaik berikut direkomendasikan. Dengan mengikutinya, Anda dapat membantu mengoptimalkan kemudahan pengelolaan dan pemanfaatan pemesanan bersama di organisasi Anda.

  • Meminta project pemilik membuat reservasi bersama, tetapi tidak menggunakannya.
    • Untuk mendistribusikan pengeluaran ke berbagai project, sebaiknya hanya setel agar project konsumen menggunakan reservasi bersama. Project pemilik hanya boleh digunakan untuk membuat reservasi bersama.
    • Project pemilik harus memiliki kuota yang cukup untuk menggandakan resource yang akan dicadangkan. Untuk mengetahui informasi selengkapnya, lihat Persyaratan tambahan untuk reservasi bersama.
  • Minimalkan jumlah project di organisasi yang Anda izinkan untuk membuat reservasi bersama. Anda dapat mengontrolnya melalui batasan kebijakan organisasi Project Owner Reservasi Bersama (compute.sharedReservationsOwnerProjects).
    • Anda hanya dapat mencantumkan pemesanan yang dibuat oleh setiap project. Artinya, reservasi bersama hanya tercantum dalam project pemilik—Anda tidak dapat mencantumkan reservasi yang dibagikan ke setiap project atau mencantumkan semua reservasi bersama di setiap organisasi. Jadi, dengan hanya memiliki beberapa project pemilik, pemantauan dan pengelolaan reservasi bersama Anda menjadi lebih mudah.
    • Batasi pembagian reservasi bersama ke beberapa project hanya untuk mengelola kuota resource yang direservasi dengan lebih mudah.
    • Untuk mengetahui informasi selengkapnya, lihat Mengizinkan dan membatasi project agar tidak membuat dan mengubah reservasi bersama.
  • Minimalkan jumlah reservasi bersama yang terpisah dengan properti VM yang identik.
    • Suatu organisasi dapat memiliki hingga 100 reservasi bersama untuk setiap kombinasi unik dari properti VM. Akibatnya, meminimalkan jumlah reservasi bersama dengan properti VM identik yang Anda buat akan membantu mengurangi batas ini.
    • Memiliki lebih sedikit pemesanan bersama akan meningkatkan kemudahan pengelolaan.
  • Hanya bagikan reservasi antar-project dengan akun Penagihan Cloud yang sama.
    • Batasi setiap reservasi bersama agar hanya dibagikan ke project konsumen yang memiliki akun Penagihan Cloud yang sama dengan project pemilik. Hal ini memudahkan Anda untuk melihat apakah reservasi telah digunakan dan bagaimana penagihannya.
    • Jika Anda mengaktifkan berbagi CUD dan memenuhi syarat untuk menerima CUD di tingkat akun Penagihan Cloud, agar dapat memaksimalkan CUD yang diterima untuk reservasi yang Anda gunakan, batasi reservasi bersama Anda ke akun Penagihan Cloud komitmen tersebut. Dengan melakukan hal ini, Anda dapat mempertahankan penagihan yang konsisten di seluruh project yang membuat dan menggunakan reservasi bersama.
  • Untuk permintaan reservasi pada masa mendatang, tinjau dengan cermat jumlah total VM yang Anda minta.
    • Jika Anda membuat permintaan reservasi pada masa mendatang, pastikan Anda meminta jumlah total VM yang memperhitungkan semua hal berikut:
      • Semua VM yang dicadangkan yang cocok dan sudah ada di masa mendatang.
      • Semua VM cocok tanpa reservasi yang sudah ada di masa mendatang.
      • Setiap reservasi on-demand yang tidak digunakan dan cocok, yang sudah ada di masa mendatang.
      • Peningkatan penggunaan yang ingin Anda reservasi di masa mendatang.

      Misalnya, Anda memerlukan 10 VM tambahan pada tanggal mendatang dan Anda sudah memiliki resource berikut di masa mendatang:

      • 40 VM yang dicadangkan yang cocok
      • 50 VM tanpa reservasi yang cocok

      atau

      • 40 VM yang dicadangkan yang cocok
      • 50 reservasi on demand yang tidak digunakan dan cocok

      Karena penggunaan yang ada pada masa mendatang sudah menambahkan hingga 90 VM dan reservasi yang cocok, dan Anda memerlukan sepuluh VM tambahan, Anda harus menentukan jumlah total 100 dalam permintaan reservasi mendatang.

      Untuk informasi selengkapnya, lihat Menghitung dan menyediakan resource yang dicadangkan.

Mengizinkan dan membatasi project agar tidak membuat dan mengubah pemesanan bersama

Secara default, tidak ada project yang diizinkan untuk membuat atau mengubah pemesanan bersama di organisasi. Tambahkan project ke batasan kebijakan organisasi Project Pemilik Pemesanan Bersama (compute.sharedReservationsOwnerProjects) agar project tersebut dapat membuat dan mengubah pemesanan bersama. Untuk informasi selengkapnya tentang batasan kebijakan organisasi, lihat Pengantar Layanan Kebijakan Organisasi.

Gunakan langkah-langkah berikut untuk melihat dan mengedit batasan kebijakan organisasi Project Pemilik Pemesanan Bersama (compute.sharedReservationsOwnerProjects).

Melihat batasan kebijakan organisasi pemesanan bersama

Untuk melihat project yang diizinkan membuat dan mengubah pemesanan bersama, gunakan Konsol Google Cloud atau gcloud CLI.

Konsol

Ikuti langkah-langkah untuk Melihat kebijakan organisasi menggunakan batasan Project Pemilik Pemesanan Bersama.

gcloud

Untuk melihat project yang diizinkan oleh batasan compute.sharedReservationsOwnerProjects untuk membuat dan mengubah pemesanan bersama:

  1. Download kebijakan untuk organisasi Anda sebagai file bernama policy.yaml, menggunakan perintah gcloud resource-manager org-policies describe:

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
    

    Ganti ORGANIZATION_ID dengan ID organisasi miliki organisasi Anda.

  2. Gunakan editor teks untuk membuka file policy.yaml dan melihat batasan compute.sharedReservationsOwnerProjects. Project yang diizinkan untuk membuat dan mengubah pemesanan bersama tercantum dalam allowedValues-nya:

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/PROJECT_NUMBER_1
      - projects/PROJECT_NUMBER_2
      - projects/PROJECT_NUMBER_3
    ...
    

    dengan PROJECT_NUMBER_1, PROJECT_NUMBER_2, dan PROJECT_NUMBER_3 yang merupakan nomor project dari satu-satunya project di organisasi Anda yang diizinkan untuk membuat pemesanan bersama.

  3. Opsional: Hapus file policy.yaml.

    • Jika Anda menggunakan terminal Linux atau macOS, gunakan perintah berikut:

      rm policy.yaml
      
    • Jika Anda menggunakan terminal Windows, gunakan perintah berikut:

      del policy.yaml
      

Mengedit batasan kebijakan organisasi pemesanan bersama

Untuk mengedit project yang diizinkan membuat dan mengubah pemesanan bersama, gunakan Konsol Google Cloud atau gcloud CLI.

Konsol

Ikuti langkah-langkah untuk Menyesuaikan kebijakan untuk batasan daftar menggunakan batasan Project Pemilik Reservasi Bersama.

gcloud

Untuk mengedit project yang diizinkan oleh batasan compute.sharedReservationsOwnerProjects untuk membuat dan mengubah pemesanan bersama, gunakan salah satu metode berikut:

  • Untuk memberikan izin ke satu project untuk membuat dan mengubah pemesanan bersama, gunakan perintah gcloud resource-manager org-policies allow. Anda dapat mengulangi perintah ini untuk setiap project yang ingin Anda beri izin.

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    Ganti kode berikut:

    • PROJECT_NUMBER: nomor project (bukan project ID) dari project di organisasi yang ingin Anda izinkan untuk membuat dan mengubah pemesanan bersama.
    • ORGANIZATION_ID: ID organisasi milik organisasi Anda.
  • Untuk memberikan atau mencabut izin beberapa project untuk membuat dan mengubah pemesanan bersama, ganti batasan kebijakan organisasi:

    1. Untuk mendownload kebijakan bagi organisasi Anda sebagai file bernama policy.yaml, gunakan perintah gcloud resource-manager org-policies describe:

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
      

      Ganti ORGANIZATION_ID dengan ID organisasi miliki organisasi Anda.

    2. Gunakan editor teks untuk mengubah file policy.yaml agar batasan compute.sharedReservationsOwnerProjects mencantumkan semua project yang ingin Anda izinkan untuk membuat dan mengubah pemesanan bersama dalam allowedValues-nya.

      • Untuk setiap project yang ingin Anda beri izin untuk membuat dan mengubah pemesanan bersama, tambahkan project ke baris baru di allowedValues.
      • Untuk setiap project yang ingin Anda cabut izin pembuatan dan pengubahan pemesanan bersamanya, hapus baris untuk project tersebut.

      Setelah selesai, pastikan file policy.yaml terlihat serupa dengan contoh berikut:

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/PROJECT_NUMBER_1
        - projects/PROJECT_NUMBER_2
        - projects/PROJECT_NUMBER_3
      ...
      

      dengan PROJECT_NUMBER_1, PROJECT_NUMBER_2, dan PROJECT_NUMBER_3 yang merupakan nomor project (bukan project ID) dari semua project di organisasi Anda yang ingin diberi izin untuk membuat dan mengubah pemesanan bersama.

    3. Simpan file policy.yaml dan tutup editor teks.

    4. Untuk memperbarui kebijakan bagi organisasi dengan perubahan Anda, gunakan perintah gcloud resource-manager org-policies set-policy:

      gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
      

      Ganti ORGANIZATION_ID dengan ID organisasi miliki organisasi Anda.

    5. Opsional: Hapus file policy.yaml.

      • Jika Anda menggunakan terminal Linux atau macOS, gunakan perintah berikut:

        rm policy.yaml
        
      • Jika Anda menggunakan terminal Windows, gunakan perintah berikut:

        del policy.yaml
        

Anda mungkin perlu menunggu beberapa menit supaya hasil edit diterapkan.

Membuat pemesanan bersama

Bagian ini menjelaskan cara membuat pemesanan bersama. Setelah Anda membuatnya, pemesanan bersama hanya dapat diubah oleh project pemilik, tetapi resource untuk pemesanan bersama dapat dipakai oleh project pemilik atau project konsumen mana pun.

Untuk menggunakan pemesanan, VM harus memiliki properti yang sama persis dengan pemesanan tersebut. Untuk menentukan properti VM yang ingin Anda pesan, pilih salah satu bagian berikut dalam dokumen ini:

  • Direkomendasikan: Menentukan template instance

    Bagian ini menjelaskan cara menggunakan template instance untuk menentukan properti pemesanan bersama. Dengan menggunakan template instance, Anda dapat menentukan properti pemesanan dan VM yang dapat dipakai pemesanan di tempat yang sama. Namun, karena template bersifat spesifik per project, Anda tidak dapat menggunakan template yang sama untuk membuat VM yang dapat memakai pemesanan di luar project yang membuat pemesanan. Untuk project dengan pemesanan yang sama, Anda harus membuat template serupa dalam project tersebut atau membuat VM dengan menentukan properti secara langsung.

  • Menentukan properti secara langsung

    Bagian ini menjelaskan cara menentukan properti pemesanan bersama secara langsung. Metode ini mengharuskan Anda secara manual memastikan bahwa properti VM dan reservasi Anda sama persis. Setiap properti yang tidak cocok akan mencegah pemakaian.

Secara default, pemesanan dapat otomatis dipakai oleh semua VM yang memiliki properti yang sama persis dengannya. Jika Anda ingin mengontrol pemakaian pemesanan, lakukan satu atau beberapa hal berikut:

Menentukan template instance

Untuk membuat reservasi bersama dengan menentukan template instance, Anda dapat menggunakan Konsol Google Cloud, gcloud CLI, atau REST.

Konsol

Untuk membuat pemesanan bersama dengan menentukan template instance, lakukan hal berikut:

  1. Di Konsol Google Cloud, buka halaman Pemesanan.

    Buka Pemesanan

    Halaman Pemesanan akan muncul.

  2. Klik Buat pemesanan.

    Halaman Buat pemesanan akan muncul.

  3. Di kolom Nama, masukkan nama untuk pemesanan Anda.

  4. Pilih Region dan Zona tempat Anda ingin memesan resource.

  5. Di bagian Share type, lakukan tindakan berikut:

    1. Untuk menentukan pemesanan bersama, klik Shared.

    2. Klik Add projects, lalu pilih project dari organisasi project saat ini yang ingin Anda gunakan dalam pemesanan bersama.

  6. Di bagian Gunakan dengan instance VM, pilih salah satu opsi berikut:

    • Untuk mengizinkan instance VM yang cocok untuk otomatis menggunakan pemesanan ini, klik Use reservation automatically (default).

    • Untuk menggunakan resource reservasi ini hanya saat membuat VM yang cocok dan secara khusus menargetkan reservasi ini berdasarkan nama, klik Select specific reservation.

  7. Di kolom Number of VM instances, masukkan jumlah VM yang ingin Anda reservasi.

  8. Di bagian Machine configuration, lakukan hal berikut:

    1. Untuk menentukan properti VM Anda dari template instance yang ada, pilih Gunakan template instance.

    2. Di kolom Template instance, pilih template instance pilihan Anda. Jika memilih template instance regional, Anda hanya dapat mencadangkan resource di dalam region template instance.

  9. Di bagian Auto-delete, Anda dapat mengaktifkan opsi hapus otomatis agar Compute Engine dapat otomatis menghapus reservasi pada tanggal dan waktu tertentu. Menghapus reservasi secara otomatis dapat berguna untuk menghindari biaya yang tidak perlu saat Anda berhenti menggunakan reservasi.

  10. Untuk membuat pemesanan, klik Buat.

    Mungkin perlu waktu beberapa saat untuk membuat pemesanan bersama. Tindakan ini akan mengalihkan Anda ke halaman Reservasi.

gcloud

Untuk membuat reservasi bersama dengan menentukan template instance, gunakan perintah gcloud compute reservations create.

Untuk membuat reservasi bersama dengan menentukan template instance tanpa flag opsional, jalankan perintah berikut:

gcloud compute reservations create RESERVATION_NAME \
    --project=PROJECT_ID \
    --share-setting=projects \
    --share-with=CONSUMER_PROJECT_IDS \
    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Ganti kode berikut:

  • RESERVATION_NAME: nama pemesanan yang akan dibuat.

  • PROJECT_ID: ID project tempat Anda ingin mencadangkan resource dan lokasi template instance.

  • CONSUMER_PROJECT_IDS: daftar ID project yang dipisahkan koma yang dapat menggunakan reservasi ini, misalnya project-1,project-2. Anda dapat menyertakan hingga 100 project konsumen. Project ini harus berada dalam organisasi yang sama dengan project pemilik. Jangan sertakan project pemilik. Secara default, perangkat sudah diizinkan untuk menggunakan reservasi.

  • LOCATION: lokasi template instance. Tentukan salah satu nilai berikut:

    • Untuk template instance global: global.

    • Untuk template instance regional: regions/REGION. Ganti REGION dengan region tempat template instance berada. Jika menentukan template instance regional, Anda hanya dapat mencadangkan VM di dalam region template instance.

  • INSTANCE_TEMPLATE_NAME: nama template instance yang ada. Jika menentukan template instance, Anda tidak dapat mengganti propertinya saat membuat reservasi. Jika tidak, Anda akan mengalami error .

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan.

  • ZONE: zona tempat memesan resource.

Misalnya, untuk membuat reservasi dengan menentukan template instance global di zona us-central1-a, membagikan reservasi dengan project project-1 dan project-2, serta mencadangkan sepuluh VM yang masing-masing menggunakan jenis mesin standar N2 dengan 4 vCPU, jalankan perintah berikut:

gcloud compute reservations create my-reservation \
    --project=example-project \
    --share-setting=projects \
    --share-with=project-1,project-2 \
    --source-instance-template=projects/example-project/global/example-instance-template \
    --vm-count=10 \
    --zone=us-central1-a

Secara opsional, Anda dapat melakukan satu atau beberapa hal berikut:

  • Untuk menentukan bahwa hanya VM yang secara khusus menargetkan reservasi ini yang dapat menggunakannya, sertakan flag --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Agar Compute Engine dapat menghapus reservasi secara otomatis, pilih salah satu metode berikut:

    • Untuk menghapus reservasi pada tanggal dan waktu tertentu, gunakan perintah gcloud beta compute reservations create dan sertakan flag --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Ganti DELETE_AT_TIME dengan tanggal dan waktu yang diformat sebagai stempel waktu RFC 3339, yang harus seperti berikut:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Ganti kode berikut:

      • YYYY-MM-DD: tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan, yang dipisahkan dengan tanda hubung (-).

      • HH:MM:SS: waktu diformat sebagai jam 2 digit menggunakan waktu 24 jam, menit 2 digit, dan detik 2 digit yang dipisahkan dengan titik dua (:).

      • OFFSET: zona waktu yang diformat sebagai offset Waktu Universal Terkoordinasi (UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), tentukan -08:00. Atau, jika tidak ingin menggunakan offset, tentukan Z.

    • Untuk menghapus reservasi setelah durasi tertentu, gunakan perintah gcloud beta compute reservations create dan sertakan flag --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Ganti DELETE_AFTER_DURATION dengan durasi dalam hari, jam, menit, atau detik. Misalnya, tentukan 30m selama 30 menit, atau 1d2h3m4s untuk 1 hari, 2 jam, 3 menit, dan 4 detik.

REST

Untuk membuat reservasi bersama dengan menentukan template instance, buat permintaan POST ke metode reservations.insert.

Misalnya, untuk membuat reservasi bersama dengan menentukan template instance tanpa kolom opsional apa pun dan membagikan reservasi dengan dua project konsumen, buat permintaan POST berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "shareSettings": {
    "shareType": "SPECIFIC_PROJECTS",
    "projectMap": {
      "CONSUMER_PROJECT_ID_1": {
        "projectId": "CONSUMER_PROJECT_ID_1"
      },
      "CONSUMER_PROJECT_ID_2": {
        "projectId": "CONSUMER_PROJECT_ID_2"
      }
    }
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin mencadangkan resource dan lokasi template instance.

  • ZONE: zona tempat memesan resource.

  • RESERVATION_NAME: nama pemesanan yang akan dibuat.

  • CONSUMER_PROJECT_ID_1 dan CONSUMER_PROJECT_ID_2: ID project yang dapat menggunakan reservasi ini. Anda dapat menyertakan hingga 100 project konsumen. Project ini harus berada dalam organisasi yang sama dengan project pemilik. Jangan sertakan project pemilik. Secara default, layanan ini sudah diizinkan untuk menggunakan reservasi.

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan.

  • LOCATION: lokasi template instance. Tentukan salah satu nilai berikut:

    • Untuk template instance global: global.

    • Untuk template instance regional: regions/REGION. Ganti REGION dengan region tempat template instance berada. Jika menentukan template instance regional, Anda hanya dapat mencadangkan VM di dalam region template instance.

  • INSTANCE_TEMPLATE_NAME: nama template instance yang ada. Jika menentukan template instance, Anda tidak dapat mengganti propertinya saat membuat reservasi. Jika tidak, Anda akan mengalami error .

Misalnya, untuk membuat reservasi untuk sepuluh VM di zona us-central1-a dengan menentukan template instance global, serta membagikan reservasi dengan project project-1 dan project-2, buat permintaan POST berikut:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "shareSettings": {
    "shareType": "SPECIFIC_PROJECTS",
    "projectMap": {
      "project-1": {
        "projectId": "project-1"
      },
      "project-2": {
        "projectId": "project-2"
      }
    }
  },
  "specificReservation": {
    "count": "10",
    "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template"
  }
}

Secara opsional, Anda dapat melakukan satu atau beberapa hal berikut:

  • Untuk menentukan bahwa hanya VM yang secara khusus menargetkan reservasi ini yang dapat menggunakannya, sertakan kolom specificReservationRequired dalam isi permintaan dan tetapkan ke true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Agar Compute Engine dapat menghapus reservasi secara otomatis, pilih salah satu metode berikut:

    • Untuk menghapus reservasi pada tanggal dan waktu tertentu, buat permintaan POST ke metode beta.reservations.insert. Dalam isi permintaan, sertakan kolom deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Ganti DELETE_AT_TIME dengan tanggal dan waktu yang diformat sebagai stempel waktu RFC 3339, yang harus seperti berikut:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Ganti kode berikut:

      • YYYY-MM-DD: tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan, yang dipisahkan dengan tanda hubung (-).

      • HH:MM:SS: waktu diformat sebagai jam 2 digit menggunakan waktu 24 jam, menit 2 digit, dan detik 2 digit yang dipisahkan dengan titik dua (:).

      • OFFSET: zona waktu yang diformat sebagai offset Waktu Universal Terkoordinasi (UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), tentukan -08:00. Atau, jika tidak ingin menggunakan offset, tentukan Z.

    • Untuk menghapus reservasi setelah durasi tertentu, buat permintaan POST ke metode beta.reservations.insert. Dalam isi permintaan, sertakan kolom deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Mengganti DELETE_AFTER_DURATION dengan durasi dalam detik. Misalnya, tentukan 86400 selama 86.400 detik (1 hari).

Menentukan properti VM secara langsung

Untuk membuat reservasi bersama dengan menentukan properti secara langsung, gunakan Google Cloud Console, gcloud CLI, Terraform, atau REST.

Konsol

Untuk membuat reservasi bersama, lakukan langkah berikut:

  1. Di Konsol Google Cloud, buka halaman Pemesanan.

    Buka Pemesanan

    Halaman Reservations akan muncul.

  2. Klik Create reservation.

    Halaman Create a reservation akan muncul.

  3. Di kolom Nama, masukkan nama untuk pemesanan Anda.

  4. Pilih Region dan Zona tempat Anda ingin memesan resource.

  5. Di bagian Share type, lakukan tindakan berikut:

    1. Untuk menentukan pemesanan bersama, klik Shared.

    2. Klik Add projects, lalu pilih project dari organisasi project saat ini yang ingin Anda gunakan dalam pemesanan bersama.

  6. Di bagian Gunakan dengan instance VM, pilih salah satu opsi berikut:

    • Agar VM yang cocok dapat otomatis menggunakan reservasi ini, klik Use reservation automatically (default).

    • Untuk menggunakan resource reservasi ini hanya saat membuat VM yang cocok dan secara khusus menargetkan reservasi ini berdasarkan nama, klik Select specific reservation.

  7. Di kolom Number of VM instances, masukkan jumlah VM yang ingin Anda reservasi.

  8. Di bagian Konfigurasi mesin, pilih Tentukan jenis mesin, lalu tentukan hal berikut:

    1. Di kolom Kelompok mesin, Seri, dan Jenis mesin, pilih kelompok mesin, seri, dan jenis mesin.

    2. Opsional: Untuk menentukan platform CPU dan/atau GPU minimum, lakukan hal berikut:

      1. Untuk meluaskan bagian CPU Platform and GPU, klik peluas .

      2. Opsional: Untuk menentukan platform CPU minimum, dalam daftar CPU Platform, pilih salah satu opsi.

      3. Opsional: Untuk menambahkan GPU, klik Add GPU. Kemudian, di kolom Jenis GPU dan Jumlah GPU, pilih jenis dan jumlah GPU untuk setiap VM.

    3. Opsional: Untuk menambahkan SSD Lokal, lakukan langkah berikut:

      1. Di kolom Number of disks, pilih jumlah SSD Lokal untuk setiap VM.

      2. Di kolom Interface type, pilih antarmuka untuk SSD Lokal.

  9. Di bagian Auto-delete, Anda dapat mengaktifkan opsi hapus otomatis agar Compute Engine dapat otomatis menghapus reservasi pada tanggal dan waktu tertentu. Menghapus reservasi secara otomatis dapat berguna untuk menghindari biaya yang tidak perlu saat Anda berhenti menggunakan reservasi.

  10. Untuk membuat pemesanan, klik Buat.

    Mungkin perlu waktu beberapa saat untuk membuat pemesanan bersama. Tindakan ini akan mengalihkan Anda ke halaman Reservasi.

gcloud

Untuk membuat reservasi bersama, gunakan perintah gcloud compute reservations create.

Untuk membuat reservasi bersama tanpa flag opsional, jalankan perintah berikut:

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID \
    --share-setting=projects \
    --share-with=CONSUMER_PROJECT_IDS \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Ganti kode berikut:

  • RESERVATION_NAME: nama pemesanan yang akan dibuat.

  • MACHINE_TYPE: jenis mesin yang digunakan untuk setiap VM. Tentukan salah satu nilai berikut:

    • Untuk jenis mesin yang telah ditetapkan: MACHINE_FAMILY-standard-CPUS.

    • Untuk jenis mesin kustom: MACHINE_FAMILY-custom-CPUS-MEMORY. Sebelum menentukan jenis mesin kustom, tinjau batasan untuk VM dengan jenis mesin kustom.

    Ganti kode berikut:

    • MACHINE_FAMILY: kelompok mesin.

    • CPUS: jumlah vCPU.

    • MEMORY: total memori untuk VM yang dipesan. Ukuran memori harus kelipatan 256 MB dan harus ditulis dalam satuan MB.

    Misalnya, untuk menentukan jenis mesin kustom N2 dengan 4 vCPU dan memori 5 GB, yaitu 5.120 MB, tentukan n2-custom-4-5120.

  • PROJECT_ID: ID project tempat Anda ingin mencadangkan resource.

  • CONSUMER_PROJECT_IDS: daftar ID project yang dipisahkan koma yang dapat menggunakan reservasi ini, misalnya project-1,project-2. Anda dapat menyertakan hingga 100 project konsumen. Project ini harus berada dalam organisasi yang sama dengan project pemilik. Jangan sertakan project pemilik. Secara default, perangkat sudah diizinkan untuk menggunakan reservasi.

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan.

  • ZONE: zona tempat memesan resource.

Misalnya, untuk membuat reservasi untuk sepuluh VM di zona us-central1-a dengan menentukan template instance global, serta membagikan reservasi dengan project project-1 dan project-2, jalankan perintah berikut:

gcloud compute reservations create my-reservation \
    --machine-type=n2-standard-4 \
    --project=example-project \
    --share-setting=projects \
    --share-with=project-1,project-2 \
    --vm-count=10 \
    --zone=us-central1-a

Secara opsional, Anda dapat melakukan satu atau beberapa hal berikut:

  • Untuk menambahkan unit pemrosesan grafis (GPU) ke setiap VM yang dicadangkan, sertakan flag --accelerator.

    gcloud compute reservations create my-reservation \
        --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
        ...
    

    Ganti kode berikut:

    • NUMBER_OF_ACCELERATORS: jumlah GPU yang akan ditambahkan per VM yang dipesan.

    • ACCELERATOR_TYPE: jenis GPU yang akan ditambahkan ke VM yang dipesan.

    Pastikan jenis mesin yang Anda tentukan dalam reservasi mendukung jenis GPU yang Anda tentukan dan GPU tersedia di zona tempat Anda ingin mencadangkan resource. Jika tidak, pembuatan reservasi akan gagal.

  • Untuk menambahkan satu atau beberapa SSD Lokal ke setiap VM yang dicadangkan, sertakan satu atau beberapa flag --local-ssd. Anda dapat menentukan hingga 24 SSD Lokal. Setiap SSD Lokal berukuran 375 GB.

    Misalnya, untuk menentukan dua SSD Lokal saat membuat reservasi, sertakan dua tanda --local-ssd.

    gcloud compute reservations create my-reservation \
        --local-ssd=size=375,interface=INTERFACE_1 \
        --local-ssd=size=375,interface=INTERFACE_2 \
        ...
    

    Ganti INTERFACE_1 dan INTERFACE_2 dengan jenis antarmuka yang Anda inginkan untuk digunakan oleh setiap SSD Lokal. Tentukan salah satu nilai berikut:

    • Untuk antarmuka disk NVME: nvme.

    • Untuk antarmuka disk SCSI: scsi.

    Pastikan jenis mesin yang ditentukan untuk VM yang dicadangkan mendukung antarmuka disk yang dipilih. Jika tidak, pembuatan reservasi akan gagal. Untuk mengetahui informasi selengkapnya, lihat cara memilih antarmuka disk.

  • Agar VM yang dicadangkan menggunakan platform CPU minimum tertentu, bukan platform CPU default zona, sertakan flag --min-cpu-platform.

    gcloud compute reservations create my-reservation \
        --min-cpu-platform="MIN_CPU_PLATFORM" \
        ...
    

    Ganti MIN_CPU_PLATFORM dengan platform CPU minimum. Untuk memastikan platform CPU tersedia di zona tempat Anda memesan resource, lihat platform CPU yang tersedia berdasarkan zona.

  • Untuk menentukan bahwa hanya VM yang secara khusus menargetkan reservasi ini yang dapat menggunakannya, sertakan flag --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Agar Compute Engine dapat menghapus reservasi secara otomatis, pilih salah satu metode berikut:

    • Untuk menghapus reservasi pada tanggal dan waktu tertentu, gunakan perintah gcloud beta compute reservations create dan sertakan flag --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Ganti DELETE_AT_TIME dengan tanggal dan waktu yang diformat sebagai stempel waktu RFC 3339, yang harus seperti berikut:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Ganti kode berikut:

      • YYYY-MM-DD: tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan, yang dipisahkan dengan tanda hubung (-).

      • HH:MM:SS: waktu diformat sebagai jam 2 digit menggunakan waktu 24 jam, menit 2 digit, dan detik 2 digit yang dipisahkan dengan titik dua (:).

      • OFFSET: zona waktu yang diformat sebagai offset Waktu Universal Terkoordinasi (UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), tentukan -08:00. Atau, jika tidak ingin menggunakan offset, tentukan Z.

    • Untuk menghapus reservasi setelah durasi tertentu, gunakan perintah gcloud beta compute reservations create dan sertakan flag --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Ganti DELETE_AFTER_DURATION dengan durasi dalam hari, jam, menit, atau detik. Misalnya, tentukan 30m selama 30 menit, atau 1d2h3m4s untuk 1 hari, 2 jam, 3 menit, dan 4 detik.

Terraform

Untuk membuat pemesanan, gunakan resource Terraform google_compute_reservation. Untuk menetapkan pemesanan bersama, tentukan blok share_settings:

  • Tetapkan kolom share_type ke SPECIFIC_PROJECTS.
  • Di blok project_map, tentukan project ID dari project yang ingin Anda gunakan dalam pemesanan bersama.

Untuk informasi selengkapnya tentang cara menggunakan Terraform, baca artikel Menggunakan Terraform dengan Google Cloud.

REST

Untuk membuat reservasi bersama, buat permintaan POST ke metode reservations.insert.

Misalnya, untuk membuat reservasi bersama tanpa kolom opsional apa pun dan berbagi reservasi dengan dua project konsumen, buat permintaan POST berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "shareSettings": {
    "shareType": "SPECIFIC_PROJECTS",
    "projectMap": {
      "CONSUMER_PROJECT_ID_1": {
        "projectId": "CONSUMER_PROJECT_ID_1"
      },
      "CONSUMER_PROJECT_ID_2": {
        "projectId": "CONSUMER_PROJECT_ID_2"
      }
    }
  },
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin mencadangkan resource.

  • ZONE: zona tempat memesan resource.

  • RESERVATION_NAME: nama pemesanan yang akan dibuat.

  • CONSUMER_PROJECT_ID_1 dan CONSUMER_PROJECT_ID_2: ID project yang dapat menggunakan reservasi ini. Anda dapat menyertakan hingga 100 project konsumen. Project ini harus berada dalam organisasi yang sama dengan project pemilik. Jangan sertakan project pemilik. Secara default, layanan ini sudah diizinkan untuk menggunakan reservasi.

  • NUMBER_OF_VMS: jumlah VM yang akan dipesan.

  • MACHINE_TYPE: jenis mesin yang digunakan untuk setiap VM. Tentukan salah satu nilai berikut:

    • Untuk jenis mesin yang telah ditetapkan: MACHINE_FAMILY-standard-CPUS.

    • Untuk jenis mesin kustom: MACHINE_FAMILY-custom-CPUS-MEMORY. Sebelum menentukan jenis mesin kustom, tinjau batasan untuk VM dengan jenis mesin kustom.

    Ganti kode berikut:

    • MACHINE_FAMILY: kelompok mesin.

    • CPUS: jumlah vCPU.

    • MEMORY: total memori untuk VM yang dipesan. Ukuran memori harus kelipatan 256 MB dan harus ditulis dalam satuan MB.

    Misalnya, untuk menentukan jenis mesin kustom N2 dengan 4 vCPU dan memori 5 GB, yaitu 5.120 MB, tentukan n2-custom-4-5120.

Misalnya, untuk membuat reservasi dengan menentukan template instance global di zona us-central1-a, membagikan reservasi dengan project project-1 dan project-2, serta mencadangkan sepuluh VM yang masing-masing menggunakan jenis mesin standar N2 dengan 4 vCPU, buat permintaan POST berikut:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "shareSettings": {
    "shareType": "SPECIFIC_PROJECTS",
    "projectMap": {
      "project-1": {
        "projectId": "project-1"
      },
      "project-2": {
        "projectId": "project-2"
      }
    }
  },
  "specificReservation": {
    "count": "10",
    "instanceProperties": {
      "machineType": "n2-standard-4",
    }
  }
}

Secara opsional, Anda dapat melakukan satu atau beberapa hal berikut:

  • Untuk menambahkan unit pemrosesan grafis (GPU) ke setiap VM yang dicadangkan, sertakan kolom guestAccelerators dalam isi permintaan.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "guestAccelerators": [
            {
              "acceleratorCount": NUMBER_OF_ACCELERATORS,
              "acceleratorType": "ACCELERATOR_TYPE"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Ganti kode berikut:

    • NUMBER_OF_ACCELERATORS: jumlah GPU yang akan ditambahkan per VM yang dipesan.

    • ACCELERATOR_TYPE: jenis GPU yang akan ditambahkan ke VM yang dipesan.

    Pastikan jenis mesin yang Anda tentukan dalam reservasi mendukung jenis GPU yang Anda tentukan dan GPU tersedia di zona tempat Anda ingin mencadangkan resource. Jika tidak, pembuatan reservasi akan gagal.

  • Untuk menambahkan satu atau beberapa SSD Lokal ke setiap VM yang dicadangkan, sertakan kolom localSsds dalam isi permintaan. Anda dapat menentukan hingga 24 SSD Lokal. Setiap SSD Lokal berukuran 375 GB.

    Misalnya, untuk menentukan dua SSD Lokal saat membuat reservasi, tentukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "localSsds": [
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_2"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Ganti INTERFACE_1 dan INTERFACE_2 dengan jenis antarmuka yang Anda inginkan untuk digunakan oleh setiap SSD Lokal. Tentukan salah satu nilai berikut:

    • Untuk antarmuka disk NVME: NVME.

    • Untuk antarmuka disk SCSI: SCSI.

    Pastikan jenis mesin yang ditentukan untuk VM yang dicadangkan mendukung antarmuka disk yang dipilih. Jika tidak, pembuatan reservasi akan gagal. Untuk mengetahui informasi selengkapnya, lihat cara memilih antarmuka disk.

  • Agar VM yang dicadangkan menggunakan platform CPU minimum tertentu, bukan platform CPU default zona, sertakan kolom minCpuPlatform dalam isi permintaan.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "minCpuPlatform": "MIN_CPU_PLATFORM",
          ...
        },
        ...
      }
    }
    

    Ganti MIN_CPU_PLATFORM dengan platform CPU minimum. Untuk memastikan platform CPU tersedia di zona tempat Anda memesan resource, lihat platform CPU yang tersedia berdasarkan zona.

  • Untuk menentukan bahwa hanya VM yang secara khusus menargetkan reservasi ini yang dapat menggunakannya, sertakan kolom specificReservationRequired dalam isi permintaan dan tetapkan ke true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Agar Compute Engine dapat menghapus reservasi secara otomatis, pilih salah satu metode berikut:

    • Untuk menghapus reservasi pada tanggal dan waktu tertentu, buat permintaan POST ke metode beta.reservations.insert. Dalam isi permintaan, sertakan kolom deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Ganti DELETE_AT_TIME dengan tanggal dan waktu yang diformat sebagai stempel waktu RFC 3339, yang harus seperti berikut:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Ganti kode berikut:

      • YYYY-MM-DD: tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan, yang dipisahkan dengan tanda hubung (-).

      • HH:MM:SS: waktu diformat sebagai jam 2 digit menggunakan waktu 24 jam, menit 2 digit, dan detik 2 digit yang dipisahkan dengan titik dua (:).

      • OFFSET: zona waktu yang diformat sebagai offset Waktu Universal Terkoordinasi (UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), tentukan -08:00. Atau, jika tidak ingin menggunakan offset, tentukan Z.

    • Untuk menghapus reservasi setelah durasi tertentu, buat permintaan POST ke metode beta.reservations.insert. Dalam isi permintaan, sertakan kolom deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Mengganti DELETE_AFTER_DURATION dengan durasi dalam detik. Misalnya, tentukan 86400 selama 86.400 detik (1 hari).

Pemecahan masalah

Pelajari cara memecahkan masalah pembuatan reservasi.

Langkah selanjutnya