Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengedit atribut untuk Application Load Balancer
Setelah Anda membuat Application Load Balancer, Anda dapat mengedit atributnya.
Atribut penyeimbang beban
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 adil, 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
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pada panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah konfigurasi Traffic, masukkan nilai untuk batas waktu idle Connection. Rentang yang valid adalah 1 hingga 4000 detik.
-
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 bingkai
GOAWAY
.
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
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pada panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah konfigurasi Lalu lintas, masukkan nilai untuk durasi keepalive HTTP klien. Kisaran yang valid adalah 60 hingga 604800 detik.
-
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
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pada panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah Konfigurasi, aktifkan Perlindungan penghapusan.
-
Pilih Simpan perubahan.
Untuk menonaktifkan perlindungan penghapusan menggunakan konsol
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pada panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah halaman Konfigurasi, matikan Perlindungan penghapusan.
-
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
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.
Modus
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
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pada panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah Packet handling, untuk mode mitigasi Desync, pilih Defensive, Strictest, atau Monitor.
-
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
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Di panel navigasi, pilih Load Balancers.
-
Pilih penyeimbang beban.
-
Pada tab Atribut, pilih Edit.
-
Di bawah Penanganan paket, nyalakan header Preserve host.
-
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
.