🎯 Sebab Apa Wujud
Wujud sebab AWS ada kapasiti EC2 LEBIHAN yang terbiar — daripada idle, AWS jual murah (sampai 90% off). Tukarannya AWS boleh ambil balik bila perlu (notis 2 minit). Ini buang kos besar untuk beban yang fault-tolerant / boleh resume — kau bayar harga rendah sebab kau sanggup terima risiko interrupt.
Apa Dia
Guna kapasiti EC2 yang tidak digunakan pada harga sehingga 90% lebih murah dari On-Demand. Tukaran-nya: AWS boleh INTERRUPT (ambil balik) instance bila perlukan kapasiti semula, dengan notis 2 minit sahaja. Sebab tu sesuai untuk beban yang fault-tolerant / boleh resume, BUKAN untuk server kritikal yang stateful.
Macam mana dapat notis interrupt
Notis interrupt 2 minit datang melalui DUA saluran: (1) EventBridge event "EC2 Spot Instance Interruption Warning" (detail-type), dan (2) instance metadata pada instance itu sendiri. Best practice: poll metadata setiap 5 saat. Ada juga Rebalance Recommendation — signal AWAL sebelum notis 2 minit, bagi peluang pindahkan beban lebih cepat. NOTA: kalau interruption behavior = hibernate, kau dapat notis tapi BUKAN 2 minit awal (hibernate mula serta-merta).
Analogi — Spot = tiket kapal terbang "standby"
Rendering diagram…
Spot = tiket standby kapal terbang: kerusi kosong dilelong 90% murah, tapi kalau VIP (pelanggan On-Demand bayar penuh) datang, kau kena turun dengan notis 2 minit. On-Demand = tiket biasa: kerusi hak kau, takde sapa halau. INGAT exam: "fault-tolerant + lowest cost" → Spot (sanggup kena halau); "critical/stateful tak boleh putus" → On-Demand/RI (kerusi terjamin).
Provision Spot dengan resilien (Fleet & Auto Scaling)
Rendering diagram…
EC2 Fleet/Spot Fleet atau ASG Mixed Instances Policy = sebar merentas banyak instance type & AZ supaya kalau satu pool kena ambil balik, yang lain sambung. capacity-optimized = ambil dari pool paling banyak kapasiti (kurang interrupt). price-capacity-optimized = pilihan default disyorkan (imbang murah + kurang interrupt).
Spot interruption behaviors + bila guna apa
| Behavior | Apa jadi bila interrupt | Syarat / nota |
|---|
| Terminate (default) | Instance ditamatkan terus | Default. Beban stateless / boleh start fresh |
| Stop | Instance di-stop, EBS dikekalkan | Request type mesti persistent (Fleet: maintain). Hanya AWS boleh restart bila kapasiti ada balik |
| Hibernate | RAM disimpan ke EBS, resume balik | Dapat notis tapi TIADA 2-minit awal (hibernate mula serta-merta) |
Ingat: Default = terminate. Nak simpan EBS & sambung kerja → stop (persistent/maintain). Nak resume state RAM → hibernate. Soalan "resume work after interruption" → stop/hibernate, bukan terminate.
Fleet — EC2 Fleet vs Spot Fleet vs ASG Mixed Instances Policy
| Pilihan | Apa dia ("Fleet" = sekumpulan instance diurus jadi satu) | Bila guna |
|---|
| EC2 Fleet | Satu request minta kombinasi On-Demand + Spot merentas BANYAK instance type/saiz/AZ. Kawalan penuh, TIADA auto-scaling sendiri | Nak provision kapasiti gabungan sekali-shot (cth HPC/batch besar), tak perlu scale ikut trafik |
| Spot Fleet | Versi lama/awal — fokus urus kumpulan Spot (boleh campur sikit On-Demand) ikut target capacity/bajet | Legacy — AWS sekarang sorong ke EC2 Fleet. Elak untuk projek baru |
| ASG Mixed Instances Policy | Auto Scaling Group campur On-Demand (baseline stabil) + Spot (jimat), naik/turun ikut trafik | 🟢 Paling biasa & disyorkan: nak AUTO-SCALING + jimat Spot serentak |
Ingat: Semua tujuan sama: sebar banyak instance type/AZ supaya tahan interrupt. Nak auto-scaling + campur Spot → ASG Mixed Instances Policy. Nak satu-shot kapasiti gabungan tanpa scaling → EC2 Fleet. Spot Fleet = legacy (EC2 Fleet ganti). INGAT: "Fleet" = pakej borong sekumpulan server campuran diurus sebagai satu.
⚡ Quick Sifir — hafal ni
- ▪Spot = sampai 90% murah, no commitment, TAPI boleh di-interrupt (notis 2 MINIT)
- ▪Notis 2 minit datang via EventBridge event DAN instance metadata (poll ~5 saat)
- ▪Interruption behavior: terminate (default), stop (perlu persistent/maintain), hibernate (tiada 2-min awal)
- ▪Capacity Rebalancing = ganti instance berisiko AWAL sebelum notis 2 minit penuh
- ▪price-capacity-optimized = strategi allocation default disyorkan AWS
- ▪EC2 Fleet/Spot Fleet/ASG Mixed = sebar banyak type+AZ supaya tahan interrupt
- ▪JANGAN Spot untuk: DB stateful, production kritikal, payment service
💡 Exam Scenario
"Batch processing / big data / render farm yang boleh interrupt & resume" → Spot, jimat besar. "Production database / stateful app / payment service yang TAK boleh putus" → JANGAN Spot, guna On-Demand atau RI/Savings Plans. Soalan tekan "fault-tolerant + lowest cost" hampir mesti = Spot.
🪤 Perangkap Soalan
Q: Beban batch big-data yang boleh interrupt & resume, nak kos PALING rendah. Pricing mana?
⚠ Umpan: Reserved Instances / Savings Plans — nampak 'jimat jadi pilih commit', tapi untuk batch fault-tolerant, Spot jauh lebih murah (90% vs 72%) dan interrupt tak jadi masalah.
✓ Betul: Spot Instances — 'fault-tolerant + lowest cost' hampir mesti Spot. Keyword: 'fault-tolerant', 'batch', 'can resume', 'lowest cost'.
Q: Spot workload perlu SAMBUNG kerja (resume state) selepas di-interrupt, bukan start fresh. Interruption behavior mana?
⚠ Umpan: Terminate (default) — biar default, tapi terminate buang instance terus, kerja hilang, kena start dari awal.
✓ Betul: Stop (request persistent/Fleet maintain) untuk kekalkan EBS, atau Hibernate untuk simpan RAM. Keyword: 'resume work after interruption', 'preserve state'.
🧠 Cara Mudah Ingat
- →Notis interrupt = 2 MINIT, dihantar via EventBridge event DAN instance metadata. Poll metadata setiap ~5 saat. (Exam selalu tanya angka 2 minit ni.)
- →Interruption behaviors: terminate (default), stop, hibernate. Stop perlu request persistent / Fleet maintain. Hibernate dapat notis tapi tak ada 2-minit awal.
- →EC2 Fleet & Spot Fleet: minta kapasiti merentas BANYAK instance type, saiz & AZ dalam satu request → lebih tahan interrupt. Spot Fleet boleh campur Spot + On-Demand juga.
- →Auto Scaling Mixed Instances Policy: satu ASG campur On-Demand (baseline stabil) + Spot (jimat). Letak % On-Demand sebagai baseline, selebihnya Spot.
- →Allocation strategy capacity-optimized = ambil Spot dari pool dengan kapasiti paling banyak → kurang kemungkinan interrupt (bagus untuk beban yang mahal kalau interrupt). price-capacity-optimized = default disyorkan AWS (imbang harga + kapasiti).
- →Capacity Rebalancing (rebalance recommendation): ASG/Fleet ganti instance yang BERISIKO TINGGI interrupt secara proaktif, sebelum notis 2 minit penuh.
- →JANGAN guna Spot untuk: database stateful, production kritikal, beban yang tak boleh putus / tak boleh resume. Untuk itu → On-Demand / RI / Savings Plans.
Guna Bila
Batch jobs, fault-tolerant & stateless workloads, flexible timing