Back to IF4031 Arsitektur Aplikasi Terdistribusi

Topic

Questions/Cues

  • Apa fungsi Load Balancer?

  • Apa itu ‘rolling updates’?

  • Beda Load Balancer NAT vs. Reverse Proxy?

  • Apa keterbatasan Load Balancer lokal?

  • Bagaimana DNS digunakan untuk Load Balancing?

  • Apa itu Geographic Load Balancing?

  • Apa itu CDN?

  • Bagaimana cara kerja IP Anycast?

  • Mengapa perlu Load Balancing 2 level?

Reference Points

  • Slides IF4031 Hal 53-67

Load Balancer Lokal

Load Balancer adalah sebuah perangkat (hardware atau software) yang bertindak sebagai “gerbang depan” untuk sekelompok server (cluster). Fungsinya adalah mendistribusikan traffic/request yang masuk ke beberapa server di belakangnya, sehingga membuat cluster tersebut tampak seperti satu server super yang sangat kuat.

Keuntungan Tambahan:

  • Rolling Updates: Memungkinkan pembaruan software tanpa downtime. Sebagian server bisa di-update sementara yang lain tetap melayani traffic, lalu dilakukan secara bergantian.

  • Health Checks: Load balancer secara periodik memeriksa “kesehatan” setiap server. Jika ada server yang gagal merespons, load balancer akan berhenti mengirimkan traffic ke server tersebut.

Jenis Load Balancer Lokal

1. IP/NAT Load Balancer

Bekerja di level jaringan (IP layer). Ia hanya meneruskan paket dengan mengubah alamat IP dan port tujuan. Sangat cepat dan efisien karena tidak perlu memahami isi request (seperti HTTP). Dapat digunakan untuk semua jenis layanan, tidak hanya web.

2. Reverse Proxy Load Balancer

Bekerja di level aplikasi (HTTP layer). Ia menerima seluruh request HTTP, lalu membuat koneksi baru untuk meneruskannya ke server internal. Karena “mengerti” HTTP, ia bisa melakukan fungsi tambahan seperti:

  • SSL Termination: Proses dekripsi HTTPS dilakukan di proxy, server internal tidak perlu terbebani.

  • Caching: Menyimpan response yang sering diminta.

  • Compression: Mengompres data sebelum dikirim ke klien.

    Contoh paling populer adalah Nginx dan HAProxy.

Load Balancer Global

Load Balancer lokal memiliki keterbatasan: ia sendiri bisa menjadi single point of failure dan hanya beroperasi di satu data center, sehingga tidak bisa mengurangi latensi untuk pengguna yang lokasinya jauh. Untuk skala global, diperlukan teknik lain.

1. DNS Load Balancing (Round-Robin)

DNS dapat dikonfigurasi untuk memberikan beberapa alamat IP yang berbeda untuk satu nama domain. Ketika klien melakukan query, DNS server akan memberikan salah satu alamat IP (misalnya secara bergiliran). Klien kemudian akan terhubung ke alamat IP yang diterimanya, sehingga traffic terdistribusi ke beberapa data center.

2. Geographic Load Balancing dengan DNS

Ini adalah versi cerdas dari DNS Load Balancing. DNS server akan mendeteksi lokasi geografis klien dari alamat IP-nya, lalu memberikan alamat IP dari data center yang secara fisik paling dekat dengan klien tersebut. Ini secara signifikan mengurangi latensi.

3. Content Delivery Network (CDN)

CDN adalah jaringan server proxy yang tersebar secara global (edge servers). CDN menggunakan Geographic DNS untuk mengarahkan pengguna ke edge server terdekat. Server ini akan menyimpan cache dari konten statis (gambar, video, CSS), sehingga konten dapat dikirimkan dengan sangat cepat tanpa harus mengambilnya dari server utama yang mungkin jauh.

4. IP Anycast

Teknik canggih di mana banyak server di lokasi berbeda di seluruh dunia menggunakan alamat IP yang sama persis. Protokol routing internet (BGP) secara otomatis akan mengarahkan traffic pengguna ke server terdekat yang mengiklankan IP tersebut. Ini digunakan oleh layanan fundamental seperti DNS publik Google (8.8.8.8).

Summary

Skalabilitas sistem terdistribusi dicapai melalui dua level load balancing. Di level lokal (dalam satu data center), NAT atau Reverse Proxy digunakan untuk mendistribusikan beban dan memastikan ketersediaan layanan melalui health checks. Untuk skala global, teknik seperti DNS Load Balancing, CDN, dan IP Anycast digunakan untuk mengarahkan pengguna ke data center atau edge server terdekat, yang bertujuan mengurangi latensi dan mendistribusikan traffic secara geografis di seluruh dunia.