Mengedit atribut untuk Network Load Balancer Anda - Elastic Load Balancing

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

Mengedit atribut untuk Network Load Balancer Anda

Setelah Anda membuat Network Load Balancer, Anda dapat mengedit atributnya.

Batas waktu idle koneksi

Batas waktu idle koneksi adalah periode waktu klien yang ada atau koneksi target dapat tetap tidak aktif, tanpa data dikirim atau diterima, sebelum penyeimbang beban menutup koneksi.

Untuk memastikan bahwa operasi yang panjang seperti unggahan file memiliki waktu untuk diselesaikan, kirim setidaknya 1 byte data sebelum setiap periode batas waktu idle berlalu dan tingkatkan panjang periode batas waktu idle sesuai kebutuhan. Sebaiknya konfigurasikan juga batas waktu idle aplikasi Anda menjadi lebih besar daripada batas waktu idle yang dikonfigurasi untuk penyeimbang beban. Jika tidak, jika aplikasi menutup TCP koneksi ke penyeimbang beban dengan tidak sopan, penyeimbang beban mungkin mengirim permintaan ke aplikasi sebelum menerima paket yang menunjukkan bahwa koneksi ditutup. Jika ini masalahnya, maka penyeimbang beban mengirimkan kesalahan HTTP 502 Bad Gateway ke klien.

Secara default, Elastic Load Balancing menetapkan nilai batas waktu idle untuk penyeimbang beban Anda menjadi 60 detik, atau 1 menit. Gunakan prosedur berikut untuk mengatur nilai batas waktu idle yang berbeda.

Untuk memperbarui nilai batas waktu idle koneksi menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah konfigurasi Lalu lintas, masukkan nilai untuk batas waktu idle Connection. Rentang yang valid adalah 1 hingga 4000 detik.

  6. Pilih Simpan perubahan.

Untuk memperbarui nilai batas waktu idle menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan idle_timeout.timeout_seconds atribut.

HTTPdurasi keepalive klien

Durasi keepalive HTTP klien adalah durasi maksimum waktu Application Load Balancer mempertahankan koneksi HTTP persisten ke klien. Setelah durasi keepalive HTTP klien yang dikonfigurasi berlalu, Application Load Balancer menerima satu permintaan lagi dan kemudian mengembalikan respons yang menutup koneksi dengan anggun.

Jenis respons yang dikirim oleh penyeimbang beban tergantung pada HTTP versi yang digunakan oleh koneksi klien.

  • Untuk klien yang terhubung menggunakan HTTP 1.x, penyeimbang beban mengirimkan HTTP header yang berisi bidang. Connection: close

  • Untuk klien yang terhubung menggunakan HTTP /2, penyeimbang beban mengirimkan bingkaiGOAWAY.

Secara default, Application Load Balancer menetapkan nilai durasi keepalive HTTP klien untuk load balancer menjadi 3600 detik, atau 1 jam. Durasi keepalive HTTP klien tidak dapat dimatikan atau disetel di bawah minimum 60 detik, tetapi Anda dapat meningkatkan durasi keepalive HTTP klien, hingga maksimum 604800 detik, atau 7 hari. Application Load Balancer memulai periode durasi keepalive HTTP klien saat HTTP koneksi ke klien awalnya dibuat. Periode durasi berlanjut ketika tidak ada lalu lintas, dan tidak diatur ulang sampai koneksi baru dibuat.

Ketika lalu lintas penyeimbang beban digeser dari Zona Ketersediaan yang terganggu menggunakan pergeseran zona atau pergeseran otomatis zona, klien dengan koneksi terbuka yang ada mungkin terus membuat permintaan terhadap lokasi yang rusak hingga klien terhubung kembali. Untuk mendukung pemulihan yang lebih cepat, pertimbangkan untuk menetapkan nilai durasi keepalive yang lebih rendah, untuk membatasi jumlah waktu klien tetap terhubung ke penyeimbang beban. Untuk informasi selengkapnya, lihat Batasi waktu klien tetap terhubung ke titik akhir Anda di Panduan Pengembang Amazon Application Recovery Controller (ARC).

catatan

Ketika penyeimbang beban mengalihkan jenis alamat IP Application Load Balancer Anda dualstack-without-public-ipv4 ke, penyeimbang beban menunggu semua koneksi aktif selesai. Untuk mengurangi jumlah waktu yang diperlukan untuk mengganti jenis alamat IP untuk Application Load Balancer Anda, pertimbangkan untuk menurunkan HTTP durasi keepalive klien.

Application Load Balancer menetapkan nilai durasi keepalive HTTP klien selama koneksi awal. Saat Anda memperbarui durasi keepalive HTTP klien, ini dapat menghasilkan koneksi simultan dengan nilai durasi keepalive HTTP klien yang berbeda. Koneksi yang ada mempertahankan nilai durasi keepalive HTTP klien yang diterapkan selama koneksi awal. Koneksi baru menerima nilai durasi keepalive HTTP klien yang diperbarui.

Untuk memperbarui nilai durasi keepalive klien menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah konfigurasi Lalu lintas, masukkan nilai untuk durasi keepalive HTTP klien. Kisaran yang valid adalah 60 hingga 604800 detik.

  6. Pilih Simpan perubahan.

Untuk memperbarui nilai durasi keepalive klien menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan client_keep_alive.seconds atribut.

Perlindungan penghapusan

Untuk mencegah penyeimbang beban terhapus secara tidak sengaja, Anda dapat mengaktifkan perlindungan penghapusan. Secara default, perlindungan penghapusan dinonaktifkan untuk penyeimbang beban Anda.

Jika Anda mengaktifkan perlindungan penghapusan untuk penyeimbang beban, Anda harus menonaktifkannya sebelum dapat menghapus penyeimbang beban.

Untuk mengaktifkan perlindungan penghapusan menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah Konfigurasi, aktifkan Perlindungan penghapusan.

  6. Pilih Simpan perubahan.

Untuk menonaktifkan perlindungan penghapusan menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah halaman Konfigurasi, matikan Perlindungan penghapusan.

  6. Pilih Simpan perubahan.

Untuk mengaktifkan atau menonaktifkan perlindungan penghapusan menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan deletion_protection.enabled atribut.

Mode mitigasi desync

Mode mitigasi desync melindungi aplikasi Anda dari masalah karena desync. HTTP Penyeimbang beban mengklasifikasikan setiap permintaan berdasarkan tingkat ancamannya, memungkinkan permintaan yang aman, lalu mengurangi risiko seperti yang ditentukan oleh mode mitigasi yang Anda tentukan. Mode mitigasi desync adalah monitor, defensive, dan strictest. Defaultnya adalah mode defensif, yang menyediakan mitigasi tahan lama terhadap HTTP desync sambil mempertahankan ketersediaan aplikasi Anda. Anda dapat beralih ke mode paling ketat untuk memastikan bahwa aplikasi Anda hanya menerima permintaan yang sesuai dengan RFC7230.

Pustaka http_desync_guardian menganalisis permintaan untuk mencegah serangan desync. HTTP HTTP Untuk informasi lebih lanjut, lihat HTTPDesync Guardian di. GitHub

Klasifikasi

Klasifikasi adalah sebagai berikut:

  • Sesuai - Permintaan mematuhi RFC 7230 dan tidak menimbulkan ancaman keamanan yang diketahui.

  • Dapat diterima — Permintaan tidak mematuhi RFC 7230 tetapi tidak menimbulkan ancaman keamanan yang diketahui.

  • Ambigu — Permintaan tidak mematuhi RFC 7230 tetapi menimbulkan risiko, karena berbagai server web dan proxy dapat menanganinya secara berbeda.

  • Parah — Permintaan menimbulkan risiko keamanan yang tinggi. Penyeimbang beban memblokir permintaan, memberikan 400 respons ke klien, dan menutup koneksi klien.

Jika permintaan tidak sesuai dengan RFC 7230, penyeimbang beban menambah metrik. DesyncMitigationMode_NonCompliant_Request_Count Untuk informasi selengkapnya, lihat Metrik Application Load Balancer.

Klasifikasi untuk setiap permintaan disertakan dalam log akses penyeimbang beban. Jika permintaan tidak sesuai, log akses menyertakan kode alasan klasifikasi. Untuk informasi selengkapnya, lihat Alasan klasifikasi.

Mode

Tabel berikut menjelaskan cara Application Load Balancer menangani permintaan berdasarkan mode dan klasifikasi.

Klasifikasi Mode monitor Mode defensive Mode strictest
Patuh Diizinkan Diizinkan Diizinkan
Dapat diterima Diizinkan Diizinkan Diblokir
Ambigu Diizinkan Diizinkan¹ Diblokir
Parah Diizinkan Diblokir Diblokir

¹ Merutekan permintaan, tetapi menutup koneksi klien dan target. Anda mungkin dikenakan biaya tambahan jika penyeimbang beban menerima sejumlah besar permintaan Ambigu dalam mode Defensive. Ini karena peningkatan jumlah koneksi baru per detik berkontribusi pada Load Balancer Capacity Units (LCU) yang digunakan per jam. Anda dapat menggunakan metrik NewConnectionCount untuk membandingkan cara penyeimbang beban membuat koneksi baru dalam mode Monitor dan mode Defensive.

Untuk memperbarui mode mitigasi desync menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pada panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah Packet handling, untuk mode mitigasi Desync, pilih Defensive, Strictest, atau Monitor.

  6. Pilih Simpan perubahan.

Untuk memperbarui mode mitigasi desync menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan routing.http.desync_mitigation_mode atribut yang disetel kemonitor,defensive, ataustrictest.

Pelestarian header host

Saat Anda mengaktifkan atribut header Preserve host, Application Load Balancer mempertahankan Host header dalam HTTP permintaan, dan mengirimkan header ke target tanpa modifikasi apa pun. Jika Application Load Balancer menerima beberapa Host header, itu mempertahankan semuanya. Aturan pendengar hanya diterapkan pada Host header pertama yang diterima.

Secara default, ketika atribut header Preserve host tidak diaktifkan, Application Load Balancer memodifikasi Host header dengan cara berikut:

Ketika pelestarian header host tidak diaktifkan, dan port listener adalah port non-default: Saat tidak menggunakan port default (port 80 atau 443) kami menambahkan nomor port ke header host jika belum ditambahkan oleh klien. Misalnya, Host header dalam HTTP permintaan dengan Host: www.example.com akan dimodifikasi menjadiHost: www.example.com:8080, jika port listener adalah port non-default seperti. 8080

Ketika pelestarian header host tidak diaktifkan, dan port listener adalah port default (port 80 atau 443): Untuk port pendengar default (baik port 80 atau 443), kami tidak menambahkan nomor port ke header host keluar. Nomor port apa pun yang sudah ada di header host masuk, dihapus.

Tabel berikut menunjukkan lebih banyak contoh bagaimana Application Load Balancers memperlakukan header host dalam HTTP permintaan berdasarkan port listener.

Port pendengar Contoh permintaan Header host dalam permintaan Pelestarian header host dinonaktifkan (perilaku default) Pelestarian header host diaktifkan
Permintaan dikirim pada defaultHTTP/HTTPSlistener. GET /index.html HTTP/1.1 Host: example.com example.com example.com example.com
Permintaan dikirim pada HTTP pendengar default dan header host memiliki port (misalnya, 80 atau 443). GET /index.html HTTP/1.1 Host: example.com:80 example.com:80 example.com example.com:80
Permintaan memiliki jalur absolut. GET https://dns_name/index.html HTTP/1.1 Host: example.com example.com dns_name example.com
Permintaan dikirim pada port pendengar non-default (misalnya, 8080) GET /index.html HTTP/1.1 Host: example.com example.com example.com:8080 example.com
Permintaan dikirim pada port pendengar non-default dan header host memiliki port (misalnya, 8080). GET /index.html HTTP/1.1 Host: example.com:8080 example.com:8080 example.com:8080 example.com:8080
Untuk mengaktifkan pelestarian header host menggunakan konsol
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Di panel navigasi, pilih Load Balancers.

  3. Pilih penyeimbang beban.

  4. Pada tab Atribut, pilih Edit.

  5. Di bawah Penanganan paket, nyalakan header Preserve host.

  6. Pilih Simpan perubahan.

Untuk mengaktifkan pelestarian header host menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan routing.http.preserve_host_header.enabled atribut yang disetel ketrue.