

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
<a name="edit-load-balancer-attributes"></a>

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

**Topics**
+ [Batas waktu idle koneksi](#connection-idle-timeout)
+ [Durasi keepalive klien HTTP](#http-client-keep-alive-duration)
+ [Perlindungan penghapusan](#deletion-protection)
+ [Mode mitigasi desync](#desync-mitigation-mode)
+ [Pelestarian header host](#host-header-preservation)

## Batas waktu idle koneksi
<a name="connection-idle-timeout"></a>

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 koneksi TCP ke penyeimbang beban secara tidak sengaja, 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.

Aplikasi Load Balancer tidak mendukung bingkai HTTP/2 PING. Ini tidak mengatur ulang batas waktu idle koneksi.

Secara default, Elastic Load Balancing mengatur nilai batas waktu idle untuk penyeimbang beban Anda menjadi 60 detik.

------
#### [ Console ]

**Untuk memperbarui nilai batas waktu idle koneksi**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Atribut**, pilih **Edit**.

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

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk memperbarui nilai batas waktu idle koneksi**  
Gunakan [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)perintah dengan `idle_timeout.timeout_seconds` atribut. Rentang yang valid adalah 1 hingga 4000 detik.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=idle_timeout.timeout_seconds,Value=120"
```

------
#### [ CloudFormation ]

**Untuk memperbarui nilai batas waktu idle koneksi**  
Perbarui [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)sumber daya untuk menyertakan `idle_timeout.timeout_seconds` atribut. Rentang yang valid adalah 1 hingga 4000 detik.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "idle_timeout.timeout_seconds"
          Value: "120"
```

------

## Durasi keepalive klien HTTP
<a name="http-client-keep-alive-duration"></a>

Durasi keepalive klien HTTP adalah durasi maksimum waktu Application Load Balancer mempertahankan koneksi HTTP persisten ke klien. Setelah durasi keepalive klien HTTP 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 versi HTTP yang digunakan oleh koneksi klien.
+ Untuk klien yang terhubung menggunakan HTTP 1.x, penyeimbang beban mengirimkan header HTTP 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 klien HTTP untuk load balancer menjadi 3600 detik, atau 1 jam. Durasi keepalive klien HTTP tidak dapat dimatikan atau disetel di bawah minimum 60 detik, tetapi Anda dapat meningkatkan durasi keepalive klien HTTP, hingga maksimum 604800 detik, atau 7 hari. Application Load Balancer memulai periode durasi keepalive klien HTTP ketika koneksi HTTP 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](https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.zonal-shifts.html#arc-zonal-shift.existing-connections) 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 durasi keepalive klien HTTP.

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

------
#### [ Console ]

**Untuk memperbarui durasi keepalive klien**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Atribut**, pilih **Edit**.

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

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk memperbarui durasi keepalive klien**  
Gunakan [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)perintah dengan `client_keep_alive.seconds` atribut. Kisaran yang valid adalah 60 hingga 604800 detik.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=client_keep_alive.seconds,Value=7200"
```

------
#### [ CloudFormation ]

**Untuk memperbarui durasi keepalive klien**  
Perbarui [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)sumber daya untuk menyertakan `client_keep_alive.seconds` atribut. Kisaran yang valid adalah 60 hingga 604800 detik.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "client_keep_alive.seconds"
          Value: "7200"
```

------

## Perlindungan penghapusan
<a name="deletion-protection"></a>

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.

------
#### [ Console ]

**Untuk mengaktifkan atau menonaktifkan perlindungan penghapusan**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Atribut**, pilih **Edit**.

1. Di bawah **Perlindungan**, aktifkan atau nonaktifkan perlindungan **Penghapusan.**

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk mengaktifkan atau menonaktifkan perlindungan penghapusan**  
Gunakan [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)perintah dengan `deletion_protection.enabled` atribut.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=deletion_protection.enabled,Value=true"
```

------
#### [ CloudFormation ]

**Untuk mengaktifkan atau menonaktifkan perlindungan penghapusan**  
Perbarui [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)sumber daya untuk menyertakan `deletion_protection.enabled` atribut.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "deletion_protection.enabled"
          Value: "true"
```

------

## Mode mitigasi desync
<a name="desync-mitigation-mode"></a>

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. Default-nya adalah mode defensive yang memberikan mitigasi tahan lama terhadap HTTP desync sambil mempertahankan ketersediaan aplikasi Anda. Anda dapat beralih ke mode strictest untuk memastikan bahwa aplikasi Anda hanya menerima permintaan yang sesuai dengan [RFC 7230](https://tools.ietf.org/html/rfc7230).

Pustaka http\$1desync\$1guardian menganalisis permintaan HTTP untuk mencegah serangan desync HTTP. Untuk informasi selengkapnya, lihat [HTTP Desync Guardian](https://github.com/aws/http-desync-guardian) di. GitHub

**Klasifikasi**

Klasifikasi adalah sebagai berikut:
+ Patuh — Permintaan sesuai dengan RFC 7230 dan tidak menimbulkan ancaman keamanan yang diketahui.
+ Dapat diterima — Permintaan tidak sesuai dengan RFC 7230, tetapi tidak menimbulkan ancaman keamanan yang diketahui.
+ Ambigu — Permintaan tidak sesuai dengan 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 akan menambah metrik `DesyncMitigationMode_NonCompliant_Request_Count`. Untuk informasi selengkapnya, lihat [Metrik Application Load Balancer](load-balancer-cloudwatch-metrics.md#load-balancer-metrics-alb).

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](load-balancer-access-logs.md#classification-reasons).

**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. Hal ini karena peningkatan jumlah koneksi baru per detik berkontribusi terhadap Load Balancer Capacity Unit (LCU) yang digunakan per jam. Anda dapat menggunakan metrik `NewConnectionCount` untuk membandingkan cara penyeimbang beban membuat koneksi baru dalam mode Monitor dan mode Defensive.

------
#### [ Console ]

**Untuk memperbarui mode mitigasi desync**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Atribut**, pilih **Edit**.

1. ****Di bawah **konfigurasi Lalu Lintas**, **Penanganan paket**, untuk **mode mitigasi Desync**, pilih **Defensive**, Strictest, atau Monitor.****

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk memperbarui mode mitigasi desync**  
Gunakan [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)perintah dengan `routing.http.desync_mitigation_mode` atribut. Nilai yang mungkin adalah `monitor`, `defensive`, atau `strictest`. Nilai default-nya `defensive`.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=routing.http.desync_mitigation_mode,Value=monitor"
```

------
#### [ CloudFormation ]

**Untuk memperbarui mode mitigasi desync**  
Perbarui [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)sumber daya untuk menyertakan `routing.http.desync_mitigation_mode` atribut. Nilai yang mungkin adalah `monitor`, `defensive`, atau `strictest`. Nilai default-nya `defensive`.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "routing.http.desync_mitigation_mode"
          Value: "monitor"
```

------

## Pelestarian header host
<a name="host-header-preservation"></a>

Saat Anda mengaktifkan atribut **header Preserve host**, Application Load Balancer mempertahankan `Host` header dalam permintaan HTTP, 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 permintaan HTTP dengan `Host: www.example.com` akan dimodifikasi menjadi`Host: 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, akan dihapus. 

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


| Port pendengar | Contoh permintaan | Header host dalam permintaan | Pelestarian header host dinonaktifkan (perilaku default) | Pelestarian header host diaktifkan | 
| --- | --- | --- | --- | --- | 
| Permintaan dikirim pada HTTP/HTTPS pendengar default. | GET /index.html HTTP/1.1 Host: example.com | example.com | example.com | example.com | 
| Permintaan dikirim pada pendengar HTTP 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\$1name/index.html HTTP/1.1 Host: example.com | example.com | dns\$1name | 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 | 

------
#### [ Console ]

**Untuk mengaktifkan pelestarian header host**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di panel navigasi, pilih **Load Balancers**.

1. Pilih penyeimbang beban.

1. Pada tab **Atribut**, pilih **Edit**.

1. Di bawah **Penanganan paket**, nyalakan **header Preserve host**.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk mengaktifkan pelestarian header host**  
Gunakan [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)perintah dengan `routing.http.preserve_host_header.enabled` atribut yang disetel ke`true`.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=routing.http.preserve_host_header.enabled,Value=true"
```

------
#### [ CloudFormation ]

**Untuk mengaktifkan pelestarian header host**  
Perbarui [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)sumber daya untuk menyertakan `routing.http.preserve_host_header.enabled` atribut.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "routing.http.preserve_host_header.enabled"
          Value: "true"
```

------