Burstable EC2 instance
Pendahuluan mengenai Burstable, bisa dilihat di sini
Jadi :
Burstable adalah kemampuan untuk melakukan sesuatu yang lebih dari biasanya untuk waktu tertentu.
Bagaimana dengan AWS EC2 instance ?
Seperti di artikel sebelumnya, EC2 Instance juga memiliki tipe server/VM yang Burstable.
Yang artinya secara kasar adalah :
- Ada Baseline atau Batas Standar dari penggunaan CPU, dalam bentuk persentase.
- Kita bisa menggunakan CPU lebih dari Baseline kalau terjadi lonjakan request.
- Ada perhitungan biaya kalau ternyata kita menggunakan CPU kurang atau lebih dari Baseline.
Tipe EC2 Instance yang mempunyai karakteristik Burstable adalah tipe :
t (turbo/tiny)Misalnya :
- t3a.large
- t4g.micro
- t2.2xlarge
- dll
Bagaimana detilnya ?
Baiklah, kita masuk ke detilnya.
EC2 instance diatas diatur sedemikian rupa agar bisa memenuhi kasus sbb :
- Ada Baseline atau dasar perhitungan CPU yang dianggap “Pas” bagi kebutuhan kita. Baseline ini dalam bentuk persentase CPU yang biasanya “makin kecil spesifikasi CPU, maka makin kecil persentasenya”
- Sebenarnya biaya yang dibebankan kepada kita adalah biaya Baseline ini dan tetek bengek pengaturannya.
- Kita akan mendapatkan CPU credit setiap kali ternyata penggunaan CPU kita dibawah Baseline.
- CPU credit ini menjadi tabungan kita kalau nantinya terjadi lonjakan permintaan CPU melebihi Baseline yang kita punya.
- Atau boleh dibilang baseline ini menjadi batas biaya/CPU yang kita bayarkan untuk tipe EC2 instance ini.
Hmm.., maksudnya gimana ?
Coba kita lihat table EC2 instance tipe t berikut :
Instance | Baseline | CPU credit /jam | vCPU | Max CPU Credit per hari |
---|---|---|---|---|
t2.nano | 5 % | 3 menit | 1 | 72 => (3 menit x 24) |
t2.medium | 20 % | 24 menit | 2 | 576 => (24 menit x 24) |
t2.large | 30 % | 36 menit | 2 | 864 => (36 menit x 24) |
t2.2xlarge | 17 % | 81.6 menit | 8 | 1958.4 |
t3.large | 30 % | 36 menit | 2 | 864 |
t3.2xlarge | 40 % | 192 menit | 8 | 4608 |
t4g.medium | 20 % | 24 menit | 2 | 576 |
t4g.2xlarge | 40 % | 192 menit | 8 | 4608 |
Misalkan contohnya :
t2.nano (cpu credit 3, baseline 5%, CPU credit 3 menit per jam, vCPU 1)Artinya t3.nano ini :
- Dalam satu jam (saya pakai pemisalan jam, biar mudah dimengerti, karena aslinya claim AWS adalah dalam milidetik bukan jam), maka ada 3 menit waktu yang bisa digunakan untuk pemakaian CPU sebesar 100%
- Artinya kalau CPU dipakai 100% dalam jangka waktu 3 menit dalam rentang 1 jam, maka habislah CPU credit kita.
- Sisanya yang 57 menit, CPU nya mestinya tidak bisa dipakai lagi, karena kredit CPU nya habis.
- Akan tetapi, pada kenyataannya tidak mungkin lonjakan terjadi sebegitu saja, umumnya CPU hampir sepanjang masa berada dalam kisaran 3% - 7% saja.
- Oleh karenanya dilakukan kalkulasi baseline dengan kondisi diatas. Tujuannya agar mendapatkan distribusi penggunaan permenit dari CPU kredit yang didefinisikan
- 3 menit dalam waktu satu jam, artinya adalah 3/60 * 100% = 5 % baseline penggunaan CPU.
- Inilah yang dijadikan dasar untuk baseline tipe burstable ini .
Coba kita lihat yang tipe lainnya :
t3.large (cpu credit 36, baseline 30%, CPU credit 36 menit per jam, vCPU 2)Artinya t3.large ini :
- Dalam satu jam, maka ada 36 menit waktu yang bisa digunakan untuk pemakaian CPU sebesar 100% (untuk 2 vCPU)
- Berarti untuk satu CPU , pemakaiannya hanya 18 menit –> 36 menit dibagi 2 vCPU.
- Artinya kalau 2 vCPU dipakai 100% masing-masingnya dalam jangka waktu 18 menit dalam rentang 1 jam, maka habislah CPU credit kita.
- Sisanya yang 42 menit, CPU nya mestinya tidak bisa dipakai lagi, karena kredit CPU nya habis.
- Akan tetapi, pada kenyataannya tidak mungkin lonjakan terjadi sebegitu saja, umumnya CPU hampir sepanjang masa berada dalam kisaran 25% - 35% saja.
- Oleh karenanya dilakukan kalkulasi baseline dengan kondisi diatas. Tujuannya agar mendapatkan distribusi penggunaan permenit dari CPU kredit yang didefinisikan dan per vCPU yang ada.
- 18 menit dalam waktu satu jam, artinya adalah 18/60 * 100% = 30 % baseline penggunaan CPU.
- Inilah yang dijadikan dasar untuk baseline tipe burstable t3.large ini.
dan seterusnya hal yang sama dilakukan perhitungan untuk tipe EC2 intance tipe t lainnya.
Jadi ?
Jadi dengan burstable instance ini, maka boleh dibilang kita :
- Pay as you required. Atau bayar sesuai kebutuhan dasar, yang direpresentasikan dengan baseline.
- Menabung CPU credit diwaktu sepi.
- Pergunakan tabungan CPU credit diwaktu terjadi lonjakan permintaan CPU.
- belajar gamification/hitung-hitungan biaya dari penggunaan CPU.
Konsepnya :
- Ada Baseline yaitu persentase CPU utilization sebagai biaya dasar yang kita bayar.
- Ada CPU credit yaitu tambahan CPU utilization yang dimungkinkan untuk masing-masing EC2 instance tipe burstable.
- Jika CPU utilization dibawah Baseline, maka akan mendapatkan tambahan CPU credit.
- Jika CPU utilization diatas Baseline, maka akan mengurangi tabungan CPU credit.
- Jika CPU utilization sama dengan Baseline, maka tidak menambah/tidak mengurangi tabungan CPU credit.
Bagaimana kalau tabungan CPU credit nya habis ?
Naah.. bahaya kan ini ?
Tabungan CPU credit habis, mau gimana ?
Ternyata lonjakan permintaan CPU terjadi cukup lama, sehingga tabungan CPU creditnya habis.
Ada 2 strategi tergantung dari konfigurasi tabungan CPU credit dari EC2 instance nya.
- Standar –> kalau tabungan CPU credit nya habis, maka performa EC2 instance akan menurun, dan akan kembali ke Baseline nya, sampai nanti mendapatkan tambahan CPU credit lagi.
- Unlimited –> kalau tabungan CPU creditnya habis, maka kita akan “meminjam” CPU Credit dari hasil kalkulasi rata-rata CPU credit yang biasanya didapatkan dalam waktu 1 hari/24 jam. Nanti kalau lonjakannya selesai, maka CPU credit yang didapatkan akan “mengembalikan” hutang CPU credit yang dipinjam sebelumnya. Istilah ini disebut Surplus Credit.
Untuk yang strategi Unlimited, kalau ternyata Surplus Credit nya juga habis, bagaimana ?
Ya, kalau Surplus Credit nya habis, maka akan kena charges sesuai harga Surplus Credit di AWS.