Belajar Cloud Computing - Cloud Load Balancing & Auto-Scaling
Episode 8 of 21

Belajar Cloud Computing - Cloud Load Balancing & Auto-Scaling

Merancang arsitektur yang selalu tersedia: multi-AZ tanpa single point of failure, perbedaan load balancer L4 dan L7, hingga auto-scaling yang menyesuaikan kapasitas berdasarkan beban, lengkap dengan contoh perintah CLI AWS.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 5 kita membangun VPC dengan subnet di beberapa AZ, lalu di episode 6 kita mengisinya dengan VM. Namun satu VM yang menangani semua traffic adalah titik rawan: jika ia mati, aplikasi ikut mati. Episode 8 ini menjawab dua pertanyaan besar arsitektur cloud: bagaimana membagikan beban ke banyak mesin, dan bagaimana jumlah mesin itu menyesuaikan diri dengan beban.

Kita akan mulai dari konsep high availability dan no single point of failure, lalu membandingkan load balancer L4 dan L7, memetakan layanan masing-masing provider, dan menutup dengan auto-scaling lengkap contoh CLI AWS.

Konsep: High Availability, Fault Tolerance, dan No Single Point of Failure

Sebelum menyentuh tooling, pahami tiga istilah yang menentukan desain arsitektur:

  • High availability (HA): layanan tetap tersedia meski satu komponen gagal. Mungkin ada penurunan kecil, tapi pengguna tetap bisa memakai aplikasi.
  • Fault tolerance: sistem terus berjalan tanpa degradasi berarti meski terjadi kegagalan komponen.
  • No single point of failure (no SPOF): tidak ada satu komponen yang bila mati akan meruntuhkan seluruh sistem.

Prinsip dasar mencapai ketiganya adalah redundansi lintas AZ. Karena AZ adalah gedung data center yang terpisah fisiknya, menempatkan mesin di minimal dua AZ berarti jika listrik atau jaringan satu gedung padam, gedung lain tetap melayani. Inilah alasan kenapa di episode 5 kita selalu menempatkan subnet di beberapa AZ, bukan satu.

Note

Ukur kesepakatan ketersediaan dengan angka: target uptime 99.9 persen berarti downtime maksimal sekitar 43 menit per bulan; 99.99 persen hanya sekitar 4,3 menit. Semakin tinggi angka sembilan, semakin mahal biaya arsitekturnya. Pilih target yang sesuai dengan bisnis, jangan otomatis mengejar yang tertinggi.

L4 vs L7: Dua Level Load Balancer

Load balancer adalah "pintu masuk tunggal" yang menerima traffic lalu mendistribusikannya ke banyak server. Namun ia bisa bekerja pada dua lapisan yang berbeda:

  • L4 (transport layer) bekerja pada level TCP/UDP. Ia hanya melihat alamat IP dan port tujuan, lalu meneruskan paket ke server belakang. Cepat dan ringan karena tidak perlu membaca isi paket — cocok untuk protokol non-HTTP dan kebutuhan latensi terendah.
  • L7 (application layer) membaca isi HTTP. Ia bisa melakukan routing berdasarkan path (/api ke service A, /assets ke service B), membaca header dan cookies, memutus koneksi TLS, serta melakukan health check berbasis HTTP.
AspekL4 (transport)L7 (application)
Bekerja padaTCP/UDPHTTP/HTTPS
Dasar routingIP + portPath, header, host
Fitur khasLatensi terendahPath routing, SSL termination, health check HTTP
Contoh layananNLB, Azure Load BalancerALB, GCP HTTP(S) LB, Azure Application Gateway

Tip

Analoginya seperti resepsionis gedung. Resepsionis L4 hanya tahu "semua pengunjung naik ke lantai sesuai nomor tujuan". Resepsionis L7 tahu lebih dalam: pengunjung ke lantai 3 yang butuh bagian HR diarahkan ke meja A, yang butuh bagian keuangan ke meja B. Keduanya sah — pilih sesuai seberapa banyak "kecerdasan" routing yang kalian butuhkan.

Komparasi Layanan Load Balancer Big 3

Konsep sama, nama berbeda. Peta lengkapnya:

KebutuhanAWSGCPAzure
HTTP/HTTPS (L7)Application Load BalancerHTTP(S) Load BalancingApplication Gateway
TCP/UDP (L4)Network Load BalancerTCP/UDP Load BalancingLoad Balancer
InternalALB atau NLB internalInternal Load BalancingInternal Load Balancer

Yang patut diperhatikan: karena load balancer adalah pintu masuk tunggal, ia sendiri sebaiknya direplikasi. Di cloud, load balancer biasanya dijalankan sebagai layanan terkelola yang redundan secara internal oleh provider — kalian tidak perlu membangun HA untuk load balancer itu sendiri, hanya memastikan konfigurasinya menyebar ke beberapa AZ.

Auto-Scaling: Kapasitas yang Mengikuti Beban

Redundansi menangani kegagalan, tapi belum menangani lonjakan. Auto-scaling memecahkan masalah itu: jumlah mesin menyesuaikan beban secara otomatis.

  • AWS menyebutnya Auto Scaling Group (ASG), GCP Managed Instance Group (MIG), Azure Virtual Machine Scale Set (VMSS).
  • Konfigurasi intinya tiga angka: minimum (paling sedikit yang selalu jalan), maximum (batas atas), dan desired (target saat ini).
  • Pemicu scale-out/scale-in bisa berupa metrik: CPU utilization, penggunaan RAM, jumlah request, atau panjang antrian. Bisa juga berbasis jadwal — misalnya menaikkan kapasitas sebelum jam sibuk atau flash sale yang bisa diprediksi.

Important

Auto-scaling mengurangi kapasitas saat beban turun, tapi menurunkan kapasitas adalah operasi yang berisiko. Pastikan scale-in tidak pernah mematikan instance yang sedang memproses request penting — gunakan health check yang berbasis aplikasi (misalnya cek HTTP pada endpoint khusus), bukan sekadar "proses hidup". Dan selalu pasang asuransi: jangan biarkan minimum terlalu kecil sehingga satu instance menanggung seluruh traffic.

Bayangkan restoran yang menambah koki saat jam makan siang dan melepasnya saat sepi — dengan tiga aturan sederhana: minimal dua koki selalu ada, maksimal sepuluh koki, dan tambah satu koki jika antrian pembeli di atas batas tertentu. Itulah persis cara kerja auto-scaling.

Praktik dengan AWS CLI

Langkah pertama adalah membuat launch template — cetakan konfigurasi untuk setiap instance baru. Perintah aws ec2 create-launch-template menyimpan cetakan itu di cloud:

Membuat launch template
aws ec2 create-launch-template \
  --launch-template-name web-template \
  --launch-template-data '{
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "t3.medium",
    "KeyName": "lab-key",
    "SecurityGroupIds": ["sg-0abc123"]
  }'

Lalu bentuk Auto Scaling Group yang memakai template tersebut dan menyebar ke beberapa subnet di AZ berbeda — dilakukan lewat aws autoscaling create-auto-scaling-group:

Membuat Auto Scaling Group
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name web-asg \
  --launch-template "LaunchTemplateName=web-template" \
  --min-size 2 --max-size 10 --desired-capacity 3 \
  --vpc-zone-identifier "subnet-0aaa,subnet-0bbb" \
  --health-check-type ELB

Terakhir, pasang kebijakan scaling berbasis target: biarkan cloud menjaga rata-rata CPU di sekitar 60 persen, menambah atau mengurangi instance otomatis:

Scaling policy berbasis CPU
aws autoscaling put-scaling-policy \
  --auto-scaling-group-name web-asg \
  --policy-name cpu-target \
  --policy-type TargetTrackingScaling \
  --target-tracking-configuration '{
    "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" },
    "TargetValue": 60
  }'

Jika target dirasa terlalu agresif atau terlalu longgar, cukup ubah satu angka:

Menyesuaikan target CPU
{
  "PredefinedMetricType": "ASGAverageCPUUtilization",
  "TargetValue": 60, # [!code --]
  "TargetValue": 75 # [!code ++]
}
Satu angka menentukan seberapa cepat scaling bereaksi

Tip

Kombinasikan dua strategi: target tracking untuk lonjakan tak terduga, dan scheduled scaling untuk lonjakan yang bisa diprediksi. Menaikkan kapasitas sebelum jam sibuk mencegah "efek dingin" — instance baru butuh beberapa menit untuk siap menerima traffic, dan jika scale-out baru dimulai saat beban sudah naik, pengguna sudah terlanjur merasakan lambatnya respons.

Penutup

Pada episode 8 ini, kita telah merancang arsitektur yang tangguh: high availability lewat redundansi lintas AZ, tidak ada single point of failure, load balancer L4 dan L7 yang membagi traffic dengan cerdas, serta auto-scaling yang menyesuaikan jumlah mesin dengan beban. Kalian juga sudah melihat contoh nyata membuat launch template, Auto Scaling Group, dan kebijakan scaling lewat AWS CLI.

Kunci yang harus dibawa pulang:

  • Sebar ke beberapa AZ — redundansi adalah fondasi HA, bukan fitur tambahan.
  • L4 untuk kecepatan dan protokol non-HTTP, L7 untuk routing berbasis aplikasi.
  • Auto-scaling butuh tiga angka (min, max, desired) dan metrik yang tepat — plus health check yang benar-benar mencerminkan kesehatan aplikasi.

Aplikasi kalian sekarang sudah bisa tumbuh dan bertahan. Namun database yang mengikutinya belum: men-scalable aplikasi tanpa database yang andal sama saja menambah pintu masuk tanpa memperkuat gudang. Episode 9 berikutnya membahas Relational Managed Databases (RDBMS) — managed versus self-hosted, high availability multi-AZ dengan failover otomatis, hingga SQL terdistribusi cloud-native seperti Aurora dan Spanner.