Load balancing adalah teknik yang digunakan dalam infrastruktur jaringan untuk mendistribusikan beban kerja secara merata di antara dua atau lebih server, jaringan, aplikasi, atau lainnya. Dengan mendistribusikan beban kerja ini, load balancing dapat meningkatkan keandalan dan ketersediaan aplikasi, serta meningkatkan kinerja dan waktu respons.
Amazon Web Services (AWS)
Amazon Web Services (AWS) menawarkan tiga tipe load balancer: Application Load Balancer, Network Load Balancer, dan Classic Load Balancer. Setiap tipe load balancer ini dirancang untuk skenario penggunaan yang berbeda dan memiliki fitur dan karakteristik yang berbeda. Artikel ini akan membahas tipe-tipe AWS load balancer ini, perbedaannya, dan contoh penggunaannya.
Application Load Balancer
Application Load Balancer (ALB) adalah tipe AWS load balancer yang beroperasi pada lapisan 7 (lapisan aplikasi) dari model OSI. ALB dirancang untuk aplikasi yang membutuhkan load balancing pada tingkat permintaan HTTP dan HTTPS. Hal ini memungkinkan ALB untuk melakukan routing berdasarkan konten permintaan, seperti URL, header HTTP, metode HTTP, dan lainnya.
Fitur utama dari ALB meliputi:
- Content-Based Routing: ALB dapat melakukan routing berdasarkan konten permintaan, seperti URL, header HTTP, metode HTTP, dan lainnya.
- HTTP/2 and WebSocket Support: ALB mendukung protokol HTTP/2 dan WebSocket, yang memungkinkan komunikasi dua arah antara klien dan server.
- Integration with AWS WAF: ALB terintegrasi dengan AWS WAF (Web Application Firewall), yang memberikan perlindungan tambahan terhadap serangan web yang umum.
Contoh penggunaan ALB termasuk aplikasi web yang berbasis HTTP/HTTPS, aplikasi yang membutuhkan routing berdasarkan konten, dan aplikasi yang membutuhkan dukungan untuk HTTP/2 atau WebSocket.
Network Load Balancer
Network Load Balancer (NLB) adalah tipe AWS load balancer yang beroperasi pada lapisan 4 (lapisan transport) dari model OSI. NLB dirancang untuk aplikasi yang membutuhkan load balancing pada tingkat koneksi TCP dan UDP. Hal ini memungkinkan NLB untuk menangani jumlah koneksi yang sangat besar dengan latensi yang sangat rendah.
Fitur utama dari NLB meliputi:
- Handling of Millions of Requests per Second: NLB dirancang untuk menangani jutaan permintaan per detik, membuatnya ideal untuk aplikasi dengan beban kerja yang tinggi.
- Low Latency: NLB menawarkan latensi yang sangat rendah, yang penting untuk aplikasi yang sensitif terhadap latensi.
- Preserving Source IP: NLB dapat mempertahankan IP sumber dari klien, yang berguna untuk aplikasi yang perlu mengetahui IP sumber.
Contoh penggunaan NLB termasuk aplikasi yang membutuhkan load balancing pada tingkat koneksi TCP atau UDP, aplikasi dengan beban kerja yang tinggi, dan aplikasi yang sensitif terhadap latensi.
Classic Load Balancer
Classic Load Balancer (CLB) adalah tipe AWS load balancer yang beroperasi pada lapisan 4 (lapisan transport) dan lapisan 7 (lapisan aplikasi) dari model OSI. CLB menyediakan fungsi dasar load balancing baik pada tingkat koneksi TCP dan SSL (lapisan 4), maupun pada tingkat permintaan HTTP dan HTTPS (lapisan 7).
Fitur utama dari CLB meliputi:
- Layer 4 and Layer 7 Load Balancing: CLB dapat melakukan load balancing pada tingkat koneksi TCP dan SSL, serta pada tingkat permintaan HTTP dan HTTPS.
- Health Checks: CLB menyediakan pemeriksaan kesehatan untuk mendeteksi instans EC2 yang tidak sehat dan mengalihkan trafik ke instans yang sehat.
- Sticky Sessions: CLB mendukung sesi lengket, yang memungkinkan pengguna untuk mengikat sesi pengguna ke instans EC2 tertentu.
Contoh penggunaan CLB termasuk aplikasi legacy yang membutuhkan load balancing sederhana pada tingkat koneksi TCP dan SSL, atau pada tingkat permintaan HTTP dan HTTPS.
Perbandingan antara Application Load Balancer, Network Load Balancer, dan Classic Load Balancer
Berikut ini adalah perbandingan antara tiga tipe AWS load balancer:
- Operational Layer: ALB beroperasi pada lapisan 7 dan mendukung routing berdasarkan konten permintaan. Sebaliknya, NLB beroperasi pada lapisan 4 dan mendukung load balancing berdasarkan koneksi TCP dan UDP. CLB beroperasi pada kedua lapisan ini dan mendukung fungsi dasar load balancing.
- Performance: NLB dirancang untuk performa tinggi dengan latensi rendah dan dapat menangani jutaan permintaan per detik. ALB dan CLB memiliki performa yang lebih rendah dibandingkan NLB.
- Features: ALB memiliki fitur yang paling banyak, termasuk routing berdasarkan konten, dukungan untuk HTTP/2 dan WebSocket, dan integrasi dengan AWS WAF. NLB memiliki fitur yang lebih sedikit, tetapi dapat menangani beban kerja yang lebih tinggi dan menawarkan latensi yang rendah. CLB memiliki fitur yang paling dasar dan digunakan untuk aplikasi yang tidak membutuhkan fitur-fitur lanjutan yang ditawarkan oleh ALB atau NLB.
Amazon Web Services menawarkan tiga tipe load balancer: Application Load Balancer, Network Load Balancer, dan Classic Load Balancer. Setiap tipe load balancer ini dirancang untuk skenario penggunaan yang berbeda dan memiliki fitur dan karakteristik yang berbeda. Sebagai pengguna AWS, penting untuk memahami perbedaan antara tiga tipe load balancer ini untuk dapat memilih yang paling sesuai dengan kebutuhan aplikasi Anda.
Bagaimana cara menggunakan setiap tipe AWS Load Balancer?
Setiap tipe Load Balancer di AWS memiliki prosedur konfigurasi dan penggunaannya sendiri. Berikut adalah ringkasan cara menggunakan masing-masing:
Application Load Balancer (ALB)
- Membuat ALB: Dari AWS Management Console, pilih EC2, lalu dalam panel navigasi, di bawah Load Balancing, pilih Load Balancers. Klik “Create Load Balancer” dan pilih “Application Load Balancer”.
- Konfigurasi ALB: Tentukan nama, skema (internal atau internet-facing), listener (biasanya HTTP/80 atau HTTPS/443), dan kemudian pilih Availability Zone di mana ALB harus ditempatkan.
- Security Settings: Jika Anda mengatur listener HTTPS, tentukan sertifikat SSL untuk digunakan.
- Security Group: Tentukan grup keamanan yang akan digunakan oleh ALB.
- Routing Configuration: Tentukan grup target untuk ALB. Grup target adalah grup EC2 instance yang akan menerima lalu lintas yang ditunjukkan oleh ALB.
- Health Checks: Tentukan pemeriksaan kesehatan untuk memantau kesehatan instance EC2 di grup target.
- Review and Create: Tinjau konfigurasi ALB dan klik “Create” untuk membuat ALB.
Network Load Balancer (NLB)
Proses pembuatan NLB hampir sama dengan ALB, hanya saja NLB lebih difokuskan pada pembalikan beban lalu lintas TCP dan UDP pada tingkat transportasi dan tidak mendukung pemutusan sambungan SSL atau pemutusan sambungan berdasarkan konten.
- Membuat NLB: Seperti ALB, Anda memilih “Create Load Balancer” di console AWS, tetapi kali ini pilih “Network Load Balancer”.
- Konfigurasi NLB: Konfigurasi NLB hampir sama dengan ALB, tetapi Anda tidak akan melihat opsi untuk pemutusan sambungan SSL atau pemutusan sambungan berdasarkan konten.
Classic Load Balancer (CLB)
CLB kurang fleksibel daripada ALB atau NLB, tetapi proses pembuatannya mirip:
- Membuat CLB: Dari console AWS, pilih “Create Load Balancer”, lalu pilih “Classic Load Balancer”.
- Konfigurasi CLB: Anda akan mengatur nama, skema, dan listener, serta memilih Availability Zone seperti biasa.
- Security Settings dan Group: Ini sama dengan ALB dan NLB.
- Configure Health Check and Add EC2 Instances: Konfigurasikan pemeriksaan kesehatan dan tambahkan instance EC2 ke dalam Load Balancer.
- Review and Create: Seperti sebelumnya, tinjau konfigurasi Anda dan klik “Create” untuk membuat CLB.
Setelah Load Balancer dibuat, Anda dapat mengonfigurasi pengaturan lebih lanjut, seperti Sticky Sessions, SSL Certificates, dan lainnya, sesuai dengan jenis Load Balancer dan kebutuhan Anda.