Memecahkan Masalah Classic Load Balancer: Pemeriksaan Kesehatan - Penyeimbang Beban Elastis

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan Masalah Classic Load Balancer: Pemeriksaan Kesehatan

Penyeimbang beban Anda memeriksa kesehatan instans yang terdaftar menggunakan konfigurasi pemeriksaan kesehatan default yang disediakan oleh Elastic Load Balancing atau konfigurasi pemeriksaan kesehatan khusus yang Anda tentukan. Konfigurasi pemeriksaan kesehatan berisi informasi seperti protokol, port ping, jalur ping, batas waktu respons, dan interval pemeriksaan kesehatan. Sebuah instance dianggap sehat jika mengembalikan kode respons 200 dalam interval pemeriksaan kesehatan. Untuk informasi selengkapnya, lihat Health memeriksa instans untuk Classic Load Balancer Anda.

Jika status saat ini dari beberapa atau semua instance Anda OutOfService dan bidang deskripsi menampilkan pesan bahwaInstance has failed at least the Unhealthy Threshold number of health checks consecutively, instance telah gagal dalam pemeriksaan kesehatan penyeimbang beban. Berikut ini adalah masalah yang harus dicari, penyebab potensial, dan langkah-langkah yang dapat Anda ambil untuk menyelesaikan masalah.

Kesalahan halaman target pemeriksaan kesehatan

Masalah: HTTP GET Permintaan yang dikeluarkan untuk instance pada port ping yang ditentukan dan jalur ping (misalnya, ,:80/index.htmlHTTP) menerima kode respons non-200.

Penyebab 1: Tidak ada halaman target yang dikonfigurasi pada instance.

Solusi 1: Buat halaman target (misalnya,index.html) pada setiap instance terdaftar dan tentukan jalurnya sebagai jalur ping.

Penyebab 2: Nilai header Content-Length dalam respons tidak disetel.

Solusi 2: Jika respons menyertakan badan, maka atur header Content-Length ke nilai yang lebih besar dari atau sama dengan nol, atau atur nilai Transfer-Encoding ke 'chunked'.

Penyebab 3: Aplikasi tidak dikonfigurasi untuk menerima permintaan dari penyeimbang beban atau mengembalikan kode respons 200.

Solusi 3: Periksa aplikasi pada instans Anda untuk menyelidiki penyebabnya.

Koneksi ke instance telah habis waktu

Masalah: Permintaan pemeriksaan kesehatan dari penyeimbang beban Anda ke EC2 instans Anda habis waktu atau gagal sebentar-sebentar.

Pertama, verifikasi masalah dengan menghubungkan langsung dengan instance. Kami menyarankan Anda terhubung ke instans Anda dari dalam jaringan menggunakan alamat IP pribadi dari instans.

Gunakan perintah berikut untuk TCP koneksi:

telnet private-IP-address-of-the-instance port

Gunakan perintah berikut untuk HTTPS koneksi HTTP atau:

curl –I private-IP-address-of-the-instance:port/health-check-target-page

Jika Anda menggunakan HTTPS koneksiHTTP/dan mendapatkan respons non-200, lihatKesalahan halaman target pemeriksaan kesehatan. Jika Anda dapat terhubung langsung ke instans, periksa hal-hal berikut:

Penyebab 1: Instance gagal merespons dalam periode batas waktu respons yang dikonfigurasi.

Solusi 1: Sesuaikan pengaturan batas waktu respons dalam konfigurasi pemeriksaan kesehatan penyeimbang beban Anda.

Penyebab 2: Instans berada di bawah beban yang signifikan dan membutuhkan waktu lebih lama dari periode batas waktu respons yang dikonfigurasi untuk merespons.

Solusi 2:

Penyebab 3: Jika Anda menggunakan HTTP atau HTTPS koneksi dan pemeriksaan kesehatan sedang dilakukan pada halaman target yang ditentukan dalam bidang jalur ping (misalnya,HTTP:80/index.html), halaman target mungkin membutuhkan waktu lebih lama untuk merespons daripada batas waktu yang dikonfigurasi.

Solusi 3: Gunakan halaman target pemeriksaan kesehatan yang lebih sederhana atau sesuaikan pengaturan interval pemeriksaan kesehatan.

Otentikasi kunci publik gagal

Masalah: Penyeimbang beban yang dikonfigurasi untuk menggunakan SSL protokol HTTPS atau dengan otentikasi back-end diaktifkan gagal otentikasi kunci publik.

Penyebab: Kunci publik pada SSL sertifikat tidak cocok dengan kunci publik yang dikonfigurasi pada penyeimbang beban. Gunakan s_client perintah untuk melihat daftar sertifikat server dalam rantai sertifikat. Untuk informasi selengkapnya, lihat s_client di dokumentasi OpenSSL.

Solusi: Anda mungkin perlu memperbarui SSL sertifikat Anda. Jika SSL sertifikat Anda saat ini, coba instal ulang pada penyeimbang beban Anda. Untuk informasi selengkapnya, lihat Ganti SSL sertifikat untuk Classic Load Balancer.

Instance tidak menerima lalu lintas dari penyeimbang beban

Masalah: Grup keamanan misalnya memblokir lalu lintas dari penyeimbang beban.

Lakukan pengambilan paket pada instance untuk memverifikasi masalah. Gunakan perintah berikut ini.

# tcpdump port health-check-port

Penyebab 1: Grup keamanan yang terkait dengan instance tidak mengizinkan lalu lintas dari penyeimbang beban.

Solusi 1: Edit grup keamanan instans untuk mengizinkan lalu lintas dari penyeimbang beban. Tambahkan aturan untuk mengizinkan semua lalu lintas dari grup keamanan penyeimbang beban.

Penyebab 2: Grup keamanan untuk penyeimbang beban Anda tidak mengizinkan lalu lintas ke EC2 instans.

Solusi 2: Edit grup keamanan penyeimbang beban Anda untuk memungkinkan lalu lintas ke subnet dan instans. EC2

Untuk informasi tentang mengelola grup keamanan, lihatKonfigurasikan grup keamanan untuk Classic Load Balancer.

Port pada instance tidak terbuka

Masalah: Pemeriksaan kesehatan yang dikirim ke EC2 instance oleh penyeimbang beban diblokir oleh port atau firewall.

Verifikasi masalah dengan menggunakan perintah berikut:

netstat –ant

Penyebab: Port kesehatan yang ditentukan atau port pendengar (jika dikonfigurasi berbeda) tidak terbuka. Baik port yang ditentukan untuk pemeriksaan kesehatan dan port pendengar harus terbuka dan mendengarkan.

Solusi: Buka port listener dan port yang ditentukan dalam konfigurasi pemeriksaan kesehatan Anda (jika dikonfigurasi berbeda) pada instans Anda untuk menerima lalu lintas penyeimbang beban.

Instance dalam grup Auto Scaling gagal ELB dalam pemeriksaan kesehatan

Masalah: Instance di grup Auto Scaling Anda lulus pemeriksaan kesehatan Auto Scaling default tetapi gagal dalam pemeriksaan kesehatan. ELB

Penyebab: Auto Scaling menggunakan pemeriksaan EC2 status untuk mendeteksi masalah perangkat keras dan perangkat lunak dengan instans, tetapi penyeimbang beban melakukan pemeriksaan kesehatan dengan mengirimkan permintaan ke instance dan menunggu kode respons 200, atau dengan membuat TCP koneksi (untuk pemeriksaan kesehatan TCP berbasis) dengan instance.

Sebuah instance mungkin gagal dalam pemeriksaan ELB kesehatan karena aplikasi yang berjalan pada instance memiliki masalah yang menyebabkan penyeimbang beban mempertimbangkan instance di luar layanan. Instance ini mungkin lulus pemeriksaan kesehatan Auto Scaling; itu tidak akan digantikan oleh kebijakan Auto Scaling karena dianggap sehat berdasarkan EC2 pemeriksaan status.

Solusi: Gunakan pemeriksaan ELB kesehatan untuk grup Auto Scaling Anda. Saat Anda menggunakan pemeriksaan ELB kesehatan, Auto Scaling menentukan status kesehatan instans Anda dengan memeriksa hasil pemeriksaan status instans dan pemeriksaan kesehatan. ELB Untuk informasi selengkapnya, lihat Menambahkan pemeriksaan kesehatan ke grup Auto Scaling di Panduan Pengguna Amazon Auto EC2 Scaling.