High Availability & Load Balancing

🔄⚡ Bab 16 – SOP High Availability & Load Balancing di Ubuntu Server

High Availability & Load Balancing di Ubuntu Server. Bab ini penting karena server yang melayani banyak pengguna harus tetap online, stabil, dan cepat, bahkan jika ada gangguan. Dengan konsep High Availability (HA) dan Load Balancing (LB), kita bisa membagi beban trafik ke beberapa server dan memastikan layanan tetap berjalan.

🎯 Tujuan

  • Menjaga server tetap online meski ada gangguan.
  • Membagi beban trafik ke beberapa server.
  • Meningkatkan performa dan kecepatan akses website/aplikasi.

🔧 Lingkup

  • Sistem operasi: Ubuntu Server
  • Tools: Nginx/HAProxy untuk load balancing, Keepalived untuk failover
  • Target: Web server (Apache/Nginx)

3. Langkah Kerja

💡 3.1 Konsep Dasar

  • High Availability (HA): memastikan layanan tetap berjalan walau satu server mati.
  • Load Balancing (LB): membagi trafik ke beberapa server agar tidak overload.

Penambahan: Konsep ini membentuk fondasi dari arsitektur server yang resilient (tahan banting) dan scalable (dapat diperluas). Load balancer bertindak sebagai pintu masuk utama, menerima permintaan dari pengguna dan mengarahkannya ke server yang paling siap.

/nginx 3.2 Setup Load Balancer dengan Nginx

  1. Install Nginx di server load balancer:
    sudo apt update
    sudo apt install nginx -y
              
  2. Edit konfigurasi:
    sudo nano /etc/nginx/conf.d/loadbalancer.conf
              
  3. Isi:
    upstream backend {
        server 192.168.1.101;
        server 192.168.1.102;
    }
    
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
        }
    }
              
  4. Restart Nginx:
    sudo systemctl restart nginx
              

→ Trafik akan dibagi ke server 192.168.1.101 dan 192.168.1.102.

Penambahan: Nginx menggunakan metode round-robin secara default untuk membagi beban. Kamu juga bisa menambahkan opsi weight untuk memberi prioritas pada server tertentu.

⚖️ 3.3 Setup Load Balancer dengan HAProxy

  1. Install HAProxy:
    sudo apt install haproxy -y
              
  2. Edit konfigurasi:
    sudo nano /etc/haproxy/haproxy.cfg
              
  3. Isi:
    frontend http_front
        bind *:80
        default_backend http_back
    
    backend http_back
        balance roundrobin
        server web1 192.168.1.101:80 check
        server web2 192.168.1.102:80 check
              
  4. Restart HAProxy:
    sudo systemctl restart haproxy
              

→ Trafik dibagi dengan metode round robin.

Penambahan: HAProxy menawarkan lebih banyak metode load balancing seperti leastconn (untuk sesi panjang) dan source (untuk persistensi sesi). Opsi check digunakan untuk memonitor kesehatan server.

🛡️ 3.4 Failover dengan Keepalived

  1. Install Keepalived:
    sudo apt install keepalived -y
              
  2. Edit konfigurasi:
    sudo nano /etc/keepalived/keepalived.conf
              
  3. Isi (contoh untuk server MASTER):
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass rahasia
        }
        virtual_ipaddress {
            192.168.1.200
        }
    }
              
  4. Restart Keepalived:
    sudo systemctl restart keepalived
              

→ Jika server utama mati, IP virtual 192.168.1.200 otomatis pindah ke server cadangan (BACKUP).

Penambahan: Keepalived menggunakan protokol VRRP (Virtual Router Redundancy Protocol). Kamu perlu menyiapkan satu server lain sebagai BACKUP dengan konfigurasi yang sama, tapi state diubah menjadi BACKUP dan priority lebih rendah (misalnya 90). Pastikan virtual_router_id dan auth_pass harus sama di kedua server.

4. Command Ringkas

Fungsi Command
Install Nginx LB sudo apt install nginx -y
Konfigurasi LB Nginx Edit /etc/nginx/conf.d/loadbalancer.conf
Restart Nginx sudo systemctl restart nginx
Install HAProxy sudo apt install haproxy -y
Konfigurasi HAProxy Edit /etc/haproxy/haproxy.cfg
Restart HAProxy sudo systemctl restart haproxy
Install Keepalived sudo apt install keepalived -y
Konfigurasi Keepalived Edit /etc/keepalived/keepalived.conf
Restart Keepalived sudo systemctl restart keepalived

5. Catatan Penting

  • Gunakan minimal 2 web server + 1 load balancer untuk HA sederhana.
  • 🔄
    Pastikan semua server punya konfigurasi web yang sama (misalnya melalui CI/CD).
  • 📊
    Gunakan monitoring (Netdata/Zabbix) untuk cek performa tiap server.
  • 🛡️
    Keepalived cocok untuk failover IP agar layanan tetap online.
  • 💡
    Untuk skala lebih besar, pertimbangkan solusi cloud (AWS, GCP) atau Kubernetes.
👉 Dengan bab ini, kamu sudah bisa membangun server yang tahan banting dengan load balancing & high availability.

Komentar

Postingan populer dari blog ini

Automation dengan Ansible

Logging & Observability Modern (ELK Stack)

Docker & Container