All Products
Search
Document Center

Server Load Balancer:Pemeriksaan kesehatan NLB

Last Updated:Dec 17, 2025

Network Load Balancer (NLB) menggunakan pemeriksaan kesehatan untuk menguji ketersediaan server backend. Setelah Anda mengaktifkan pemeriksaan kesehatan, jika server backend gagal dalam pemeriksaan tersebut, NLB secara otomatis meneruskan permintaan yang ditujukan ke server tersebut ke server backend lain yang sehat. Ketika server backend dinyatakan sehat kembali, NLB akan meneruskan permintaan ke server tersebut. Pemeriksaan kesehatan adalah langkah penting untuk memastikan tingginya ketersediaan layanan, meningkatkan ketersediaan keseluruhan bisnis, serta menghilangkan titik kegagalan tunggal (SPOF) yang disebabkan oleh server yang tidak sehat.

Proses pemeriksaan kesehatan

Instans NLB diterapkan dalam kluster. Server node dalam kluster digunakan untuk meneruskan data dan menjalankan pemeriksaan kesehatan.

Server dalam kluster bersifat independen satu sama lain dan meneruskan data serta menjalankan pemeriksaan kesehatan secara paralel berdasarkan kebijakan NLB.

  • Jika NLB mendeteksi server backend yang tidak sehat dan pengurasan koneksi dinonaktifkan untuk server tersebut, koneksi pada server backend akan ditutup setelah semua sesi yang sedang berjalan selesai. Sementara itu, permintaan baru tidak lagi diteruskan ke server backend tersebut.

  • Jika NLB mendeteksi server backend yang tidak sehat dan pengurasan koneksi diaktifkan untuk server tersebut, server backend terus memproses sesi yang sedang berjalan. Koneksi ditutup ketika periode timeout pengurasan koneksi berakhir. Sementara itu, permintaan baru tidak lagi diteruskan ke server backend tersebut.

Catatan
  • NLB menggunakan alamat IP lokalnya untuk menjalankan pemeriksaan kesehatan. Pastikan bahwa alamat IP tersebut tidak diblokir oleh server backend. Anda tidak perlu mengonfigurasi aturan Mengizinkan dalam grup keamanan Elastic Compute Service (ECS) untuk alamat IP tersebut. Namun, jika kebijakan keamanan lain digunakan, seperti iptables, izinkan alamat IP tersebut dalam kebijakan keamanan tersebut.

  • Ketika semua server backend dari instans NLB gagal dalam pemeriksaan kesehatan, NLB akan memasuki mode "best-effort" dan meneruskan permintaan ke semua server backend guna mempertahankan ketersediaan bisnis semaksimal mungkin.

Cara kerjanya

Pemeriksaan kesehatan TCP

Untuk meningkatkan efisiensi pemeriksaan kesehatan TCP, NLB mengirim probe TCP yang disesuaikan untuk menguji ketersediaan server backend, seperti yang ditunjukkan pada gambar berikut.

Berikut cara NLB melakukan pemeriksaan kesehatan TCP:

  1. NLB mengirim paket TCP-SYN ke alamat IP internal dan port pemeriksaan kesehatan server backend berdasarkan pengaturan pemeriksaan kesehatan listener.

  2. Jika port server backend hidup, server backend mengembalikan paket SYN-ACK setelah menerima paket TCP-SYN.

  3. Jika NLB tidak menerima paket SYN-ACK dari server backend sebelum periode timeout respons berakhir, server backend dinyatakan tidak sehat. Kemudian, NLB mengirim paket RST ke server backend untuk menutup koneksi TCP.

  4. Jika NLB menerima paket SYN-ACK dari server backend sebelum periode timeout respons berakhir, server backend lulus pemeriksaan kesehatan. NLB mengirim paket ACK dan kemudian segera mengirim paket RST untuk menutup koneksi TCP.

Catatan

Dalam kondisi normal, tiga jabat tangan TCP dilakukan. Setelah NLB menerima paket SYN-ACK dari server backend, NLB mengirim paket ACK dan segera mengirim paket RST untuk menutup koneksi TCP. Mekanisme ini dapat menyebabkan kesalahan koneksi TCP palsu pada server backend. Akibatnya, server backend mungkin mencatat pesan kesalahan Connection reset by peer dalam log perangkat lunak, seperti log kolam koneksi Java.

Solusi:

  • Konfigurasikan pemeriksaan kesehatan HTTP untuk listener TCP.

  • Aktifkan pelestarian IP klien pada server backend untuk mengabaikan kesalahan koneksi TCP palsu yang dipicu oleh permintaan dari blok CIDR NLB.

Pemeriksaan kesehatan UDP

Anda dapat menggunakan metode berikut untuk melakukan pemeriksaan kesehatan UDP:

Metode 1: Pemeriksaan kesehatan pada port

Gambar berikut menunjukkan cara pemeriksaan kesehatan dilakukan.

Berikut proses pemeriksaan kesehatan pada port oleh listener UDP:

  1. NLB mengirim paket permintaan ICMP ke alamat IP internal server backend berdasarkan pengaturan pemeriksaan kesehatan listener.

  2. NLB mengirim paket probe UDP ke alamat IP internal dan port pemeriksaan kesehatan server backend berdasarkan pengaturan pemeriksaan kesehatan listener.

  3. Jika server backend mengembalikan paket respons ICMP sebelum periode timeout respons berakhir dan tidak mengembalikan pesan Port XX Unreachable, server backend lulus pemeriksaan kesehatan. Jika tidak, server backend gagal dalam pemeriksaan kesehatan.

Metode 2: Pemeriksaan kesehatan kustom

Gambar berikut menunjukkan cara pemeriksaan kesehatan dilakukan.

Berikut proses pemeriksaan kesehatan kustom oleh listener UDP:

  1. NLB mengirim paket probe UDP yang berisi karakter tertentu ke alamat IP internal dan port pemeriksaan kesehatan server backend.

  2. Jika NLB menerima pesan yang ditentukan sebelum periode timeout respons berakhir, server backend lulus pemeriksaan kesehatan. Jika tidak, server backend gagal dalam pemeriksaan kesehatan.

Pemeriksaan Kesehatan HTTP

Untuk listener Lapisan 4 (TCP atau UDP), Anda dapat mengonfigurasi pemeriksaan kesehatan HTTP, yang mengirim permintaan HEAD atau GET untuk menanyakan ketersediaan server backend. Gambar berikut menunjukkan cara pemeriksaan kesehatan dilakukan.

Berikut proses pemeriksaan kesehatan HTTP:

  1. NLB mengirim permintaan HTTP HEAD atau GET yang mencakup nama domain ke alamat IP internal dan jalur pemeriksaan kesehatan server backend berdasarkan pengaturan pemeriksaan kesehatan listener.

  2. Setelah server backend menerima permintaan HTTP, server backend mengembalikan kode status HTTP berdasarkan status server.

  3. Jika NLB tidak menerima respons dari server backend sebelum periode timeout respons berakhir, server backend gagal dalam pemeriksaan kesehatan.

  4. Jika NLB menerima respons dari server backend sebelum periode timeout respons berakhir, server backend membandingkan kode status HTTP yang diterima dengan kode status HTTP yang dikonfigurasi dalam pengaturan pemeriksaan kesehatan. Jika kode status yang dikembalikan cocok dengan salah satu kode status yang ditentukan, server backend dinyatakan sehat. Jika tidak, server backend dinyatakan tidak sehat.

Skenario

Pemeriksaan kesehatan TCP

  • Layanan Protokol Transfer File (FTP): Anda dapat menggunakan pemeriksaan kesehatan TCP untuk menguji apakah layanan FTP dapat menerima dan merespons permintaan koneksi. Pemeriksaan kesehatan TCP memastikan stabilitas dan keandalan layanan FTP.

  • Layanan Email: Anda dapat menggunakan pemeriksaan kesehatan TCP untuk menguji apakah layanan email dapat mengirim dan menerima email. Pemeriksaan kesehatan TCP memastikan keandalan layanan email.

  • Transaksi Keuangan: Untuk sistem transaksi keuangan, keandalan server transaksi adalah faktor kunci. Anda dapat menggunakan pemeriksaan kesehatan TCP untuk mendeteksi kegagalan sistem tepat waktu dan mencegah gangguan transaksi.

  • Logon Jarak Jauh: Anda dapat menggunakan pemeriksaan kesehatan TCP untuk menguji ketersediaan dan kinerja layanan logon jarak jauh. Pemeriksaan kesehatan TCP memastikan koneksi yang aman dan stabil antara pengguna dan server jarak jauh.

Pemeriksaan kesehatan UDP

Industri tradisional

  • Layanan DNS: Anda dapat menggunakan pemeriksaan kesehatan UDP untuk dengan cepat menguji apakah server DNS dapat merespons pertanyaan seperti yang diharapkan.

  • Layanan Voice over Internet Protocol (VoIP): Anda dapat mengirim paket UDP kecil untuk menguji metrik utama, termasuk latensi jaringan, laju kehilangan paket, dan jitter jaringan, dari layanan VoIP, seperti Skype dan sistem telepon VoIP. Pemeriksaan kesehatan UDP membantu meningkatkan kualitas komunikasi.

  • Game Online: Anda dapat menggunakan pemeriksaan kesehatan UDP untuk memantau waktu respons dan ketersediaan server game. Pemeriksaan kesehatan UDP membantu meningkatkan kelancaran game dan pengalaman pengguna.

  • Layanan Media Streaming: Anda dapat menggunakan pemeriksaan kesehatan UDP untuk menilai ketersediaan dan kualitas streaming video untuk layanan media streaming, seperti konferensi video dan streaming video real-time. Pemeriksaan kesehatan UDP membantu meningkatkan efisiensi respons dan stabilitas streaming.

  • Layanan Pesan Instan: Anda dapat menggunakan pemeriksaan kesehatan UDP untuk memantau stabilitas dan latensi jaringan koneksi secara real-time. Pemeriksaan kesehatan UDP memastikan pengiriman pesan yang cepat dan andal serta meningkatkan pengalaman pengguna.

Industri baru

  • Beralih ke QUIC untuk Industri TI: Anda dapat menggunakan pemeriksaan kesehatan UDP dalam skenario QUIC untuk memeriksa status koneksi. Pemeriksaan kesehatan UDP memastikan transmisi data yang efisien, stabil, dan real-time.

  • Industri Internet of Things (IoT): Anda dapat menggunakan pemeriksaan kesehatan UDP untuk dengan cepat memeriksa status perangkat sensor. Pemeriksaan kesehatan UDP memastikan latensi jaringan rendah dan efisiensi tinggi untuk perangkat IoT yang sensitif terhadap daya atau biaya.

  • Industri Vehicle-to-Everything (V2X): Anda dapat melakukan pemeriksaan kesehatan UDP antara kendaraan dan infrastruktur untuk memastikan pertukaran data real-time dan respons cepat. Pemeriksaan kesehatan UDP memastikan stabilitas dan keandalan komunikasi untuk layanan V2X.

  • Industri Realitas Virtual (VR) dan Realitas Tertambah (AR): Anda dapat menggunakan pemeriksaan kesehatan UDP untuk memastikan transmisi cepat data visual dan interaksi serta meningkatkan pengalaman pengguna.

  • Industri Game Cloud: Anda dapat menggunakan pemeriksaan kesehatan UDP untuk memantau game cloud secara real-time. Pemeriksaan kesehatan UDP memastikan latensi jaringan rendah dan meningkatkan kelancaran game.

Pemeriksaan kesehatan HTTP

  • Pemeriksaan kesehatan pada layanan web: Jika server backend Anda menjalankan layanan web HTTP atau HTTPS, Anda dapat menggunakan pemeriksaan kesehatan HTTP untuk menanyakan status server. Untuk menguji apakah server dapat memproses permintaan HTTP, Anda dapat mengirim permintaan HTTP GET atau HEAD ke path tertentu pada server, seperti /health.

  • Pemeriksaan Kesehatan Kustom pada Aplikasi: Beberapa aplikasi menggunakan logika pemeriksaan kesehatan kustom. Misalnya, Anda dapat menjalankan pemeriksaan kesehatan kustom untuk memeriksa kolam koneksi database dan status cache.

  • Arsitektur Mikro-layanan: Dalam arsitektur mikro-layanan, setiap mikro-layanan mungkin berkomunikasi menggunakan antarmuka HTTP. Anda dapat menggunakan pemeriksaan kesehatan HTTP untuk mendeteksi kesalahan lapisan aplikasi dari instance mikro-layanan. Tanggapan pemeriksaan kesehatan dapat memberikan informasi diagnostik yang lebih rinci.

  • Gerbang API dan reverse proxy: Jika server backend adalah gerbang API atau reverse proxy, seperti NGINX dan HAProxy, komponen tersebut menyediakan antarmuka HTTP. Anda dapat menggunakan pemeriksaan kesehatan HTTP untuk memantau status kesehatan layanan.

Nama domain untuk pemeriksaan kesehatan HTTP

Anda dapat menentukan nama domain untuk pemeriksaan kesehatan HTTP. Pengaturan ini bersifat opsional. Beberapa server aplikasi harus memverifikasi header Host dalam permintaan sebelum server aplikasi dapat menerima permintaan tersebut. Dalam hal ini, permintaan harus membawa header Host. Jika Anda menentukan nama domain dalam konfigurasi pemeriksaan kesehatan, NLB menambahkan nama domain ke header Host. Jika tidak, NLB tidak menambahkan header Host ke permintaan. Dalam hal ini, permintaan pemeriksaan kesehatan ditolak oleh server backend, yang dapat menyebabkan kegagalan pemeriksaan kesehatan.

Jika server aplikasi Anda memverifikasi header Host dalam permintaan, Anda harus mengonfigurasi nama domain untuk pemeriksaan kesehatan untuk memastikan bahwa fitur pemeriksaan kesehatan berfungsi seperti yang diharapkan.

Referensi