0

Apa itu EC2 (Elastic Compute Cloud) pada Cloud AWS?

Apa itu EC2 AWS.

EC2 merupakan layanan dari AWS yang fokusnya pada komputasi. Dengan EC2 kita bisa membuat instance/VPS, image (AMI), Elastic Block Store (EBS), autoscaling, loadbalancing, network & security.

Di artikel ini saya akan jelaskan based on pengalaman saya menggunakan EC2. Region yang saya pakai disini adalah region singapore.

1. Instance

Instance sama dengan VPS (Virtual Private Server). Kita bisa membuat server sesuai dengan spek yang diinginkan.

Instance memiliki istilah type dan size.

  • Type digunakan untuk mengelompokkan instance sesuai kebutuhan pemakaian. Contoh untuk pemakaian umum bisa gunakan general purpose. Untuk CPU yang besar bisa gunakan compute optimized. Dan untuk kebutuhan RAM yang besar bisa gunakan memory optimized.
  • Size digunakan untuk mengelompokkan ukuran RAM, CPU, Storage dan bandwith. Contoh instance dengan size t2.medium akan mendapatkan 2vCPU, 4GB RAM, Storage EBS, dan network dengan performa rendah hingga sedang.

Antara type dan size saling berhubungan, type merupakan induk dan size merupakan anak.

  • general purpose (instance type)
    • instance size: t2.medium, t2.large, dll
  • compute optimized (instance type)
    • intance size: c4.large, c4.xlarge, dll
  • memory optimized (instance type)
    • instance size: r5n.large, r5n.xlarge, dll

Kita bisa gunakan general purpose untuk aplikasi/website. Sejauh ini saya menggunakan general purpose dengan instance t2.medium untuk menyimpan website dan aman hingga sekarang aksesnya.

Untuk compute optimized bisa digunakan untuk aplikasi yang butuh CPU tinggi. Namun saya belum bisa kasih contoh karena saya belum pernah menggunakan instance type ini.

Sedangkan memory optimized digunakan untuk software yang butuh RAM besar. Contoh saya menggunakan database MySQL karena saya butuh innoDB buffer yang besar yang diload di RAM.

Saat membuat instance, kita bisa tentukan mau pakai Operating System apa. Apakah Ubuntu, Mac, WIndows, Redhat, Suse, Debian kita tinggal pilih saja. Banyak OS yang disupport oleh instance.

Kemudian untuk dapat connect ke instancenya, kita harus membuat key pair terlebih dahulu dalam bentuk file .pem or .ppk (private key). Sebagai contoh misalkan kita membuat instance dengan OS Ubuntu maka saat login ke instancenya harus menggunakan user (default) ubuntu dan file.pem. Masing-masing OS mempunyai username defaultnya sendiri, kalian bisa cek user defaultnya disini.

Untuk biaya pemakaian instance (on demand), Instance akan dikenakan biaya bila instance dijalankan (status running). Jika tidak dinyalakan (status stopped) maka instance tidak dikenakan biaya.

2. Images (AMI)

Image (AMI – Amazon Machine Image) saya analogikan seperti aplikasi yang dikemas dalam bentuk portable (exe) yang bisa dicopy dan dijalankan di komputer lain. Cuma bedanya Image (AMI) ada dilevel OS, artinya operating systemnya yang dikemas dibuat portable dan kemudian bisa dijalankan dilingkungan cloud AWS.

Sebagai contoh kita ingin memindahkan instance / VPS yang ada di region singapore ke region jakarta. Maka kita buat perlu buat imagesnya dulu dari instance tersebut. Setelah imagenya jadi maka bisa dicopy ke region jakarta. Di region jakarta kita cukup buat instance baru dan load image tersebut ke instancenya. Setelah itu instance akan up dan bisa digunakan.

Contoh lainnya, Images (AMI) bisa digunakan sebagai base image pada autoscaling. Jadi ketika aplikasi kita tiba-tiba menerima traffic tinggi, maka autoscaler akan menambah instance baru dan me-load base image tersebut ke instance. Setelah itu instance siap menerima traffic.

Jadi bisa disimpulkan, kegunaan image (AMI) ada 2 (yang saya tahu):

  1. Untuk migrasi instance ke region lain
  2. Untuk base image pada autoscaling

3. Elastic Block Store

Merupakan storage untuk instance. Misal kita buat instance baru, maka storagenya akan menggunakan EBS ini.

EBS memiliki beberapa tipe, yaitu gp2, gp3, io1, io2, dll. Saya tidak akan bahas banyak disini, karena saya hanya menggunakan 2 tipe saja, yaitu gp2 dan io2.

  1. gp2
    Saya biasa menggunakan OS ubuntu dan otomatis gp2 terpilih secara default. gp2 sudah ssd. Max throughputnya adalah 250MB/s. Lumayan kencang. Aplikasi (website) saya taruh di ubuntu dan baca tulis / IO nya masih aman sejauh ini, tidak ada kendala.
  2. io2
    Storage tipe ini saya gunakan untuk keperluan sharing. Artinya ada 2 instance yang bisa mengakses ke storage ini. Untuk bisa sharing, instance harus berada di availability zone yang sama dengan storagenya.


EBS bisa dinaikkan sizenya. Misal tadinya 8GB mau dinaikkan menjadi 20GB itu bisa. Namun untuk diturunkan tidak bisa. Misal 20GB mau dikembalikan ke 8GB itu impossible, karena data disimpan dalam blok-blok penyimpanan.

Ketika kita membuat EBS, otomatis akan tercreate volume. Jadi EBS = volume. Kita bisa meng-attachkan secondary volume ke 1 instance. Artinya ada 2 volume dalam 1 instance (root volume dan secondary volume). Tinggal attach-kan saja volumenye ke instance tersebut, dan lakukan mount di level OSnya.

EBS juga memiliki fitur snapshot, untuk backup data. Pilih volume yang mau dibackup, lalu akan tercreate snapshot.

Terakhir, biaya. Biaya EBS adalah $0.12 per GB/month untuk tipe gp2. Misal 10GB pemakaian selama sebulan penuh, maka dapat dihitung dengan (10 * $0.12) = $1.2 (belum termasuk PPN).

4. Autoscaling

Autoscaling (autoscaler) merupakan fitur untuk menscale instance, baik scale out (tambah) ataupun scale in (kurangi).

Di nomor 2 tadi saya sudah singgung sedikit. Jadi misalkan aplikasi kita tiba-tiba menerima traffic yang tinggi, maka autoscaler akan menambah instance baru untuk menghandle traffic tersebut. Nah ketika trafficnya sudah normal kembali, maka autoscaler akan mengurangi instance secara otomatis. Jadi bisa dibilang autoscaler ini berfungsi sesuai demand (kebutuhan).

Autoscaler akan tertrigger ketika CPU atau RAM pada instance sudah mencapai batas (atas/bawah) yang sudah ditentukan. Misal batas atas kita set CPU 80%, maka ketika CPU sudah > 80% autoscaler akan membuat instance baru. Jika batas bawah kita set CPU 40%, maka instance yang mempunyai CPU < 40% akan diterminated.

Autoscaler biasanya dikaitkan dengan loadbalancer. Jadi loadbalancer akan membagi beban traffic sama rata ke masing-masing instance. Ketika traffic tinggi, autoscaler akan menambah instance baru, kemudian loadbalancer akan mengarahkan sebagian trafficnya ke instance baru tersebut, sehingga beban instance yang didapat sama rata.

Autoscaler tidak dikenakan biaya, namun agar autoscaler bisa digunakan maka harus dikaitkan ke loadbalancer. Jadi yang akan dikenakan biaya adalah loadbalancernya.

5. Loadbalancing

Loadbalancing (loadbalancer) merupakan penyeimbang beban traffic. Contoh jika dibelakang loadbalancer ada 5 instance, maka loadbalancer akan membagi trafficnya sama rata ke 5 instance tersebut.

Loadbalancing di AWS ada 4 jenis:

  • Application Load Balancer (ALB)
  • Network Load Balancer (NLB)
  • Gateway Load Balancer (GLB)
  • Classic Load Balancer (CLB)


Disini saya akan jelaskan yang ALB dan NLB saja, karena baru 2 tipe itu yang pernah saya gunakan.

5.1 Application Load Balancer

ALB merupakan penyeimbang beban yang berada di layer HTTP / HTTPS. Karena berada dilayer tersebut, ALB dapat membaca detail request yang masuk berupa HTTP header, path, method, IP. Detail request ini bisa digunakan untuk memforward, meredirect traffic sesuai rule yang kita buat.

Sebagai contoh misal kita ingin jika host yang dikirimkan berupa latcoding.com diredirect ke mywebsitegue.online. Maka kita bisa buat rulenya seperti ini

Apa itu EC2 AWS


Selain itu ALB dapat diintegrasikan dengan WAF (Web Application Firewall). Jadi ketika ada request masuk ke ALB akan dicek terlebih dahulu oleh WAF apakah request ini valid atau tidak. Jika tidak valid WAF akan merejectnya.

Sejauh ini saya lebih suka menggunakan ALB karena lebih flexible dan bisa diintegrasikan dengan WAF.

5.2 Network Loadbalancer

NLB berada dilayer TCP / UDP, posisinya berada dibelakang ALB. Beda dengan ALB, NLB tidak dapat mengecek detail HTTP request yang dikirimkan. Namun, NLB lebih cepat dibandingkan dengan ALB. NLB dapat menerima jutaan request per detik. NLB tidak bisa diintegrasikan dengan WAF, alternatifnya bisa gunakan service aws shield.

6. Network & Security

Dibagian ini berhubungan dengan network dan firewall / security pada level instance.

6.1 Network

Dibagian network ada elastic IP, network interface.

  • elastic IP
    elastic IP merupakan IP statis yang dapat ditempelkan ke instance. Saat kita membuat instance, biasanya IP yang didapat masih dinamis, belum statis. Artinya dapat berubah sewaktu-waktu (contohnya saat reboot instance, IP akan berubah). Maka dari itu kita harus dan wajib gunakan elastic IP jika kita punya aplikasi yang dipublish ke internet.
  • network interface
    Supaya instance bisa connect ke jaringan lokal atau ke jaringan internet, instance harus mempunyai network interface. Biasanya saat pembuatan instance baru, network interfacenya sudah sekalian dibuatkan. Jadi kita tidak perlu repot-repot untuk setup network interface.
    Namun jika kalian ingin mengcustomnya, bisa diubah pada bagian fitur ini.

6.2 Security

Untuk security ada 2, security group dan keypair.

  • Security Group
    Dibagian instance ada firewall yang namanya security group. Di security group, ada 2 rule yaitu inboud rule dan outboud rule. Inbound rule adalah rule untuk traffic yang masuk kedalam instance, sedangkan outbond rule adalah rule traffic yang keluar dari instance.

    Kita bisa membuat rule/aturan, port mana saja yang dibuka, IP mana saja yang dapat mengakses ke instance, serta protokol apa yang diizinkan untuk dibuka.

    Menurut saya setiap traffic yang masuk (inbound) harus dibuatkan rulenya se-strict mungkin. Jangan sampai ada IP yang tidak diizinkan bisa masuk ke dalam instance, karena terkait keamanan. Kecuali jika kita punya aplikasi yang dipublish ke internet, maka wajib diallow 0.0.0.0/0
Apa itu EC2 AWS

  • Key pair
    Ketika kita men-generate keypair, akan terbuat 2 key yaitu private key (.pem,.ppk) yang bisa kita download dan key yang ada instance. Kedua key ini merupakan pasangan kunci, maka disebutlah key pair.

    Saat ingin connect kedalam instance kita memerlukan username dan private key. Private key akan dicocokkan dengan key yang ada diinstance, apakah cocok merupakan pasangan atau bukan? Jika bukan maka akan ditolak aksesnya, jika cocok maka bisa login.


Demikianlah artikel Apa itu EC2 (Elastic Compute Cloud) pada Cloud AWS?. Semoga bermanfaat!

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.