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 layanan Cloud Run hanya dikenai biaya saat memproses permintaan, saat dimulai, dan saat dihentikan. Lihat siklus proses instance untuk mengetahui detail selengkapnya. Setelan ini sebelumnya disebut CPU hanya dialokasikan selama pemrosesan permintaan.
Penagihan berbasis instance: Instance layanan Cloud Run ditagih untuk seluruh siklus proses setiap 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 always allocated.
Jika 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 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.
Tidak seperti layanan Cloud Run, semua tugas Cloud Run menggunakan penagihan berbasis instance. Kumpulan worker Cloud Run dan instance Cloud Run juga ditagih untuk seluruh siklus proses setiap instance menggunakan SKU harga khusus mereka sendiri. Untuk perbandingan di berbagai jenis resource, lihat Perbandingan resource Cloud Run.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
Saat Anda mengonfigurasi batas pengeluaran Anggaran Penagihan Cloud di konsol Penagihan Cloud atau secara terprogram menggunakan Cloud Billing Budget API, batas tersebut akan otomatis berlaku untuk semua jenis resource Cloud Run di project Anda.
Anda dapat memantau progres batas pengeluaran langsung dari halaman ringkasan konsol Cloud Run. Saat Anda mencapai batas pembelanjaan, Google Cloud jeda semua workload Cloud Run untuk mencegah biaya lebih lanjut pada resource Cloud Run berikut:
- Layanan: layanan yang ada akan gagal menyajikan traffic dan menampilkan error
5xx. - Tugas: eksekusi tugas baru gagal dimulai, dan tugas yang sedang berlangsung gagal diselesaikan.
- Worker pool: semua instance yang ada berhenti memproses tugas.
- Instance: semua instance yang berjalan akan dihentikan, instance baru atau mulai ulang gagal dimulai, dan permintaan ke URL instance akan menampilkan error
5xx.
Jika melebihi batas pembelanjaan, Anda akan menerima notifikasi pemberitahuan dan melihat banner penegakan di konsol Cloud Run. Batas pembelanjaan yang diterapkan akan direset pada awal setiap bulan pada hari pertama siklus penagihan berikutnya, sehingga workload Anda tidak lagi diblokir dan jumlah pembelanjaan ditetapkan ke nol. Jika Anda melebihi batas pengeluaran dan ingin melanjutkan operasi sebelum reset bulanan, sesuaikan atau hapus batas secara manual 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
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 atau 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 menggunakan 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.
Jika workload Anda memerlukan satu instance yang berjalan lama dan terus-menerus selama berjam-jam atau berhari-hari tanpa penskalaan otomatis horizontal, deploy instance Cloud Run, bukan layanan. Tidak seperti instance layanan, yang memperkecil skala setelah waktu tidak ada aktivitas maksimal 15 menit, instance Cloud Run dapat berjalan tanpa gangguan hingga 7 hari dan mendukung kebijakan mulai ulang yang dapat dikonfigurasi. Hal ini membuat instance Cloud Run sangat cocok untuk agen AI pribadi, mesin alur kerja stateful, dan lingkungan pengembangan jarak jauh. Lihat Kapan harus menggunakan instance Cloud Run dan Siklus proses instance Cloud Run untuk mengetahui detailnya.
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.
Jika Anda hanya memerlukan satu instance yang terus berjalan tanpa penskalaan otomatis horizontal, instance Cloud Run dapat lebih murah daripada layanan dengan instance minimum dan penagihan berbasis instance. Instance Cloud Run memiliki SKU harga sendiri dan mendukung model CPU bersama dengan kapasitas burst (vCPU dasar 6,25% dengan burst hingga 100%), sehingga menurunkan biaya berkelanjutan untuk workload singleton yang sebagian besar tidak ada aktivitas.
Pertimbangan penskalaan otomatis
Cloud Run secara default melakukan penskalaan otomatis jumlah instance container.
Untuk layanan yang ditetapkan ke penagihan berbasis permintaan, Cloud Run menskalakan otomatis jumlah instance berdasarkan pemakaian CPU hanya selama pemrosesan permintaan.
Untuk layanan yang ditetapkan ke penagihan berbasis instance, Cloud Run menskalakan otomatis jumlah instance berdasarkan pemanfaatan 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, penskalaan otomatis Cloud Run masih berlaku, dan dapat menghentikan instance jika tidak diperlukan untuk menangani traffic masuk atau pemanfaatan 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.
Gunakan layanan dengan penagihan berbasis instance dan instance minimum saat workload latar belakang atau agen Anda perlu melakukan penskalaan otomatis melebihi satu instance selama beban puncak. Untuk pola latar belakang lainnya, pertimbangkan resource Cloud Run berikut:
- Workload berumur panjang dengan satu instance: Gunakan instance Cloud Run jika Anda hanya memerlukan satu instance dengan kontrol siklus proses mulai, berhenti, dan mulai ulang langsung, serta tanpa penskalaan otomatis.
- Workload berbasis pull non-HTTP: Gunakan pool worker Cloud Run untuk konsumen latar belakang berkelanjutan, seperti worker Pub/Sub atau Kafka, yang tidak memerlukan endpoint HTTP.
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 Anda perlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
- Developer Cloud Run (
roles/run.developer) di layanan Cloud Run - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) pada identitas layanan
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 memilih penagihan berbasis instance, Anda harus menentukan memori minimal 512 MiB.
Anda dapat mengubah setelan penagihan menggunakan konsol Google Cloud , gcloud CLI, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal.
Jika Anda mengonfigurasi layanan yang ada, klik tab Scaling.
Di bagian Penagihan, pilih Berbasis permintaan agar instance Anda hanya dikenai biaya selama pemrosesan permintaan, atau pilih Berbasis instance agar instance Anda dikenai biaya selama seluruh masa aktif instance.
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
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
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:
trueuntuk menetapkan penagihan permintaan, ataufalseuntuk 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 dengan
SERVICE- - Hanya berisi huruf kecil, angka, dan
- - Tidak diakhiri dengan
- - Tidak melebihi 63 karakter
- Dimulai dengan
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Perintah
gcloud run services replacesecara default menggunakan fileservice.yamljika ada.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:Melihat setelan penagihan
Untuk melihat setelan penagihan saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Klik layanan untuk membuka halaman Service details.
Klik tab Scaling untuk menemukan setelan Billing.
gcloud
Jalankan perintah berikut untuk melihat konfigurasi penagihan:
gcloud run services describe SERVICE --format=yaml
Dalam output YAML, temukan setelan
run.googleapis.com/cpu-throttling. Nilaifalsemenunjukkan penagihan berbasis instance, dan jika setelan ini tidak ada, berarti penagihan berbasis permintaan.