Cloud Run adalah platform serverless terkelola penuh milik Google Cloud yang memungkinkan Anda mendeploy aplikasi tanpa harus memikirkan pengelolaan infrastruktur. Platform ini sangat fleksibel, dan pilihan tepat untuk berbagai proyek, mulai dari hobi hingga tingkat enterprise.
Dalam artikel ini, saya akan mengulas apa itu Cloud Run, cara kerjanya, kasus penggunaan yang dapat dipecahkan, dan bagaimana perbandingannya dengan solusi serverless lainnya. Saya juga akan menunjukkan langkah demi langkah cara mendeploy aplikasi Cloud Run pertama Anda!
Dan sebelum Anda mulai: Jika Anda benar-benar baru di komputasi awan, saya sarankan mengikuti kursus Introduction to Cloud Computing kami. Kursus ini menguraikan dasar-dasar cloud, menjelaskan istilah kunci seperti skalabilitas dan latensi, serta membahas keunggulan alat cloud dari penyedia seperti GCP.
Apa itu Cloud Run?
Cloud Run adalah platform eksekusi kontainer serverless yang memungkinkan Anda mendeploy aplikasi tanpa perlu khawatir tentang pengelolaan infrastruktur.
Dengan deployment berbasis server tradisional, Anda biasanya harus menyediakan dan memelihara mesin virtual. Cloud Run bekerja sedikit berbeda, dengan mengabstraksi semua itu untuk menawarkan lingkungan yang sepenuhnya terkelola.
Ini dibangun di atas Knative (platform open-source berbasis Kubernetes yang mengaktifkan beban kerja serverless), artinya aplikasi Anda melakukan penskalaan otomatis berdasarkan permintaan. Ketika trafik meningkat, Cloud Run menyalakan lebih banyak instance untuk menanganinya. Saat trafik turun, ia menskalakan turun. Bahkan bisa hingga nol, sehingga Anda tidak membayar apa pun saat aplikasi Anda tidak aktif berjalan.
Cloud Run hemat biaya, tetapi juga sangat fleksibel. Anda dapat mendeploy aplikasi yang ditulis dalam bahasa apa pun dan menggunakan framework atau biner apa pun, selama berjalan di dalam kontainer. Anda bisa bekerja dengan teknologi umum seperti Node.js, Python, Go, Java, atau yang lebih jarang. Secara praktis, itu berarti Cloud Run dapat menjalankan layanan backend, API, beban kerja AI, aplikasi web, dan bahkan pekerjaan batch terjadwal.
Itu tadi sekilas gambaran. Mari kita selami lebih dalam fitur-fitur utama Cloud Run.
Fitur Utama Cloud Run
Kita baru menyebutkan beberapa, namun berikut rangkuman lengkap fitur utama Cloud Run.
Agnostik bahasa dan framework
Salah satu keunggulan terbesar Cloud Run adalah tidak mengunci Anda pada bahasa atau framework tertentu. Selama aplikasi Anda berjalan di dalam kontainer, Anda bisa mendeploy-nya. Jika Anda adalah tim dengan tumpukan teknologi beragam, Anda bisa menggunakan Cloud Run di semua layanan Anda. Satu alat untuk semuanya!
Penskalaan otomatis
Cloud Run melakukan penskalaan horizontal dan dinamis berdasarkan trafik. Jika aplikasi Anda menerima lebih banyak permintaan, Cloud Run otomatis menyalakan lebih banyak instance. Ketika permintaan turun, ia menskalakan turun, bahkan hingga nol jika diperlukan.
Keamanan dan kepatuhan bawaan
Cloud Run hadir dengan HTTPS otomatis untuk semua layanan yang dideploy, identitas layanan yang dikelola Google untuk autentikasi aman, konektivitas VPC untuk jaringan privat, serta sertifikasi kepatuhan bawaan seperti SOC 2, ISO 27001, dan HIPAA (untuk aplikasi kesehatan). Intinya, Anda berada di tangan yang tepat.
Integrasi dengan layanan Google Cloud
Karena Cloud Run adalah bagian dari ekosistem Google Cloud, ia bekerja mulus dengan layanan GCP lainnya. Anda dapat dengan mudah menghubungkannya ke Cloud SQL untuk basis data, melakukan streaming data dengan Pub/Sub, menyimpan file di Cloud Storage, atau menggunakannya bersama BigQuery, Firebase, dan layanan AI/ML.
Dukungan GPU on-demand
Untuk beban kerja AI, Cloud Run kini menawarkan dukungan GPU on-demand. Ini peningkatan besar untuk inferensi machine learning, pemrosesan video, dan komputasi ilmiah, karena memungkinkan Anda menjalankan beban kerja yang dipercepat GPU tanpa mengelola perangkat keras di belakangnya.
Cloud Run Functions: Model Function-as-a-Service (FaaS)
Jika Anda tidak ingin mengelola kontainer penuh, Cloud Run Functions menyediakan cara yang disederhanakan dan berbasis event untuk menjalankan fungsi kecil dengan satu tujuan. Ini mirip dengan AWS Lambda atau Google Cloud Functions tetapi berjalan di infrastruktur Cloud Run.
Cara Kerja Cloud Run: Langkah demi Langkah
Di bagian ini, saya akan memandu Anda mendeploy aplikasi sederhana ke Cloud Run. Saya akan membimbing proses mengontainerisasi aplikasi Anda, mendeploy-nya ke Cloud Run, dan melakukan penskalaan otomatis berdasarkan permintaan.
Kita akan menggunakan Docker untuk mengontainerisasi aplikasi, tetapi itu tidak wajib. Lebih lanjut tentang ini di akhir.
Langkah 1: Siapkan lingkungan Anda
Sebelum mendeploy apa pun, Anda perlu memasang alat-alat berikut:
Google Cloud SDK: Ini adalah antarmuka baris perintah (CLI) yang memungkinkan Anda berinteraksi dengan layanan Google Cloud, termasuk Cloud Run. Anda dapat memasangnya dari sini.
Docker: Jika aplikasi Anda belum dikontainerisasi, Anda memerlukan Docker untuk mengemas aplikasi Anda. Pasang Docker dari sini.
Proyek Google Cloud: Pastikan Anda memiliki proyek Google Cloud. Anda dapat membuatnya dari Google Cloud Console.
Langkah 2: Tulis kode aplikasi Anda
Sekarang, mari kita tulis aplikasi Node.js sederhana “Hello World”.
Buat direktori untuk aplikasi Anda:
mkdir hello-world-app
cd hello-world-appDidukung oleh
Buat file index.js di dalam direktori dengan konten berikut:
const http = require('http');
const requestListener = (req, res) => {
res.writeHead(200);
res.end('Hello, Cloud Run!');
};
const server = http.createServer(requestListener);
server.listen(8080, () => {
console.log('Server is running on port 8080');
});Didukung oleh
Buat package.json untuk mendefinisikan dependensi aplikasi Anda:
Sekarang aplikasi siap, kita lanjut ke proses mengontainerisasinya.
Langkah 3: Mengontainerisasi aplikasi
Buat Dockerfile untuk mendefinisikan image kontainer
Di direktori proyek Anda, buat file bernama “Dockerfile” dengan konten berikut:
# Use the official Node.js image as a base
FROM node:16-alpine
# Set the working directory inside the container
WORKDIR /usr/src/app
# Copy package.json and install dependencies (if any)
COPY package*.json ./
# Copy the rest of the application code
COPY . .
# Expose port 8080 for Cloud Run
EXPOSE 8080
# Start the app
CMD ["node", "index.js"]Didukung oleh
Build image Docker
Jalankan perintah berikut untuk membangun image Docker Anda:
docker build -t gcr.io/your-project-id/hello-world-app .Didukung oleh
Catatan: Ganti your-project-id dengan ID proyek Google Cloud Anda.
Uji image secara lokal
Anda dapat menguji kontainer Docker secara lokal dengan menjalankan:
docker run -p 8080:8080 gcr.io/your-project-id/hello-world-appDidukung oleh
Kunjungi http://localhost:8080 di browser Anda untuk memastikan aplikasi berjalan.
Langkah 4: Push image ke Google Artifact Registry
Aktifkan Artifact Registry untuk proyek Anda
Jika Anda belum mengaktifkan Artifact Registry, jalankan perintah berikut
gcloud services enable artifactregistry.googleapis.comDidukung oleh
Catatan: Anda perlu mengaktifkan penagihan untuk menyelesaikan langkah ini!
Buat repositori di Artifact Registry
Buat repositori Docker baru di Artifact Registry:
gcloud artifacts repositories create hello-world-repo \
--repository-format=docker \
--location=us-central1Didukung oleh
Autentikasi Docker ke Artifact Registry
Konfigurasikan Docker untuk melakukan autentikasi dengan Artifact Registry:
gcloud auth configure-docker us-central1-docker.pkg.devDidukung oleh
Tag image Docker untuk Artifact Registry
Tag image Docker Anda dengan URL repositori Artifact Registry:
docker tag gcr.io/your-project-id/hello-world-app us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-appDidukung oleh
Push image ke Artifact Registry
Push image Docker yang sudah ditag ke repositori Artifact Registry Anda:
docker push us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-appDidukung oleh
Langkah 5: Deploy ke Cloud Run
Setelah image Anda dipush ke Artifact Registry, Anda dapat mendeploy-nya ke Cloud Run langsung dari Artifact Registry.
Deploy image Anda ke Cloud Run menggunakan perintah berikut:
gcloud run deploy hello-world-app \
--image us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app \
--platform managed \
--region us-central1 \
--allow-unauthenticatedDidukung oleh
hello-world-app: Ini adalah nama layanan Cloud Run Anda.
us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app: URL untuk image Anda yang disimpan di Artifact Registry.
--platform managed: Memastikan deployment menggunakan platform terkelola penuh Cloud Run (bukan klaster GKE).
--region us-central1: Tentukan region tempat Cloud Run harus mendeploy layanan.
--allow-unauthenticated: Mengizinkan akses publik ke layanan. Jika Anda memerlukan akses terbatas, Anda dapat menyesuaikan flag ini.
Setelah menjalankan perintah ini, Cloud Run akan mendeploy aplikasi terkontainer Anda dan memberikan URL untuk mengaksesnya.
Dan kita selesai! Lihat di konsol GCP, Anda seharusnya melihat instance baru Anda.
Langkah 6: Pembersihan
Untuk menghindari biaya berkelanjutan, pastikan menghapus layanan Anda setelah selesai melakukan pengujian.
1. Hapus layanan Cloud Run
Jalankan perintah berikut untuk menghapus layanan Cloud Run yang telah dideploy:
gcloud run services delete hello-world-app --region us-central1Didukung oleh
Ini akan menghapus instance Cloud Run tetapi tidak menghapus image kontainer.
2. Hapus image di Artifact Registry
Untuk menghapus image dari Artifact Registry, pertama-tama daftar image:
gcloud artifacts docker images list us-central1-docker.pkg.dev/your-project-id/hello-world-repoDidukung oleh
Lalu, hapus image dengan:
gcloud artifacts docker images delete us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app --delete-tagsDidukung oleh
Sekarang Artifact Registry Anda juga sudah bersih.
3. Hapus repositori Artifact Registry (jika sudah tidak diperlukan)
Jika Anda ingin benar-benar menghapus repositori Artifact Registry, jalankan:
gcloud artifacts repositories delete hello-world-repo --location=us-central1Didukung oleh
Langkah ini hanya diperlukan jika Anda benar-benar sudah selesai dengan repositori tersebut, jika tidak, Anda dapat menggunakannya kembali untuk deployment di masa depan.
4. (Opsional) Hapus proyek Google Cloud
Jika ini adalah proyek uji dan Anda tidak lagi membutuhkannya, Anda dapat menghapus seluruh proyek untuk menghapus semua resource terkait:
Ingat saat saya mengatakan Anda tidak selalu harus mengontainerisasi aplikasi secara manual?
Cloud Run kini mendukung deployment dari source, yang berarti dapat membangun kontainer untuk Anda dari kode sumber menggunakan Cloud Build.
Anda dapat menggunakan perintah:
gcloud run deploy hello-world-app \
--source . \
--region us-central1 \
--allow-unauthenticatedDidukung oleh
Cloud Build secara otomatis mendeteksi bahasa aplikasi Anda (Node.js, Python, Go, Java, dll.), membangun image kontainer untuk Anda dan menyimpannya di Artifact Registry. Cloud Run kemudian mendeploy image yang dibangun seolah-olah Anda membuat kontainer secara manual. Saya sangat merekomendasikan menggunakan ini untuk aplikasi sederhana dengan bahasa yang didukung (Node.js, Python, Go, Java, dll.), tetapi tidak jika Anda memerlukan kontrol penuh atas kontainer (misalnya, dependensi kustom, penyesuaian level OS, build multi-langkah).
Tips Menggunakan Cloud Run secara Efisien
Baik, mendeploy aplikasi ke Cloud Run cukup mudah, tetapi membuatnya berjalan efisien membutuhkan sedikit penyetelan. Saya melalui fase coba-coba saat pertama kali menggunakannya, dan berikut yang saya pelajari:
1. Cold start itu nyata
Terutama jika Anda bekerja dengan image kontainer yang besar. Semakin kecil image Anda, semakin cepat layanan Anda menyala. Menggunakan base image minimal seperti distroless dapat membuat perbedaan besar. Jika Anda membangun aplikasi Python, coba gunakan versi slim dari image resmi. Atau jika Anda tidak terlalu mempermasalahkan biaya, setel jumlah instance minimum ke 1.
2. Variabel terbaik untuk diutak-atik adalah jumlah concurrency permintaan
Cloud Run memungkinkan setiap instance menangani beberapa permintaan secara bersamaan, tetapi default (80 permintaan per kontainer) sering kali bukan jumlah yang optimal. Untuk tugas intensif CPU, saya menemukan bahwa menurunkan concurrency ke 1 atau 2 membuat semuanya jauh lebih mulus. Sebaliknya, API biasanya dapat menangani angka yang lebih tinggi. Semakin tinggi angkanya, semakin sedikit jumlah instance yang Anda butuhkan, dan karenanya semakin kecil biaya yang Anda bayar, jadi sangat layak bereksperimen dengan berbagai nilai untuk menemukan titik manis bagi aplikasi Anda.
3. Tetapkan batas instance Anda!
Sangat membantu ketika seseorang (saya) memutuskan untuk melakukan uji beban dan memulai jumlah permintaan yang konyol. Saya sudah belajar dari kejadian itu agar Anda tidak perlu mengalaminya. Tolong setel jumlah maksimum instance Anda.
4. Pastikan orang yang tepat dapat mengakses instance Anda
Secara default, layanan Cloud Run dapat diakses oleh siapa pun yang memiliki URL, yang bagus untuk demo cepat tetapi tidak untuk produksi. Jika aplikasi Anda tidak ditujukan untuk publik, kunci aksesnya dengan izin IAM.
5. Cloud Logging dan Cloud Trace akan menjadi sahabat Anda
Jika, seperti saya, Anda cenderung men-debug masalah dengan SSH ke mesin virtual, Anda akan kecewa. Log Cloud Run dialirkan langsung ke dasbor Google Cloud, sehingga Anda dapat melihat semuanya di sana. Pastikan Anda menambahkan logging terstruktur ke aplikasi Anda, itu akan membuat pemecahan masalah jauh lebih mudah.
Kasus Penggunaan Cloud Run
Kita telah membahas beberapa kasus penggunaan Cloud Run, seperti menjalankan aplikasi web, API, atau cron job, tetapi jelas masih banyak lagi.
Analisis video dan gambar
Anda dapat mendeploy model pengenalan gambar untuk memproses gambar yang diunggah secara real-time untuk platform media sosial, atau menjalankan tugas transkoding video saat video diunggah. Cloud Run dapat menangani lonjakan permintaan (seperti konten viral) dengan penskalaan otomatis, sekaligus memastikan efisiensi biaya saat permintaan rendah.
Bayangkan Anda membangun sistem yang memantau perilaku pengguna di marketplace online. Dengan memproses event stream dari Pub/Sub atau BigQuery, Anda dapat langsung memicu tindakan berdasarkan aktivitas pengguna, seperti mengirim notifikasi push atau menganalisis tren secara real time. Cloud Run secara otomatis menskalakan naik untuk menangani event masuk saat periode puncak dan menskalakan turun ketika volume stream menurun.
Salah satu kasus penggunaan adalah analisis file log real-time untuk perusahaan besar. Setiap kali file log diunggah ke Cloud Storage, Cloud Run dapat memicu kontainer untuk mengurai file, menjalankan analisis, dan menyimpan hasilnya, sambil menskalakan secara dinamis berdasarkan ukuran file dan kompleksitas tugas pemrosesan.
Cloud Run ideal untuk menangani layanan backend untuk aplikasi IoT. Misalnya, dalam solusi IoT yang melacak data lingkungan dari ribuan sensor, Cloud Run dapat memproses data masuk dari setiap perangkat secara real-time.
Cloud Run mengikuti model pay-as-you-go, artinya Anda hanya membayar resource komputasi yang digunakan saat aplikasi Anda aktif berjalan. Ketika aplikasi Anda tidak menangani permintaan, ia dapat menskalakan turun hingga nol, yang berarti Anda tidak membayar biaya yang tidak perlu.
Rincian Harga
Per Maret 2025, Cloud Run menagih berdasarkan dua faktor utama:
Resource
Biaya
Gratis
CPU
$0.000018 per vCPU-detik
240.000 vCPU-detik/bulan
Memori
$0.000002 per GiB-detik
450.000 GiB-detik/bulan
Harga ini untuk penagihan berbasis instance, tetapi berbeda untuk penagihan berbasis permintaan. Harga di atas dan kuota gratis juga sedikit berbeda tergantung region Anda, jadi periksa halaman resmi Google Cloud untuk angka pasti. Mereka memiliki kalkulator harga untuk membantu Anda memperkirakan biaya, dan juga menawarkan diskon untuk komitmen penggunaan.
Sedikit tips: Trafik dengan layanan Google Cloud lain di region yang sama gratis, jadi cobalah menggunakan Cloud Storage, Cloud SQL, atau Pub/Sub alih-alih layanan eksternal untuk pertukaran data.
Cloud Run vs. Cloud Run Functions
Google menawarkan dua opsi komputasi serverless: Cloud Run dan Cloud Run Functions (sebelumnya Cloud Functions). Keduanya memungkinkan Anda menjalankan kode tanpa mengelola infrastruktur, tetapi ada sedikit perbedaan.
Fitur
Cloud Run
Cloud Functions
Model Eksekusi
Menjalankan aplikasi terkontainer penuh
Menjalankan fungsi individual (model FaaS)
Kontrol Runtime
Bahasa apa pun, framework apa pun, biner kustom
Runtime yang telah ditentukan (Node.js, Python, Go, dll.)
State
Stateless, tetapi dapat mempertahankan koneksi dalam satu permintaan
Stateless, dirancang untuk beban kerja berbasis event
Penskalaan
Skala per instance kontainer
Skala per pemanggilan fungsi
Pemicu
Permintaan HTTP, Pub/Sub, berbasis event
Berbasis event (Pub/Sub, Cloud Storage, HTTP, dll.)
Cold Start
Minimal dengan instance yang dipanaskan sebelumnya
Dapat memiliki jeda yang terlihat saat penskalaan
Terbaik Untuk
API, microservices, layanan backend, beban kerja AI
Fungsi ringan berbasis event, automasi
Kapan Menggunakan Cloud Run
✅ Anda memerlukan kontrol penuh atas runtime dan dependensi.
✅ Anda menjalankan layanan web, API, atau microservice yang menangani permintaan persisten.
✅ Anda ingin mendeploy aplikasi terkontainer yang sudah ada dengan modifikasi minimal.
✅ Anda memerlukan pemrosesan latar belakang atau tugas jangka panjang (seperti inferensi AI, pekerjaan batch).
Kapan Menggunakan Cloud Run Functions
✅ Anda menginginkan fungsi sederhana berbasis event yang terpicu oleh event seperti pesan Pub/Sub atau unggahan Cloud Storage.
✅ Anda menangani operasi berumur pendek seperti mengirim notifikasi, memproses pekerjaan kecil, atau mentransformasi data.
✅ Anda tidak ingin mengelola kontainer dan lebih memilih runtime siap pakai untuk JavaScript, Python, Go, dll.
Anda tidak harus memilih salah satu saja, Anda bisa menggunakan keduanya bersama! Misalnya, backend Cloud Run Anda dapat memicu Cloud Run Functions untuk tugas spesifik seperti mengirim email atau memproses gambar secara asinkron.
Perbandingan dengan Layanan Google Cloud Lain
Kita telah membandingkan Cloud Run dan Cloud Run Functions cukup mendalam, tetapi ada beberapa layanan Google Cloud lain yang patut disebutkan di sini: GKE dan App Engine.
Fitur
Cloud Run
Google Kubernetes Engine (GKE)
App Engine
Jenis Pengelolaan
Serverless terkelola penuh
Klaster Kubernetes yang dikelola sendiri
Platform-as-a-service terkelola penuh
Penskalaan
Penskalaan otomatis, hingga turun ke nol
Penskalaan manual atau otomatis via Kubernetes
Penskalaan otomatis (tetapi tidak hingga nol)
Deployment
Mendeploy kontainer (bahasa apa saja)
Mendeploy kontainer via Kubernetes
Mendeploy kode (runtime tertentu didukung)
Kasus Penggunaan
API, microservices, aplikasi web, pekerjaan batch, AI
Aplikasi kompleks, microservices skala besar, beban kerja ML
Aplikasi web, backend mobile, API
Bahasa yang Didukung
Apa saja (berbasis kontainer)
Apa saja (berbasis kontainer)
Runtime tertentu yang didukung
Tentu ada lebih banyak nuansa di sini, tetapi singkatnya: Jika Anda memerlukan solusi terkontainer yang sepenuhnya terkelola dengan penskalaan otomatis dan fleksibilitas, pilih Cloud Run. Jika Anda membangun aplikasi web dengan konfigurasi minimal, pilih App Engine. Dan jika Anda menginginkan kontrol penuh atas klaster Kubernetes untuk aplikasi berskala besar dan kompleks, pilih GKE.
Kesimpulan
Sekarang setelah Anda mengetahui semuanya tentang Cloud Run, cobalah meluncurkan instance pertama Anda atau lihat layanan Google Cloud lainnya untuk menemukan tingkat kontrol dan automasi yang tepat untuk Anda!
FAQ Cloud Run
Bagaimana cara menangani koneksi database di Cloud Run?⌄
Anda dapat menggunakan Cloud SQL Auth Proxy, mengaktifkan connection pooling (misalnya, PgBouncer untuk PostgreSQL), atau menggunakan database serverless seperti Firestore untuk menghindari batasan koneksi.
Bisakah saya menggunakan domain kustom dengan Cloud Run?⌄
Ya. Atur di konsol Cloud Run pada Kelola Domain Kustom, verifikasi kepemilikan, dan perbarui catatan DNS. SSL disediakan secara otomatis.
Apakah Cloud Run mendukung WebSocket dan koneksi jangka panjang?⌄
Bisa, tetapi instance dapat dimatikan jika idle. Untuk mempertahankan koneksi, setel minimum instance atau gunakan Pub/Sub untuk komunikasi berbasis event.
Bisakah Cloud Run menangani pekerjaan latar belakang?⌄
Tidak secara langsung, karena berbasis permintaan. Gunakan Cloud Tasks, Pub/Sub, atau Workflows untuk memicu dan mengelola pemrosesan latar belakang.
Bisakah saya menjalankan aplikasi stateful di Cloud Run?⌄
Tidak direkomendasikan, karena instance bersifat stateless. Gunakan Cloud Storage, Firestore, atau database eksternal untuk menyimpan state.
Penulis
Marie Fayard
Saya adalah tech lead berorientasi produk yang berspesialisasi dalam mengembangkan startup tahap awal dari prototipe pertama hingga mencapai product-market fit dan seterusnya. Saya sangat penasaran dengan cara orang menggunakan teknologi, dan saya senang bekerja erat dengan para founder serta tim lintas fungsi untuk mewujudkan ide-ide berani. Saat tidak membangun produk, saya mencari inspirasi di berbagai penjuru dunia atau melepas penat di studio yoga.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Cloud Run adalah platform serverless terkelola penuh milik Google Cloud yang memungkinkan Anda mendeploy aplikasi tanpa harus memikirkan pengelolaan infrastruktur. Platform ini sangat fleksibel, dan pilihan tepat untuk berbagai proyek, mulai dari hobi hingga tingkat enterprise.
Dalam artikel ini, saya akan mengulas apa itu Cloud Run, cara kerjanya, kasus penggunaan yang dapat dipecahkan, dan bagaimana perbandingannya dengan solusi serverless lainnya. Saya juga akan menunjukkan langkah demi langkah cara mendeploy aplikasi Cloud Run pertama Anda!
Dan sebelum Anda mulai: Jika Anda benar-benar baru di komputasi awan, saya sarankan mengikuti kursus Introduction to Cloud Computing kami. Kursus ini menguraikan dasar-dasar cloud, menjelaskan istilah kunci seperti skalabilitas dan latensi, serta membahas keunggulan alat cloud dari penyedia seperti GCP.
Apa itu Cloud Run?
Cloud Run adalah platform eksekusi kontainer serverless yang memungkinkan Anda mendeploy aplikasi tanpa perlu khawatir tentang pengelolaan infrastruktur.
Dengan deployment berbasis server tradisional, Anda biasanya harus menyediakan dan memelihara mesin virtual. Cloud Run bekerja sedikit berbeda, dengan mengabstraksi semua itu untuk menawarkan lingkungan yang sepenuhnya terkelola.
Ini dibangun di atas Knative (platform open-source berbasis Kubernetes yang mengaktifkan beban kerja serverless), artinya aplikasi Anda melakukan penskalaan otomatis berdasarkan permintaan. Ketika trafik meningkat, Cloud Run menyalakan lebih banyak instance untuk menanganinya. Saat trafik turun, ia menskalakan turun. Bahkan bisa hingga nol, sehingga Anda tidak membayar apa pun saat aplikasi Anda tidak aktif berjalan.
Cloud Run hemat biaya, tetapi juga sangat fleksibel. Anda dapat mendeploy aplikasi yang ditulis dalam bahasa apa pun dan menggunakan framework atau biner apa pun, selama berjalan di dalam kontainer. Anda bisa bekerja dengan teknologi umum seperti Node.js, Python, Go, Java, atau yang lebih jarang. Secara praktis, itu berarti Cloud Run dapat menjalankan layanan backend, API, beban kerja AI, aplikasi web, dan bahkan pekerjaan batch terjadwal.
Itu tadi sekilas gambaran. Mari kita selami lebih dalam fitur-fitur utama Cloud Run.
Fitur Utama Cloud Run
Kita baru menyebutkan beberapa, namun berikut rangkuman lengkap fitur utama Cloud Run.
Agnostik bahasa dan framework
Salah satu keunggulan terbesar Cloud Run adalah tidak mengunci Anda pada bahasa atau framework tertentu. Selama aplikasi Anda berjalan di dalam kontainer, Anda bisa mendeploy-nya. Jika Anda adalah tim dengan tumpukan teknologi beragam, Anda bisa menggunakan Cloud Run di semua layanan Anda. Satu alat untuk semuanya!
Penskalaan otomatis
Cloud Run melakukan penskalaan horizontal dan dinamis berdasarkan trafik. Jika aplikasi Anda menerima lebih banyak permintaan, Cloud Run otomatis menyalakan lebih banyak instance. Ketika permintaan turun, ia menskalakan turun, bahkan hingga nol jika diperlukan.
Keamanan dan kepatuhan bawaan
Cloud Run hadir dengan HTTPS otomatis untuk semua layanan yang dideploy, identitas layanan yang dikelola Google untuk autentikasi aman, konektivitas VPC untuk jaringan privat, serta sertifikasi kepatuhan bawaan seperti SOC 2, ISO 27001, dan HIPAA (untuk aplikasi kesehatan). Intinya, Anda berada di tangan yang tepat.
Integrasi dengan layanan Google Cloud
Karena Cloud Run adalah bagian dari ekosistem Google Cloud, ia bekerja mulus dengan layanan GCP lainnya. Anda dapat dengan mudah menghubungkannya ke Cloud SQL untuk basis data, melakukan streaming data dengan Pub/Sub, menyimpan file di Cloud Storage, atau menggunakannya bersama BigQuery, Firebase, dan layanan AI/ML.
Dukungan GPU on-demand
Untuk beban kerja AI, Cloud Run kini menawarkan dukungan GPU on-demand. Ini peningkatan besar untuk inferensi machine learning, pemrosesan video, dan komputasi ilmiah, karena memungkinkan Anda menjalankan beban kerja yang dipercepat GPU tanpa mengelola perangkat keras di belakangnya.
Cloud Run Functions: Model Function-as-a-Service (FaaS)
Jika Anda tidak ingin mengelola kontainer penuh, Cloud Run Functions menyediakan cara yang disederhanakan dan berbasis event untuk menjalankan fungsi kecil dengan satu tujuan. Ini mirip dengan AWS Lambda atau Google Cloud Functions tetapi berjalan di infrastruktur Cloud Run.
Cara Kerja Cloud Run: Langkah demi Langkah
Di bagian ini, saya akan memandu Anda mendeploy aplikasi sederhana ke Cloud Run. Saya akan membimbing proses mengontainerisasi aplikasi Anda, mendeploy-nya ke Cloud Run, dan melakukan penskalaan otomatis berdasarkan permintaan.
Kita akan menggunakan Docker untuk mengontainerisasi aplikasi, tetapi itu tidak wajib. Lebih lanjut tentang ini di akhir.
Langkah 1: Siapkan lingkungan Anda
Sebelum mendeploy apa pun, Anda perlu memasang alat-alat berikut:
Langkah 2: Tulis kode aplikasi Anda
Sekarang, mari kita tulis aplikasi Node.js sederhana “Hello World”.
Buat direktori untuk aplikasi Anda:
Buat file index.js di dalam direktori dengan konten berikut:
Buat package.json untuk mendefinisikan dependensi aplikasi Anda:
Sekarang aplikasi siap, kita lanjut ke proses mengontainerisasinya.
Langkah 3: Mengontainerisasi aplikasi
Buat Dockerfile untuk mendefinisikan image kontainer
Di direktori proyek Anda, buat file bernama “Dockerfile” dengan konten berikut:
Build image Docker
Jalankan perintah berikut untuk membangun image Docker Anda:
Catatan: Ganti your-project-id dengan ID proyek Google Cloud Anda.
Uji image secara lokal
Anda dapat menguji kontainer Docker secara lokal dengan menjalankan:
Kunjungi http://localhost:8080 di browser Anda untuk memastikan aplikasi berjalan.
Langkah 4: Push image ke Google Artifact Registry
Aktifkan Artifact Registry untuk proyek Anda
Jika Anda belum mengaktifkan Artifact Registry, jalankan perintah berikut
Catatan: Anda perlu mengaktifkan penagihan untuk menyelesaikan langkah ini!
Buat repositori di Artifact Registry
Buat repositori Docker baru di Artifact Registry:
Autentikasi Docker ke Artifact Registry
Konfigurasikan Docker untuk melakukan autentikasi dengan Artifact Registry:
Tag image Docker untuk Artifact Registry
Tag image Docker Anda dengan URL repositori Artifact Registry:
Push image ke Artifact Registry
Push image Docker yang sudah ditag ke repositori Artifact Registry Anda:
Langkah 5: Deploy ke Cloud Run
Setelah image Anda dipush ke Artifact Registry, Anda dapat mendeploy-nya ke Cloud Run langsung dari Artifact Registry.
Deploy image Anda ke Cloud Run menggunakan perintah berikut:
Setelah menjalankan perintah ini, Cloud Run akan mendeploy aplikasi terkontainer Anda dan memberikan URL untuk mengaksesnya.
Dan kita selesai! Lihat di konsol GCP, Anda seharusnya melihat instance baru Anda.
Langkah 6: Pembersihan
Untuk menghindari biaya berkelanjutan, pastikan menghapus layanan Anda setelah selesai melakukan pengujian.
1. Hapus layanan Cloud Run
Jalankan perintah berikut untuk menghapus layanan Cloud Run yang telah dideploy:
Ini akan menghapus instance Cloud Run tetapi tidak menghapus image kontainer.
2. Hapus image di Artifact Registry
Untuk menghapus image dari Artifact Registry, pertama-tama daftar image:
Lalu, hapus image dengan:
Sekarang Artifact Registry Anda juga sudah bersih.
3. Hapus repositori Artifact Registry (jika sudah tidak diperlukan)
Jika Anda ingin benar-benar menghapus repositori Artifact Registry, jalankan:
Langkah ini hanya diperlukan jika Anda benar-benar sudah selesai dengan repositori tersebut, jika tidak, Anda dapat menggunakannya kembali untuk deployment di masa depan.
4. (Opsional) Hapus proyek Google Cloud
Jika ini adalah proyek uji dan Anda tidak lagi membutuhkannya, Anda dapat menghapus seluruh proyek untuk menghapus semua resource terkait:
Deployment dari source
Ingat saat saya mengatakan Anda tidak selalu harus mengontainerisasi aplikasi secara manual?
Cloud Run kini mendukung deployment dari source, yang berarti dapat membangun kontainer untuk Anda dari kode sumber menggunakan Cloud Build.
Anda dapat menggunakan perintah:
Cloud Build secara otomatis mendeteksi bahasa aplikasi Anda (Node.js, Python, Go, Java, dll.), membangun image kontainer untuk Anda dan menyimpannya di Artifact Registry. Cloud Run kemudian mendeploy image yang dibangun seolah-olah Anda membuat kontainer secara manual. Saya sangat merekomendasikan menggunakan ini untuk aplikasi sederhana dengan bahasa yang didukung (Node.js, Python, Go, Java, dll.), tetapi tidak jika Anda memerlukan kontrol penuh atas kontainer (misalnya, dependensi kustom, penyesuaian level OS, build multi-langkah).
Tips Menggunakan Cloud Run secara Efisien
Baik, mendeploy aplikasi ke Cloud Run cukup mudah, tetapi membuatnya berjalan efisien membutuhkan sedikit penyetelan. Saya melalui fase coba-coba saat pertama kali menggunakannya, dan berikut yang saya pelajari:
1. Cold start itu nyata
Terutama jika Anda bekerja dengan image kontainer yang besar. Semakin kecil image Anda, semakin cepat layanan Anda menyala. Menggunakan base image minimal seperti distroless dapat membuat perbedaan besar. Jika Anda membangun aplikasi Python, coba gunakan versi slim dari image resmi. Atau jika Anda tidak terlalu mempermasalahkan biaya, setel jumlah instance minimum ke 1.
2. Variabel terbaik untuk diutak-atik adalah jumlah concurrency permintaan
Cloud Run memungkinkan setiap instance menangani beberapa permintaan secara bersamaan, tetapi default (80 permintaan per kontainer) sering kali bukan jumlah yang optimal. Untuk tugas intensif CPU, saya menemukan bahwa menurunkan concurrency ke 1 atau 2 membuat semuanya jauh lebih mulus. Sebaliknya, API biasanya dapat menangani angka yang lebih tinggi. Semakin tinggi angkanya, semakin sedikit jumlah instance yang Anda butuhkan, dan karenanya semakin kecil biaya yang Anda bayar, jadi sangat layak bereksperimen dengan berbagai nilai untuk menemukan titik manis bagi aplikasi Anda.
3. Tetapkan batas instance Anda!
Sangat membantu ketika seseorang (saya) memutuskan untuk melakukan uji beban dan memulai jumlah permintaan yang konyol. Saya sudah belajar dari kejadian itu agar Anda tidak perlu mengalaminya. Tolong setel jumlah maksimum instance Anda.
4. Pastikan orang yang tepat dapat mengakses instance Anda
Secara default, layanan Cloud Run dapat diakses oleh siapa pun yang memiliki URL, yang bagus untuk demo cepat tetapi tidak untuk produksi. Jika aplikasi Anda tidak ditujukan untuk publik, kunci aksesnya dengan izin IAM.
5. Cloud Logging dan Cloud Trace akan menjadi sahabat Anda
Jika, seperti saya, Anda cenderung men-debug masalah dengan SSH ke mesin virtual, Anda akan kecewa. Log Cloud Run dialirkan langsung ke dasbor Google Cloud, sehingga Anda dapat melihat semuanya di sana. Pastikan Anda menambahkan logging terstruktur ke aplikasi Anda, itu akan membuat pemecahan masalah jauh lebih mudah.
Kasus Penggunaan Cloud Run
Kita telah membahas beberapa kasus penggunaan Cloud Run, seperti menjalankan aplikasi web, API, atau cron job, tetapi jelas masih banyak lagi.
Analisis video dan gambar
Anda dapat mendeploy model pengenalan gambar untuk memproses gambar yang diunggah secara real-time untuk platform media sosial, atau menjalankan tugas transkoding video saat video diunggah. Cloud Run dapat menangani lonjakan permintaan (seperti konten viral) dengan penskalaan otomatis, sekaligus memastikan efisiensi biaya saat permintaan rendah.
Sumber: Google Cloud
Pemrosesan stream real-time
Bayangkan Anda membangun sistem yang memantau perilaku pengguna di marketplace online. Dengan memproses event stream dari Pub/Sub atau BigQuery, Anda dapat langsung memicu tindakan berdasarkan aktivitas pengguna, seperti mengirim notifikasi push atau menganalisis tren secara real time. Cloud Run secara otomatis menskalakan naik untuk menangani event masuk saat periode puncak dan menskalakan turun ketika volume stream menurun.
Sumber: Google Cloud
Pemrosesan file real-time
Salah satu kasus penggunaan adalah analisis file log real-time untuk perusahaan besar. Setiap kali file log diunggah ke Cloud Storage, Cloud Run dapat memicu kontainer untuk mengurai file, menjalankan analisis, dan menyimpan hasilnya, sambil menskalakan secara dinamis berdasarkan ukuran file dan kompleksitas tugas pemrosesan.
Sumber: Google Cloud
Backend IoT tanpa server
Cloud Run ideal untuk menangani layanan backend untuk aplikasi IoT. Misalnya, dalam solusi IoT yang melacak data lingkungan dari ribuan sensor, Cloud Run dapat memproses data masuk dari setiap perangkat secara real-time.
Sumber: Google Cloud
Harga Google Cloud Run
Cloud Run mengikuti model pay-as-you-go, artinya Anda hanya membayar resource komputasi yang digunakan saat aplikasi Anda aktif berjalan. Ketika aplikasi Anda tidak menangani permintaan, ia dapat menskalakan turun hingga nol, yang berarti Anda tidak membayar biaya yang tidak perlu.
Rincian Harga
Per Maret 2025, Cloud Run menagih berdasarkan dua faktor utama:
Harga ini untuk penagihan berbasis instance, tetapi berbeda untuk penagihan berbasis permintaan. Harga di atas dan kuota gratis juga sedikit berbeda tergantung region Anda, jadi periksa halaman resmi Google Cloud untuk angka pasti. Mereka memiliki kalkulator harga untuk membantu Anda memperkirakan biaya, dan juga menawarkan diskon untuk komitmen penggunaan.
Sedikit tips: Trafik dengan layanan Google Cloud lain di region yang sama gratis, jadi cobalah menggunakan Cloud Storage, Cloud SQL, atau Pub/Sub alih-alih layanan eksternal untuk pertukaran data.
Cloud Run vs. Cloud Run Functions
Google menawarkan dua opsi komputasi serverless: Cloud Run dan Cloud Run Functions (sebelumnya Cloud Functions). Keduanya memungkinkan Anda menjalankan kode tanpa mengelola infrastruktur, tetapi ada sedikit perbedaan.
Kapan Menggunakan Cloud Run
Kapan Menggunakan Cloud Run Functions
Anda tidak harus memilih salah satu saja, Anda bisa menggunakan keduanya bersama! Misalnya, backend Cloud Run Anda dapat memicu Cloud Run Functions untuk tugas spesifik seperti mengirim email atau memproses gambar secara asinkron.
Perbandingan dengan Layanan Google Cloud Lain
Kita telah membandingkan Cloud Run dan Cloud Run Functions cukup mendalam, tetapi ada beberapa layanan Google Cloud lain yang patut disebutkan di sini: GKE dan App Engine.
Tentu ada lebih banyak nuansa di sini, tetapi singkatnya: Jika Anda memerlukan solusi terkontainer yang sepenuhnya terkelola dengan penskalaan otomatis dan fleksibilitas, pilih Cloud Run. Jika Anda membangun aplikasi web dengan konfigurasi minimal, pilih App Engine. Dan jika Anda menginginkan kontrol penuh atas klaster Kubernetes untuk aplikasi berskala besar dan kompleks, pilih GKE.
Kesimpulan
Sekarang setelah Anda mengetahui semuanya tentang Cloud Run, cobalah meluncurkan instance pertama Anda atau lihat layanan Google Cloud lainnya untuk menemukan tingkat kontrol dan automasi yang tepat untuk Anda!