Beban tidak pernah datar: promosi besar melonjakkan trafik 10x, malam hari sepi. Kalian mempelajari auto-scaling — scaling groups, target tracking, cooldown, dan kapasitas min/maks — lalu merancang arsitektur multi-AZ high availability yang bangkit dari kegagalan instance tanpa user merasakannya.

Di episode 20 kita memastikan infrastruktur bisa bangkit dari bencana. Sekarang pertanyaan sebaliknya: bagaimana infrastruktur menyesuaikan diri dengan beban yang tidak pernah datar? Bayangkan toko online kalian dibahas media sosial dan trafik melonjak 10x dalam sejam. Tanpa auto-scaling, dua kemungkinan: server kelebihan beban (site down), atau server berlebih (boros — dan episode 16 sudah mengajarkan betapa mahalnya itu).
Episode 21 membahas auto-scaling & reliability: auto-scaling groups, target tracking (scaling berbasis metrik), cooldown, dan kapasitas min/maks. Kalian juga akan merancang arsitektur multi-AZ high availability — sistem yang kehilangan satu instance atau satu AZ tanpa user menyadarinya.
Beban aplikasi web berbentuk gelombang, bukan garis datar: puncak pagi, sepi tengah malam, lonjakan saat promo. Memakai server tetap berarti membayar untuk puncak (mahal, episode 16) atau berharap tidak pernah ada puncak (sombong). Auto-scaling menempatkan kapasitas sedikit di atas kebutuhan aktual, terus-menerus.
Dua bagian yang bekerja bersama:
Konsepnya sama di semua provider — sekelompok instance yang diatur sebagai satu kesatuan:
| Provider | Nama | Ciri khas |
|---|---|---|
| AWS | Auto Scaling Group | Launch template + scaling policies |
| GCP | Managed Instance Group | Instance template + autoscaler |
| Azure | Virtual Machine Scale Set | Instance template + autoscale rules |
Pola pemakaian di AWS:
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name lab-web-asg \
--launch-template LaunchTemplateName=lab-web-lt \
--min-size 2 --max-size 8 --desired-capacity 2 \
--vpc-zone-identifier "subnet-1,subnet-2" \
--availability-zones ap-southeast-1a ap-southeast-1b
aws autoscaling attach-load-balancer-target-groups \
--auto-scaling-group-name lab-web-asg \
--target-group-arns arn:aws:elasticloadbalancing:...:lab-web-tgKunci yang wajib dipahami:
Target tracking adalah pola scaling paling umum: pilih metrik dan target, sistem menyesuaikan instance agar metrik itu terjaga — seperti termostat ruangan. Contoh: jaga CPU average di 60%.
aws autoscaling put-scaling-policy \
--auto-scaling-group-name lab-web-asg \
--policy-name cpu-target-tracking \
--policy-type TargetTrackingScaling \
--target-tracking-configuration file://cpu-policy.jsoncpu-policy.json berisi {"TargetValue": 60.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ASGAverageCPUUtilization"}}.
Kelebihan target tracking: kalian tidak perlu memikirkan berapa instance untuk CPU 60% — sistem menghitungnya dari metrik yang ada. Metrik yang umum: CPU, request per target, atau metrik kustom dari aplikasi (misal panjang antrian — ingat episode 13).
Scaling tidak boleh reaktif berlebihan: instance baru butuh waktu untuk panas (startup, deploy aplikasi), dan metrik akan naik sementara. Cooldown memberi jeda antara aksi scaling agar sistem tidak "goyang" — menambah dan mengurangi instance secara bergantian seperti pendulum. Ada juga scheduled scaling untuk pola yang bisa diprediksi: pasang 5 instance sebelum jam promo, turunkan setelahnya.
Auto-scaling menangani jumlah instance. High availability (HA) menangani lokasi instance: jika satu datacenter (Availability Zone) bermasalah, instance di AZ lain tetap melayani. Pola dasar HA di cloud:
Aturannya:
Prinsip yang menjiwai semuanya: desain untuk kegagalan. Instance dianggap ternak, bukan hewan peliharaan — saat mati, yang lahir pengganti dari template, bukan yang dirawat. Ini juga alasan statelessness penting: instance yang mati tidak membawa data apa pun yang hilang.
Tip
Uji arsitektur HA kalian dengan cara yang menyakitkan tapi jujur: matikan instance secara acak. Di AWS, gunakan ASG dengan AZRebalance — saat AZ melambat, instance dipindahkan otomatis. Latihan "chaos" ringan ini lebih baik daripada penemuan saat produksi nyata (dan nanti menjadi ilmu tersendiri di jalur SRE).
Mari pasang auto-scaling untuk aplikasi lab-ecommerce di tiga AZ:
stress-ng --cpu 4 di semua instance (ingat episode 9), amati ASG menambah instance.aws autoscaling describe-scaling-activities \
--auto-scaling-group-name lab-web-asg \
--query 'Activities[].{Action:Description,Status:StatusCode}'Ketika scale-out berjalan otomatis saat trafik naik, dan instance mati digantikan tanpa disadari user — infrastruktur kalian sudah menyandang dua gelar sekaligus: elastis dan tersedia.
Inti yang harus dibawa pulang:
Di episode 22 selanjutnya kita akan memperluas cakrawala: multi-cloud & hybrid architecture — portabilitas lintas provider, Terraform multi-provider, dan strategi hybrid, lalu membangun infrastruktur yang berjalan di lebih dari satu cloud. Sampai jumpa di episode 22!