Setelan penagihan untuk layanan

Halaman ini menjelaskan setelan penagihan dengan asumsi penggunaan perilaku penskalaan otomatis Cloud Run default . Lihat Perilaku penagihan menggunakan penskalaan manual untuk pertimbangan tambahan jika Anda menggunakan penskalaan manual.

Ada dua setelan penagihan di layanan Cloud Run:

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

  • Penagihan berbasis instance: Instance Cloud Run dikenai biaya untuk seluruh siklus proses instance, bahkan saat 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 selalu dialokasikan.

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

Pemberi rekomendasi 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.

Batas pembelanjaan anggaran

Jika Anda mengonfigurasi Batas pembelanjaan Anggaran Penagihan Cloud spend caps di konsol Penagihan Cloud, batas tersebut akan otomatis berlaku untuk semua jenis resource Cloud Run di project Anda.

Anda dapat memantau progres batas pembelanjaan langsung dari halaman ringkasan konsol Cloud Run. Saat Anda mencapai batas pembelanjaan, Google Cloud semua workload Cloud Run akan dijeda untuk mencegah biaya lebih lanjut pada resource Cloud Run berikut:

  • Layanan: layanan yang ada akan gagal menayangkan traffic dan menampilkan error 5xx.
  • Tugas: eksekusi tugas baru gagal dimulai, dan tugas yang sedang berlangsung gagal diselesaikan.
  • Kumpulan worker: instance yang ada akan berhenti memproses tugas.

Jika Anda melebihi batas pembelanjaan, Anda akan menerima notifikasi pemberitahuan dan melihat banner penegakan di konsol Cloud Run. Untuk melanjutkan operasi, Anda harus menghapus atau menyesuaikan batas di halaman ringkasan konsol Cloud Run.

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

Memilih penagihan berbasis instance akan mengalokasikan CPU 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 atau fungsionalitas latar belakang.

Instance yang tidak ada aktivitas, 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-tugas yang gagal dan mendukung waktu berjalan hingga 30 menit.

Pertimbangan biaya

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

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

Anda dapat menggunakan kalkulator harga untuk memperkirakan perbedaan biaya.

Pertimbangan penskalaan otomatis

Cloud Run secara default melakukan penskalaan otomatis pada jumlah instance container.

Untuk layanan yang ditetapkan ke penagihan berbasis permintaan, Cloud Run melakukan penskalaan otomatis pada jumlah instance berdasarkan pemakaian CPU hanya selama pemrosesan permintaan.

Untuk layanan yang ditetapkan ke penagihan berbasis instance, Cloud Run melakukan penskalaan otomatis pada jumlah instance berdasarkan pemakaian CPU untuk seluruh siklus proses instance container, kecuali saat melakukan penskalaan ke dan dari nol, yang hanya menggunakan permintaan.

Lihat penskalaan manual untuk pertimbangan tambahan jika Anda menggunakan penskalaan manual, bukan fitur penskalaan otomatis Cloud Run.

Pertimbangan penagihan berbasis instance

Meskipun setelan penagihan ditetapkan ke penagihan berbasis instance, Cloud Run penskalaan otomatis masih berlaku, dan mungkin saja menghentikan instance jika tidak diperlukan untuk menangani traffic masuk atau pemakaian 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 aktif dan berjalan dengan akses penuh ke resource CPU, sehingga memungkinkan kasus penggunaan pemrosesan latar belakang. Saat menggunakan pola ini, Cloud Run menerapkan penskalaan otomatis instance meskipun layanan menggunakan CPU di luar permintaan apa pun.

Jika Anda 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 untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:

Jika Anda men-deploy layanan atau fungsi dari kode sumber, Anda juga harus memiliki peran tambahan yang diberikan kepada Anda di project dan akun layanan Cloud Build.

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 Google Cloud API, 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 Anda memilih penagihan berbasis instance, Anda harus menentukan memori minimal 512 MiB .

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

Konsol

  1. Di Google Cloud konsol, buka Cloud Run:

    Buka Cloud Run

  2. Pilih Services dari menu navigasi Cloud Run, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut.

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

  4. Jika Anda mengonfigurasi layanan yang ada, klik tab Scaling.

  5. Di bagian Billing, pilih Request-based agar instance Anda hanya dikenai biaya selama pemrosesan permintaan, atau pilih Instance-based agar instance Anda dikenai biaya untuk seluruh masa aktif instance.

  6. Klik Create untuk layanan baru. Klik View diff &redeploy, lalu Deploy changes untuk layanan yang ada.

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 mengikuti format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang 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 kode berikut:

    • SERVICE: nama layanan Cloud Run Anda
    • BOOLEAN: true untuk menetapkan penagihan berbasis permintaan, atau false untuk menetapkan penagihan berbasis instance.
    • REVISION: 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

    Perintah gcloud run services replace secara default menggunakan file service.yaml jika ada.

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:

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 Google Cloud konsol, buka halaman Services Cloud Run:

    Buka Cloud Run

  2. Klik layanan untuk membuka halaman Service details.

  3. Klik tab Scaling untuk menemukan setelan Billing.

gcloud

  1. Jalankan perintah berikut untuk melihat konfigurasi penagihan:

    gcloud run services describe SERVICE --format=yaml
  2. Di output YAML, temukan setelan run.googleapis.com/cpu-throttling. Nilai false menunjukkan penagihan berbasis instance, dan jika setelan ini tidak ada, berarti penagihan berbasis permintaan.