Memecahkan masalah Application Load Balancer - Elastic Load Balancing

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

Memecahkan masalah Application Load Balancer

Informasi berikut dapat membantu Anda memecahkan masalah pada Application Load Balancer.

Target terdaftar tidak dalam layanan

Jika target memakan waktu lebih lama dari yang diharapkan untuk masuk ke status InService, mungkin target akan gagal dalam pemeriksaan kesehatan. Target Anda tidak akan masuk dalam pelayanan sampai melewati satu pemeriksaan kesehatan. Untuk informasi selengkapnya, lihat Pemeriksaan kondisi untuk grup target Anda.

Verifikasi bahwa instans Anda gagal dalam pemeriksaan kesehatan dan kemudian periksa masalah berikut:

Grup keamanan tidak mengizinkan lalu lintas

Grup keamanan yang terkait dengan instans harus mengizinkan lalu lintas dari Load Balancer menggunakan port pemeriksaan kesehatan dan protokol pemeriksaan kesehatan. Anda dapat menambahkan aturan ke grup keamanan instans untuk mengizinkan semua lalu lintas dari grup keamanan Load Balancer. Selain itu, grup keamanan untuk Load Balancer Anda harus mengizinkan lalu lintas ke instance.

Daftar kontrol akses jaringan (ACL) tidak mengizinkan lalu lintas

ACL jaringan yang terkait dengan subnet untuk instans Anda harus memungkinkan lalu lintas masuk pada port pemeriksaan kesehatan dan lalu lintas keluar pada port fana (1024-65535). ACL jaringan yang terkait dengan subnet untuk node Load Balancer Anda harus memungkinkan lalu lintas masuk pada port fana dan lalu lintas keluar pada pemeriksaan kesehatan dan port fana.

Jalur ping tidak ada

Buat halaman target untuk pemeriksaan kesehatan dan tentukan jalurnya sebagai jalur ping.

Waktu koneksi habis

Pertama, verifikasi bahwa Anda dapat terhubung ke target langsung dari dalam jaringan menggunakan alamat IP pribadi target dan protokol pemeriksaan kesehatan. Jika Anda tidak dapat terhubung, periksa apakah instans terlalu banyak digunakan, dan tambahkan lebih banyak target ke grup target Anda jika terlalu sibuk untuk merespons. Jika Anda dapat terhubung, mungkin halaman target tidak merespons sebelum periode batas waktu pemeriksaan kesehatan. Pilih halaman target yang lebih sederhana untuk pemeriksaan kesehatan atau sesuaikan pengaturan pemeriksaan kesehatan.

Target tidak mengembalikan kode respon yang sukses

Secara default, kode sukses adalah 200, tetapi secara opsional Anda dapat menentukan kode keberhasilan tambahan ketika Anda mengkonfigurasi pemeriksaan kesehatan. Konfirmasikan kode sukses yang diharapkan Load Balancer dan bahwa aplikasi Anda telah dikonfigurasi untuk menjawab kode ini berhasil.

Kode respons target rusak atau ada kesalahan saat menghubungkan ke target

Verifikasi bahwa aplikasi Anda merespons permintaan pemeriksaan kesehatan Load Balancer. Beberapa aplikasi memerlukan konfigurasi tambahan untuk menanggapi pemeriksaan kesehatan, seperti konfigurasi host virtual untuk menanggapi header host HTTP yang dikirim oleh Load Balancer. Nilai header host berisi alamat IP pribadi target, diikuti oleh port pemeriksaan kesehatan saat tidak menggunakan port default. Jika target menggunakan port pemeriksaan kesehatan default, nilai header host hanya berisi alamat IP pribadi target. Misalnya, jika alamat IP pribadi target Anda 10.0.0.10 dan port pemeriksaan kesehatannya8080, header Host HTTP yang dikirim oleh penyeimbang beban dalam pemeriksaan kesehatan adalahHost: 10.0.0.10:8080. Jika alamat IP pribadi target Anda 10.0.0.10 dan port pemeriksaan kesehatannya adalah 80 header Host HTTP yang dikirim oleh penyeimbang beban dalam pemeriksaan kesehatan adalahHost: 10.0.0.10. Konfigurasi host virtual untuk menanggapi host tersebut, atau konfigurasi default, mungkin diperlukan agar berhasil memeriksa kesehatan aplikasi Anda. Permintaan pemeriksaan kesehatan memiliki atribut berikut:User-Agent diatur ke ELB-HealthChecker/2.0, pemangkas garis untuk bidang pesan-header adalah urutan CRLF, dan header berakhir pada baris kosong pertama diikuti oleh CRLF.

Klien tidak dapat menyambung ke Load Balancer yang menghadap internet

Jika Load Balancer tidak merespons permintaan, periksa masalah berikut ini:

Load Balancer yang menghadap internet Anda terpasang ke subnet pribadi

Anda harus menentukan subnet publik untuk Load Balancer Anda. Subnet publik memiliki rute ke Internet Gateway untuk cloud privat virtual (VPC) Anda.

Grup keamanan atau jaringan ACL tidak mengizinkan lalu lintas

Kelompok keamanan untuk Load Balancer dan jaringan ACL apapun untuk subnet Load Balancer harus memungkinkan lalu lintas masuk dari klien dan lalu lintas keluar untuk klien pada port pendengar.

Permintaan yang dikirim ke domain kustom tidak diterima oleh penyeimbang beban

Jika penyeimbang beban tidak menerima permintaan yang dikirim ke domain kustom, periksa masalah berikut:

Nama domain kustom tidak diselesaikan ke alamat IP penyeimbang beban
  • Konfirmasikan alamat IP apa yang diselesaikan oleh nama domain khusus untuk menggunakan antarmuka baris perintah.

    • Linux, macOS, atau Unix — Anda dapat menggunakan dig perintah di dalam Terminal. Mantan. dig example.com

    • Windows — Anda dapat menggunakan nslookup perintah dalam Command Prompt. Mantan. nslookup example.com

  • Konfirmasikan alamat IP apa yang diselesaikan oleh nama DNS penyeimbang beban untuk menggunakan antarmuka baris perintah.

  • Bandingkan hasil dari dua output. Alamat IP harus cocok.

Jika menggunakan Route 53 untuk meng-host domain kustom Anda, lihat Domain saya tidak tersedia di internet di Panduan Pengembang Amazon Route 53.

Permintaan HTTPS yang dikirim ke penyeimbang beban mengembalikan “NET: :ERR_CERT_COMMON_NAME_INVALID”

Jika permintaan HTTPS diterima NET::ERR_CERT_COMMON_NAME_INVALID dari penyeimbang beban, periksa kemungkinan penyebab berikut:

  • Nama domain yang digunakan dalam permintaan HTTPS tidak cocok dengan nama alternatif yang ditentukan dalam sertifikat ACM terkait pendengar.

  • Nama DNS default load balancers sedang digunakan. Nama DNS default tidak dapat digunakan untuk membuat permintaan HTTPS karena sertifikat publik tidak dapat diminta untuk *.amazonaws.com domain.

Load balancer menunjukkan peningkatan waktu pemrosesan

Penyeimbang beban menghitung waktu pemrosesan secara berbeda berdasarkan konfigurasi.

  • Jika AWS WAF dikaitkan dengan Application Load Balancer Anda dan klien mengirimkan permintaan HTTP POST, waktu untuk mengirim data untuk permintaan POST tercermin dalam request_processing_time bidang di log akses penyeimbang beban. Perilaku ini diharapkan untuk permintaan HTTP POST.

  • Jika AWS WAF tidak terkait dengan Application Load Balancer Anda dan klien mengirimkan permintaan HTTP POST, waktu untuk mengirim data untuk permintaan POST tercermin dalam target_processing_time bidang di log akses penyeimbang beban. Perilaku ini diharapkan untuk permintaan HTTP POST.

Load Balancer mengirimkan kode respon 000

Dengan koneksi HTTP/2, jika panjang terkompresi dari salah satu header melebihi 8 K byte atau jika jumlah permintaan yang disajikan melalui satu koneksi melebihi 10.000, penyeimbang beban mengirimkan bingkai GOAWAY dan menutup koneksi dengan TCP FIN.

Load Balancer menghasilkan kesalahan HTTP

Kesalahan HTTP berikut dihasilkan oleh Load Balancer. Load Balancer mengirimkan kode HTTP untuk klien, menyimpan permintaan ke log akses, dan menambahkan metrik HTTPCode_ELB_4XX_Countatau HTTPCode_ELB_5XX_Count.

HTTP 400: Permintaan buruk

Kemungkinan penyebab :

  • Klien mengirim permintaan cacat yang tidak memenuhi spesifikasi HTTP.

  • Header permintaan melebihi 16 K per baris permintaan, 16 K per header tunggal, atau 64 K untuk seluruh header permintaan.

  • Klien menutup koneksi sebelum mengirim badan permintaan lengkap.

HTTP 401: Tidak sah

Anda mengkonfigurasi aturan pendengar untuk mengautentikasi pengguna, tetapi salah satu dari yang berikut ini benar:

  • Anda mengkonfigurasi OnUnauthenticatedRequest untuk menolak pengguna yang tidak terautentikasi atau IdP ditolak akses.

  • Ukuran klaim yang dikembalikan oleh IdP melebihi ukuran maksimum yang didukung oleh Load Balancer.

  • Klien mengirimkan permintaan HTTP/1.0 tanpa host header, dan Load Balancer tidak dapat menghasilkan URL pengalihan.

  • Lingkup yang diminta tidak mengembalikan ID token.

  • Anda tidak menyelesaikan proses login sebelum batas waktu login klien berakhir. Untuk informasi selengkapnya lihat, batas waktu login Klien.

HTTP 403: Terlarang

Anda mengonfigurasi daftar kontrol akses AWS WAF web (web ACL) untuk memantau permintaan ke Application Load Balancer Anda dan memblokir permintaan.

HTTP 405: Metode tidak diperbolehkan

Klien menggunakan metode TRACE, yang tidak didukung oleh Application Load Balancer.

HTTP 408: Waktu habis permintaan

Klien tidak mengirim data sebelum periode waktu habis siaga kedaluwarsa. Mengirim TCP tetap-hidup tidak mencegah waktu habis ini. Kirim setidaknya 1 byte data sebelum setiap periode waktu habis siaga berlalu. Meningkatkan panjang periode waktu habis siaga sesuai kebutuhan.

HTTP 413: Muatan terlalu besar

Kemungkinan penyebab:

  • Target adalah fungsi Lambda dan isi permintaan melebihi 1 MB.

  • Header permintaan melebihi 16 K per baris permintaan, 16 K per header tunggal, atau 64 K untuk seluruh header permintaan.

HTTP 414: URI terlalu panjang

Permintaan URL atau parameter kueri string terlalu besar.

HTTP 460

Load Balancer menerima permintaan dari klien, namun klien menutup koneksi dengan Load Balancer sebelum periode timeout siaga berlalu.

Periksa apakah periode waktu habis klien lebih besar daripada periode waktu habis siaga untuk Load Balancer. Pastikan bahwa target Anda memberikan respons ke klien sebelum periode waktu habis klien berlalu, atau meningkatkan periode waktu habis klien untuk mencocokkan batas waktu siaga Load Balancer, jika klien mendukung ini.

HTTP 463

Load balancer menerima permintaan header X-Forwarded-Untuk dengan terlalu banyak alamat IP. Batas atas untuk alamat IP adalah 30.

HTTP 464

Load Balancer menerima protokol permintaan masuk yang tidak kompatibel dengan konfigurasi versi protokol grup target.

Kemungkinan penyebab :

  • Protokol permintaan adalah HTTP/1.1, sedangkan versi protokol kelompok target adalah gRPC atau HTTP/2.

  • Protokol permintaan adalah gRPC, sedangkan versi protokol kelompok target adalah HTTP/1.1.

  • Protokol permintaan adalah HTTP/2 dan permintaan tidak POST, sementara versi protokol kelompok target adalah gRPC.

HTTP 500: Kesalahan peladen internal

Kemungkinan penyebab:

  • Anda mengkonfigurasi daftar kontrol akses AWS WAF web (web ACL) dan ada kesalahan dalam mengeksekusi aturan ACL web.

  • Load Balancer tidak dapat berkomunikasi dengan IdP tanda akhir atau IdP pengguna info akhir.

    • Verifikasi bahwa DNS IDP dapat diselesaikan secara publik.

    • Verifikasi bahwa grup keamanan untuk Load Balancer dan ACL jaringan untuk VPC Anda memungkinkan akses keluar ke titik akhir ini.

    • Verifikasi bahwa VPC Anda memiliki akses internet. Jika Anda memiliki Load Balancer menghadap internal, gunakan gateway NAT untuk mengaktifkan akses internet.

  • Klaim pengguna yang diterima dari IDP berukuran lebih besar dari 11KB.

HTTP 501: Tidak diimplementasikan

Load Balancer menerima header Transfer-Pengodeandengan nilai yang tidak didukung. Nilai-nilai yang didukung untuk Transfer Pengodean adalah chunkeddan identity. Sebagai alternatif, Anda dapat menggunakan Header Pengodean-Konten.

HTTP 502: Gateway buruk

Kemungkinan penyebab :

  • Load Balancer menerima TCP RST dari target saat mencoba membuat sambungan.

  • Load Balancer menerima respons tak terduga dari target, seperti “ICMP tujuan tidak terjangkau (Host tidak terjangkau)”, ketika mencoba untuk membuat sambungan. Periksa apakah lalu lintas diperbolehkan dari subnet Load Balancer ke target pada port target.

  • Target menutup koneksi dengan TCP RST atau TCP FIN sementara Load Balancer memiliki permintaan yang luar biasa ke target. Periksa apakah durasi tetap-menyala target lebih pendek dari nilai batas waktu siaga Load Balancer.

  • Respon target rusak atau berisi header HTTP yang tidak valid.

  • Header respons target melebihi 32 K untuk seluruh header respons.

  • Periode penundaan deregistration berlalu untuk permintaan yang ditangani oleh target yang dibatalkan. Tingkatkan masa tunda sehingga operasi yang panjang bisa selesai.

  • Target adalah fungsi Lambda dan isi respon melebihi 1 MB.

  • Target adalah fungsi Lambda yang tidak merespon sebelum waktu habis yang dikonfigurasi tercapai.

  • Target adalah fungsi Lambda yang mengembalikan kesalahan atau fungsi itu dicekik oleh layanan Lambda.

  • Penyeimbang beban mengalami kesalahan jabat tangan SSL saat menghubungkan ke target.

Untuk informasi selengkapnya lihat Bagaimana cara memecahkan masalah error Application Load Balancer HTTP 502 di Pusat Pengetahuan Dukungan. AWS

503 Layanan Tidak Tersedia

Kelompok target untuk Load Balancer tidak memiliki target yang terdaftar.

HTTP 504: Waktu habis gateway

Kemungkinan penyebab :

  • Load Balancer gagal untuk membuat sambungan ke target sebelum batas waktu sambungan berakhir (10 detik).

  • Load Balancer membuat sambungan ke target tetapi target tidak merespons sebelum periode waktu habis siaga berlalu.

  • Jaringan ACL atau SecurityGroup Kebijakan tidak mengizinkan lalu lintas dari target ke node penyeimbang beban pada port sementara (1024-65535).

  • Target mengembalikan header konten-panjang yang lebih besar dari isi entitas. Load Balancer kehabisan waktu menunggu byte hilang.

  • Target adalah fungsi Lambda dan layanan Lambda tidak merespons sebelum batas waktu koneksi berakhir.

  • Penyeimbang beban mengalami batas waktu jabat tangan SSL (10 detik) saat menghubungkan ke target.

HTTP 505: Versi tidak didukung

Load Balancer menerima permintaan versi HTTP yang tak terduga. Misalnya, Load Balancer membuat koneksi HTTP/1 tetapi menerima permintaan HTTP/2.

HTTP 507: Penyimpanan Tidak Cukup

URL redirect terlalu panjang.

HTTP 561: Tidak sah

Anda mengkonfigurasi aturan pendengar untuk mengautentikasi pengguna, tetapi IdP mengembalikan kode galat saat mengautentikasi pengguna. Periksa log akses Anda untuk kode alasan kesalahan terkait.

Target menghasilkan kesalahan HTTP

Load Balancer meneruskan respons HTTP yang valid dari target ke klien, termasuk kesalahan HTTP. Kesalahan HTTP yang dihasilkan oleh target dicatat dalam metrik HTTPCode_Target_4XX_Count dan HTTPCode_Target_5XX_Count.

AWS Certificate Manager Sertifikat tidak tersedia untuk digunakan

Saat memutuskan untuk menggunakan pendengar HTTPS dengan Application Load Balancer AWS Certificate Manager , Anda harus memvalidasi kepemilikan domain sebelum menerbitkan sertifikat. Jika langkah ini terlewatkan selama penyiapan, sertifikat tetap dalam Pending Validation status, dan tidak tersedia untuk digunakan sampai divalidasi.

  • Jika menggunakan validasi email, lihat Validasi email di AWS Certificate Manager Panduan Pengguna.

  • Jika menggunakan validasi DNS, lihat Validasi DNS di Panduan Pengguna.AWS Certificate Manager

Header Multi-Line tidak didukung

Application Load Balancers tidak mendukung header multi-line, termasuk header tipe media. message/http Ketika header multi-baris disediakan Application Load Balancer menambahkan karakter titik dua, : "“, sebelum meneruskannya ke target.

Memecahkan masalah target yang tidak sehat menggunakan peta sumber daya

Jika target Application Load Balancer gagal dalam pemeriksaan kesehatan, Anda dapat menggunakan peta sumber daya untuk menemukan target yang tidak sehat dan mengambil tindakan berdasarkan kode alasan kegagalan. Untuk informasi selengkapnya, lihat Peta sumber daya Application Load Balancer.

Peta sumber daya menyediakan dua tampilan: Ikhtisar, dan Peta Target Tidak Sehat. Ikhtisar dipilih secara default dan menampilkan semua sumber daya penyeimbang beban Anda. Memilih tampilan Peta Target Tidak Sehat hanya akan menampilkan target yang tidak sehat di setiap grup target yang terkait dengan Application Load Balancer.

catatan

Anda harus mengaktifkan Tampilkan detail sumber daya untuk melihat ringkasan pemeriksaan kesehatan dan pesan kesalahan untuk semua sumber daya yang berlaku dalam peta sumber daya. Ketika tidak diaktifkan, Anda harus memilih setiap sumber daya untuk melihat detailnya.

Kolom Grup target menampilkan ringkasan target yang sehat dan tidak sehat untuk setiap kelompok sasaran. Ini dapat membantu menentukan apakah semua target gagal dalam pemeriksaan kesehatan, atau hanya target tertentu yang gagal. Jika semua target dalam kelompok sasaran gagal pemeriksaan kesehatan, periksa konfigurasi kelompok sasaran. Pilih nama grup target untuk membuka halaman detailnya di tab baru.

Kolom TargetId menampilkan targetID dan status pemeriksaan kesehatan saat ini untuk setiap target. Ketika target tidak sehat, kode alasan kegagalan pemeriksaan kesehatan ditampilkan. Ketika satu target gagal dalam pemeriksaan kesehatan, verifikasi target memiliki sumber daya yang cukup dan konfirmasikan bahwa aplikasi yang berjalan pada target tersedia. Pilih ID target untuk membuka halaman detailnya di tab baru.

Memilih Ekspor memberi Anda opsi untuk mengekspor tampilan saat ini dari peta sumber daya Application Load Balancer Anda sebagai PDF.

Verifikasi bahwa instans Anda gagal dalam pemeriksaan kesehatan dan kemudian berdasarkan pemeriksaan kode alasan kegagalan untuk masalah berikut:

  • Tidak Sehat: Ketidakcocokan Respons HTTP

    • Verifikasi aplikasi yang berjalan pada target mengirimkan respons HTTP yang benar ke permintaan pemeriksaan kesehatan Application Load Balancer.

    • Atau, Anda dapat memperbarui permintaan pemeriksaan kesehatan Application Load Balancer agar sesuai dengan respons dari aplikasi yang berjalan pada target.

  • Tidak sehat: Waktu permintaan habis

    • Verifikasi grup keamanan dan daftar kontrol akses jaringan (ACL) yang terkait dengan target Anda dan Application Load Balancer tidak memblokir konektivitas.

    • Pastikan target memiliki sumber daya yang cukup tersedia untuk menerima koneksi dari Application Load Balancer.

    • Verifikasi status aplikasi apa pun yang berjalan pada target.

    • Respons pemeriksaan kesehatan Application Load Balancer dapat dilihat di setiap log aplikasi target. Untuk informasi lebih lanjut, lihat Health check kode alasan.

  • Tidak sehat: FailedHealthChecks

    • Verifikasi status aplikasi apa pun yang berjalan pada target.

    • Verifikasi target mendengarkan lalu lintas di port pemeriksaan kesehatan.

      Saat menggunakan pendengar HTTPS

      Anda memilih kebijakan keamanan yang digunakan untuk koneksi front-end. Kebijakan keamanan yang digunakan untuk koneksi back-end dipilih secara otomatis berdasarkan kebijakan keamanan front-end yang digunakan.

      • Jika pendengar HTTPS Anda menggunakan kebijakan keamanan TLS 1.3 untuk koneksi front-end, kebijakan ELBSecurityPolicy-TLS13-1-0-2021-06 keamanan akan digunakan untuk koneksi back-end.

      • Jika pendengar HTTPS Anda tidak menggunakan kebijakan keamanan TLS 1.3 untuk koneksi front-end, kebijakan ELBSecurityPolicy-2016-08 keamanan akan digunakan untuk koneksi back-end.

      Untuk informasi selengkapnya, lihat Kebijakan keamanan.

    • Verifikasi target menyediakan sertifikat server dan kunci dalam format yang benar yang ditentukan oleh kebijakan keamanan.

    • Verifikasi target mendukung satu atau lebih cipher yang cocok, dan protokol yang disediakan oleh Application Load Balancer untuk membuat jabat tangan TLS.