Setelan penagihan (layanan)

Ada dua setelan penagihan di layanan Cloud Run:

  • Penagihan berbasis permintaan (default): Instance Cloud Run hanya dikenai biaya saat instance memproses permintaan selama pemrosesan permintaan, startup, dan penonaktifan container. Lihat siklus proses instance untuk mengetahui detail selengkapnya. Setelan ini sebelumnya disebut CPU hanya dialokasikan selama pemrosesan permintaan.

  • Penagihan berbasis instance: Instance Cloud Run ditagih untuk seluruh siklus proses instance, meskipun tidak ada permintaan yang masuk. Penagihan berbasis instance dapat berguna untuk menjalankan tugas latar belakang jangka pendek dan tugas pemrosesan asinkron lainnya. Setelan ini sebelumnya disebut CPU always allocated.

Jika memilih penagihan berbasis permintaan, Anda akan dikenai biaya per permintaan dan hanya saat instance memproses permintaan. Jika memilih penagihan berbasis instance, Anda akan dikenai biaya untuk seluruh siklus proses instance tersebut. Lihat tabel harga Cloud Run untuk mengetahui detailnya.

Pemberi rekomendasi secara otomatis melihat traffic yang diterima oleh layanan Cloud Run Anda selama sebulan terakhir, dan akan merekomendasikan untuk beralih dari penagihan berbasis permintaan ke penagihan berbasis instance, jika ini lebih murah.

Dampak alokasi CPU

Memilih setelan penagihan akan memengaruhi cara CPU dialokasikan.

  • Dengan penagihan berbasis permintaan, CPU hanya dialokasikan selama pemrosesan permintaan.
  • Dengan penagihan berbasis instance, CPU dialokasikan untuk seluruh siklus proses instance container.

Cara memilih setelan penagihan yang sesuai

Memilih setelan penagihan yang sesuai untuk kasus penggunaan Anda bergantung pada beberapa faktor, seperti pola traffic, eksekusi latar belakang, dan biaya, yang masing-masing dijelaskan di bagian berikut.

Pertimbangan pola traffic

  • Penagihan berbasis permintaan direkomendasikan saat traffic yang masuk tidak beraturan, meledak, atau melonjak.
  • Penagihan berbasis instance direkomendasikan saat traffic yang masuk stabil, bervariasi secara perlahan.

Pertimbangan eksekusi latar belakang

Dengan memilih penagihan berbasis instance, CPU akan dialokasikan bahkan di luar pemrosesan permintaan, sehingga Anda dapat menjalankan tugas latar belakang jangka pendek dan pekerjaan pemrosesan asinkron lainnya setelah menampilkan respons. Contoh:

  • Memanfaatkan agen pemantauan seperti OpenTelemetry yang mungkin dianggap dapat berjalan di latar belakang.
  • Menggunakan Go's Goroutines, Node.js async, Java threads, dan Kotlin coroutines.
  • Menggunakan framework aplikasi yang mengandalkan penjadwalan bawaan/fungsionalitas latar belakang.

Instance yang nonaktif, termasuk yang tetap aktif menggunakan instance minimum, dapat dinonaktifkan kapan saja. Jika Anda perlu menyelesaikan tugas yang belum selesai sebelum container dihentikan, Anda dapat gunakan SIGTERM untuk memberi instance masa tenggang 10 detik sebelum dihentikan.

Pertimbangkan untuk menggunakan Cloud Tasks untuk menjalankan tugas asinkron. Cloud Tasks secara otomatis mencoba ulang tugas yang gagal dan mendukung waktu berjalan hingga 30 menit.

Pertimbangan biaya

Jika Anda menggunakan penagihan berbasis permintaan, penagihan berbasis instance dapat lebih hemat biaya jika:

  • Layanan Cloud Run Anda sedang memproses permintaan saat ini dalam jumlah besar dengan kecepatan yang cukup stabil.
  • Anda tidak melihat banyak instance "nonaktif" saat melihat pada metrik jumlah instance.

Anda dapat menggunakan kalkulator harga untuk memperkirakan perbedaan biaya.

Pertimbangan penskalaan otomatis

Cloud Run autoscales jumlah instance container.

Untuk layanan yang ditetapkan ke penagihan berbasis permintaan, Cloud Run akan menskalakan secara otomatis jumlah instance berdasarkan penggunaan CPU hanya selama pemrosesan permintaan.

Untuk layanan yang ditetapkan ke penagihan berbasis instance, Cloud Run akan menskalakan secara otomatis jumlah instance berdasarkan penggunaan CPU selama seluruh siklus proses instance container, kecuali saat menskalakan ke dan dari nol, yang hanya menggunakan permintaan.

Pertimbangan penagihan berbasis instance

Meskipun setelan penagihan ditetapkan ke penagihan berbasis instance, penskalaan otomatis Cloud Run masih berlaku, dan dapat menghentikan instance jika tidak diperlukan untuk menangani traffic masuk atau penggunaan CPU saat ini di luar permintaan. Instance tidak akan pernah menjadi nonaktif selama lebih dari 15 menit setelah memproses permintaan, kecuali jika instance tersebut tetap aktif menggunakan instance minimum.

Menggabungkan penagihan berbasis instance dengan sejumlah instance minimum akan menghasilkan sejumlah instance yang aktif dan berjalan dengan akses penuh ke resource CPU, sehingga memungkinkan kasus penggunaan pemrosesan latar belakang. Saat menggunakan pola ini, Cloud Run menerapkan penskalaan instance meskipun layanan menggunakan CPU di luar permintaan apa pun.

Jika menggunakan pemeriksaan health check, Anda harus menggunakan penagihan berbasis instance untuk setiap pemeriksaan. Lihat pemeriksaan health check container untuk mengetahui detail penagihan.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan APIGoogle Cloud , seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Menetapkan dan memperbarui penagihan

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Jika memilih penagihan berbasis instance, Anda harus menentukan setidaknya memori sebesar 512 MiB.

Anda dapat mengubah setelan penagihan menggunakan konsol Google Cloud , CLI gcloud, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud , buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal.

  4. Pilih setelan penagihan di bagian Penagihan. Pilih penagihan berbasis permintaan agar instance Anda hanya ditagih selama pemrosesan permintaan. Pilih penagihan berbasis instance agar instance Anda dikenai biaya selama masa aktif instance.

  5. Klik Buat atau Deploy.

gcloud

Anda dapat memperbarui setelan penagihan. Untuk menetapkan penagihan berbasis instance untuk layanan tertentu:

gcloud run services update SERVICE --no-cpu-throttling 

Ganti SERVICE dengan nama layanan Anda.

Untuk menetapkan penagihan berbasis permintaan:

gcloud run services update SERVICE --cpu-throttling 

Anda juga dapat menetapkan setelan penagihan selama deployment. Untuk menetapkan setelan penagihan ke penagihan berbasis instance:

gcloud run deploy --image IMAGE_URL --no-cpu-throttling

Untuk menetapkan setelan penagihan ke penagihan berbasis permintaan:

gcloud run deploy --image IMAGE_URL --cpu-throttling

Ganti IMAGE_URL dengan referensi ke image container, contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Perbarui atribut cpu:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/cpu-throttling: 'BOOLEAN'
          name: REVISION

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • BOOLEAN dengan true untuk menetapkan penagihan permintaan, atau false untuk menetapkan penagihan berbasis instance.
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Buat atau perbarui layanan menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Tambahkan kode berikut ke resource google_cloud_run_v2_service di konfigurasi Terraform Anda, di bagian template.containers.resources.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-cpu-allocation"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      resources {
        # If true, garbage-collect CPU when once a request finishes
        cpu_idle = false
      }
    }
  }
}

Melihat Setelan penagihan

Untuk melihat setelan Penagihan saat ini untuk layanan Cloud Run Anda:

Konsol

  1. Di konsol Google Cloud , buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisi.

  4. Di panel detail di sebelah kanan, setelan Penagihan tercantum di bagian tab General.

gcloud

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Temukan setelan Penagihan dalam konfigurasi yang ditampilkan.