Mengelola traffic dan muatan untuk workload Anda di Google Cloud

Last reviewed 2024-11-20 UTC

Saat Anda menjalankan stack aplikasi pada resource yang the terdistribusi di cloud, traffic jaringan harus dirutekan secara efisien ke resource yang tersedia di beberapa lokasi. Bagian dari panduan keandalan infrastruktur Google Cloud ini menjelaskan teknik pengelolaan traffic dan beban yang dapat Anda gunakan untuk membantu meningkatkan keandalan workload cloud Anda.

Perencanaan kapasitas

Untuk memastikan aplikasi Anda yang di-deploy di Google Cloud memiliki resource infrastruktur yang memadai, Anda harus memperkirakan kapasitas yang diperlukan, dan mengelola kapasitas yang di-deploy. Bagian ini memberikan panduan untuk membantu Anda merencanakan dan mengelola kapasitas.

Memperkirakan pemuatan aplikasi

Saat memperkirakan muatan, pertimbangkan faktor-faktor seperti jumlah pengguna dan tingkat aplikasi dapat menerima permintaan. Dalam perkiraan, pertimbangkan tren muatan historis, variasi musiman, lonjakan muatan selama peristiwa khusus, dan pertumbuhan yang didorong oleh perubahan bisnis seperti perluasan ke geografi baru.

Memperkirakan persyaratan kapasitas

Berdasarkan arsitektur deployment Anda dan mempertimbangkan tujuan performa dan keandalan aplikasi Anda, perkirakan jumlah resource Google Cloud yang diperlukan untuk menangani beban yang diharapkan. Misalnya, jika Anda berencana menggunakan grup instance (MIG) terkelola Compute Engine, tentukan ukuran setiap MIG, jenis mesin VM, serta jumlah, jenis, dan ukuran persistent disk. Anda dapat menggunakan Kalkulator Harga Google Cloud untuk memperkirakan biaya resource Google Cloud.

Merencanakan redundansi yang memadai

Saat Anda memperkirakan persyaratan kapasitas, berikan redundansi yang memadai untuk setiap komponen stack aplikasi. Misalnya, untuk mencapai redundansi N+1, setiap komponen dalam stack aplikasi harus memiliki setidaknya satu komponen redundan di luar jumlah minimum yang diperlukan untuk menangani perkiraan pemuatan .

Membandingkan aplikasi

Jalankan pengujian muatan untuk menentukan efisiensi resource aplikasi Anda. Efisiensi resource adalah hubungan antara muatan pada aplikasi dan resource seperti CPU dan memori yang digunakan aplikasi. Efisiensi resource aplikasi dapat memburuk jika muatannya sangat tinggi, dan efisiensinya dapat berubah dari waktu ke waktu. Lakukan uji muatan untuk kondisi pemuatan normal dan puncak, lalu ulangi pengujian tolok ukur pada interval reguler.

Mengelola kuota

Kuota layanan Google Cloud adalah batas per project, yang membantu Anda mengontrol pemakaian resource cloud. Kuota memiliki dua jenis: Kuota resource adalah resource maksimum yang dapat Anda buat, seperti jumlah cluster Google Kubernetes Engine (GKE) regional di suatu wilayah. Kuota kapasitas membatasi jumlah permintaan API yang dapat dikirim ke layanan dalam periode tertentu. Kuota dapat berupa zonal, regional, atau global. Tinjau kuota resource dan kuota kapasitas API saat ini untuk layanan yang akan digunakan dalam project Anda. Pastikan kuota cukup untuk kapasitas yang Anda butuhkan. Jika diperlukan, Anda dapat meminta lebih banyak kuota.

Mencadangkan kapasitas komputasi

Untuk memastikan kapasitas resource Compute Engine tersedia saat diperlukan, Anda dapat membuat reservasi. Reservasi memberikan kapasitas yang pasti di zona tertentu untuk jumlah VM yang ditentukan dari jenis mesin yang Anda pilih. Reservasi dapat bersifat khusus untuk satu project, atau dibagikan di beberapa project. Untuk mengetahui informasi selengkapnya tentang reservasi, termasuk pertimbangan penagihan, lihat Reservasi resource zona Compute Engine.

Memantau pemanfaatan, dan menilai kembali persyaratan secara berkala

Setelah Anda men-deploy resource yang diperlukan, pantau pemakaian kapasitas. Anda mungkin menemukan peluang untuk mengoptimalkan biaya dengan menghapus resource yang tidak ada aktivitas. Tinjau ulang persyaratan kapasitas secara berkala, dan pertimbangkan perubahan apa pun pada perilaku aplikasi, tujuan performa dan keandalan, beban pengguna, serta anggaran IT Anda.

Penskalaan otomatis

Saat Anda menjalankan aplikasi di resource yang didistribusikan di beberapa lokasi, aplikasi tersebut akan tetap tersedia selama pemadaman di salah satu lokasi. Selain itu, redundansi membantu memastikan pengguna mengalami perilaku aplikasi yang konsisten. Misalnya, saat ada lonjakan muatan, resource yang berlebihan akan memastikan aplikasi terus berperforma pada tingkat yang dapat diprediksi. Namun, jika beban pada aplikasi rendah, redundansi dapat mengakibatkan penggunaan resource cloud tidak efisien.

Misalnya, komponen keranjang belanja di aplikasi e-commerce mungkin perlu memproses pembayaran untuk 99,9% pesanan dalam waktu 200 milidetik setelah konfirmasi pesanan. Untuk memenuhi persyaratan ini selama periode pemuatan tinggi, Anda dapat menyediakan kapasitas penyimpanan dan komputasi redundan. Namun, saat muatan pada aplikasi rendah, sebagian kapasitas yang disediakan mungkin tetap tidak terpakai atau kurang dimanfaatkan. Untuk menghapus resource yang tidak digunakan, Anda perlu memantau pemanfaatan dan menyesuaikan kapasitas. Dengan penskalaan otomatis, Anda dapat mengelola kapasitas cloud dan mempertahankan tingkat ketersediaan yang diperlukan tanpa overhead operasional untuk mengelola resource redundan. Saat muatan pada aplikasi Anda meningkat, penskalaan otomatis membantu meningkatkan ketersediaan aplikasi dengan menyediakan resource tambahan secara otomatis. Selama periode beban rendah, penskalaan otomatis menghapus resource yang tidak digunakan, dan membantu mengurangi biaya.

Layanan Google Cloud tertentu, seperti Compute Engine, memungkinkan Anda mengonfigurasi penskalaan otomatis untuk resource yang Anda sediakan. Layanan terkelola seperti Cloud Run dapat menskalakan kapasitas secara otomatis tanpa Anda perlu mengonfigurasi apa pun. Berikut adalah contoh layanan Google Cloud yang mendukung penskalaan otomatis. Ini bukan merupakan daftar lengkap.

  • Compute Engine: MIG memungkinkan Anda menskalakan aplikasi stateless yang di-deploy di VM Compute Engine secara otomatis agar sesuai dengan kapasitas muatan saat ini. Untuk mengetahui informasi selengkapnya, lihat Penskalaan otomatis grup instance.
  • GKE: Anda dapat mengonfigurasi cluster GKE untuk otomatis mengubah ukuran kumpulan node agar sesuai dengan muatan saat ini. Untuk informasi selengkapnya, lihat Autoscaler cluster. Untuk cluster GKE yang Anda sediakan dalam mode Autopilot, GKE secara otomatis menskalakan node dan workload berdasarkan traffic.
  • Cloud Run: Layanan yang Anda sediakan di Cloud Run akan diskalakan secara otomatis ke jumlah instance container yang diperlukan untuk menangani muatan saat ini. Jika aplikasi tidak memiliki beban, layanan akan otomatis menskalakan jumlah instance container menjadi nol. Untuk mengetahui informasi selengkapnya, lihat Tentang penskalaan otomatis instance container.
  • Fungsi Cloud Run: Setiap permintaan ke suatu fungsi ditetapkan ke instance fungsi. Jika volume permintaan masuk melebihi jumlah instance fungsi yang ada, fungsi Cloud Run akan otomatis memulai instance baru dari fungsi tersebut. Untuk mengetahui informasi selengkapnya, lihat Lingkungan eksekusi fungsi Cloud Run.
  • Bigtable: Saat membuat cluster di instance Bigtable, Anda dapat mengonfigurasi cluster untuk diskalakan secara otomatis. Bigtable memantau muatan penyimpanan dan CPU, serta menyesuaikan jumlah node dalam cluster untuk mempertahankan target tingkat pemanfaatan yang Anda tentukan. Untuk informasi selengkapnya, lihat Penskalaan otomatis bigtable.
  • Dataproc Serverless: Saat Anda mengirimkan workload batch Apache Spark, Dataproc Serverless akan secara dinamis menskalakan resource workload, seperti jumlah eksekutor, untuk menjalankan beban kerja secara efisien. Untuk mengetahui informasi selengkapnya, lihat Dataproc Serverless untuk penskalaan otomatis Spark.

Load balancing

Load balancing membantu meningkatkan keandalan aplikasi dengan mengarahkan traffic hanya ke resource yang tersedia dan dengan memastikan bahwa setiap resource tidak berlebihan.

Pertimbangkan rekomendasi desain terkait keandalan berikut saat memilih dan mengonfigurasi load balancer untuk deployment cloud Anda.

Traffic internal load balancing

Konfigurasikan load balancing untuk traffic antara tingkat stack aplikasi, tidak hanya untuk traffic antara klien eksternal dan aplikasi. Misalnya, dalam stack aplikasi web 3 tingkat, Anda dapat menggunakan load balancer internal untuk komunikasi yang andal tingkat web dan aplikasi.

Memilih jenis load balancer yang sesuai

Untuk melakukan load balancing pada traffic eksternal ke aplikasi yang didistribusikan di beberapa region, Anda dapat menggunakan load balancer global atau beberapa load balancer regional. Untuk mengetahui informasi selengkapnya, lihat Manfaat dan risiko load balancing global untuk deployment multi-region.

Jika backend berada di satu region dan Anda tidak memerlukan fitur load balancing global, Anda dapat menggunakan load balancer regional, yang tahan terhadap gangguan zona.

Saat memilih jenis load balancer, pertimbangkan faktor lain selain ketersediaan, seperti kontrol geografis atas penghentian TLS, performa, biaya, dan jenis traffic. Untuk mengetahui informasi selengkapnya, lihat Memilih load balancer.

Mengonfigurasi health check

Penskalaan otomatis membantu memastikan bahwa aplikasi Anda memiliki resource infrastruktur yang memadai untuk menangani beban saat ini. Namun, bahkan ketika resource infrastruktur yang memadai tersedia, aplikasi atau bagiannya mungkin tidak responsif. Misalnya, semua VM yang menghosting aplikasi Anda mungkin berada dalam status RUNNING. Tetapi software aplikasi yang di-deploy di beberapa VM mungkin mengalami error. Health check load balancing memastikan bahwa load balancer hanya merutekan traffic aplikasi ke backend yang responsif. Jika backend Anda adalah MIG, pertimbangkan untuk mengonfigurasi lapisan tambahan health check untuk mengotomatiskan VM yang tidak tersedia. Saat autohealing dikonfigurasi untuk MIG, VM yang tidak tersedia akan dihapus secara proaktif, dan VM baru akan dibuat.

Pembatasan kapasitas

Terkadang, aplikasi Anda mungkin mengalami peningkatan beban yang cepat atau berkelanjutan. Jika aplikasi tidak didesain untuk menangani beban yang bertambah, aplikasi atau resource yang digunakannya mungkin akan gagal, sehingga membuat aplikasi tidak tersedia. Peningkatan muatan mungkin disebabkan oleh permintaan berbahaya, seperti serangan Distributed Denial-of-Service (DDoS) berbasis jaringan. Lonjakan muatan secara tiba-tiba juga dapat terjadi karena alasan lain seperti error konfigurasi pada software klien. Untuk memastikan aplikasi Anda dapat menangani muatan yang berlebihan, pertimbangkan untuk menerapkan mekanisme pembatasan kapasitas yang sesuai. Misalnya, Anda dapat menetapkan kuota untuk jumlah permintaan API yang dapat diterima layanan Google Cloud.

Teknik pembatasan kapasitas juga dapat membantu mengoptimalkan biaya infrastruktur cloud Anda. Misalnya, dengan menetapkan kuota level project untuk resource tertentu, Anda dapat membatasi penagihan yang dapat dikenakan oleh project untuk resource tersebut.

Network Service Tier

Dengan Network Service Tiers Google Cloud, Anda dapat mengoptimalkan konektivitas antara sistem di internet dan workload Google Cloud Anda. Untuk aplikasi yang melayani pengguna secara global dan memiliki backend di lebih dari satu region, pilih Paket Premium. Traffic dari internet memasuki jaringan Google berperforma tinggi di titik kehadiran (PoP) yang terdekat dengan sistem pengiriman. Dalam jaringan Google, traffic dirutekan dari PoP entri ke resource Google Cloud yang sesuai, misalnya VM Compute Engine. Lalu lintas keluar dikirim melalui jaringan Google, keluar di PoP yang terdekat dengan tujuan. Metode pemilihan rute ini membantu memperbaiki persepsi ketersediaan pengguna dengan mengurangi jumlah hop jaringan antara pengguna dan PoP terdekat.