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.

Application Load Balancer

Penyeimbang beban berfungsi sebagai titik kontak tunggal untuk klien. Klien mengirim permintaan ke penyeimbang beban, dan penyeimbang beban mengirimkannya ke target, seperti EC2 instance. Untuk mengonfigurasi penyeimbang beban, Anda membuat grup target, lalu mendaftarkan target dengan grup target Anda. Anda juga membuat listener untuk memeriksa permintaan koneksi dari klien dan aturan listener untuk merutekan permintaan dari klien ke target di satu atau beberapa grup target.

Untuk informasi selengkapnya, lihat Cara kerja Elastic Load Balancing di Panduan Pengguna Elastic Load Balancing.

Subnet untuk penyeimbang beban Anda

Saat Anda membuat Application Load Balancer, Anda harus mengaktifkan zona yang berisi target Anda. Untuk mengaktifkan zona, tentukan subnet di zona tersebut. Elastic Load Balancing menciptakan simpul penyeimbang beban di setiap zona yang Anda tentukan.

Pertimbangan
  • Penyeimbang beban Anda paling efektif ketika Anda memastikan bahwa setiap zona yang diaktifkan memiliki setidaknya satu target terdaftar.

  • Jika Anda mendaftarkan target di zona tetapi tidak mengaktifkan zona tersebut, target terdaftar ini tidak menerima lalu lintas dari penyeimbang beban.

  • Jika Anda mengaktifkan beberapa zona untuk penyeimbang beban Anda, zona harus dari jenis yang sama. Misalnya, Anda tidak dapat mengaktifkan Availability Zone dan Local Zone.

  • Anda dapat menentukan subnet yang dibagikan dengan Anda.

Aplikasi Load Balancers mendukung jenis subnet berikut.

Subnet Zona Ketersediaan

Anda harus memilih setidaknya dua subnet Availability Zone. Pembatasan berikut berlaku:

  • Setiap subnet harus berasal dari Availability Zone yang berbeda.

  • Untuk memastikan penyeimbang beban Anda dapat menskalakan dengan benar, verifikasi bahwa setiap subnet Availability Zone untuk penyeimbang beban Anda memiliki CIDR blok dengan setidaknya /27 bitmask (misalnya,10.0.0.0/27) dan setidaknya delapan alamat IP gratis per subnet. Kedelapan alamat IP ini diperlukan untuk memungkinkan penyeimbang beban skala jika diperlukan. Penyeimbang beban Anda menggunakan alamat IP ini untuk membuat koneksi dengan target. Tanpa mereka Application Load Balancer Anda dapat mengalami kesulitan dengan upaya penggantian node, menyebabkannya memasuki status gagal.

    Catatan: Jika subnet Application Load Balancers kehabisan alamat IP yang dapat digunakan saat mencoba menskalakan, Application Load Balancer akan berjalan dengan kapasitas yang tidak mencukupi. Selama waktu ini node lama akan terus melayani lalu lintas, tetapi upaya penskalaan yang macet dapat menyebabkan kesalahan 5xx atau batas waktu ketika mencoba membuat koneksi.

Subnet Zona Lokal

Anda dapat menentukan satu atau beberapa subnet Zona Lokal. Pembatasan berikut berlaku:

  • Anda tidak dapat menggunakan AWS WAF dengan penyeimbang beban.

  • Anda tidak dapat menggunakan fungsi Lambda sebagai target.

  • Anda tidak dapat menggunakan sesi lengket atau kelengketan aplikasi.

Subnet pos terdepan

Anda dapat menentukan subnet Outpost tunggal. Pembatasan berikut berlaku:

  • Anda harus menginstal dan mengonfigurasi Outpost di pusat data On-Premise Anda. Anda harus memiliki koneksi jaringan yang dapat diandalkan antara Outpost Anda dan Wilayah AWS . Untuk informasi selengkapnya, lihat Panduan Pengguna AWS Outposts.

  • Penyeimbang beban membutuhkan dua large instance di Outpost untuk node penyeimbang beban. Jenis instance yang didukung ditampilkan dalam tabel berikut. Timbangan penyeimbang beban sesuai kebutuhan, mengubah ukuran node satu ukuran pada satu waktu (dari large kexlarge, lalu xlarge ke2xlarge, dan kemudian 2xlarge ke4xlarge). Setelah menskalakan node ke ukuran instans terbesar, jika Anda membutuhkan kapasitas tambahan, penyeimbang beban menambahkan 4xlarge instance sebagai node penyeimbang beban. Jika Anda tidak memiliki kapasitas instans yang memadai atau alamat IP yang tersedia untuk menskalakan penyeimbang beban, penyeimbang beban melaporkan peristiwa ke AWS Health Dashboard dan status penyeimbang beban adalah active_impaired.

  • Anda dapat mendaftarkan target dengan ID instans atau alamat IP. Jika Anda mendaftarkan target di AWS Wilayah untuk Pos Luar, mereka tidak digunakan.

  • Fitur berikut tidak tersedia: Fungsi Lambda sebagai target, integrasi AWS WAF , sesi lekat, dukungan autentikasi, dan integrasi dengan AWS Global Accelerator.

Application Load Balancer dapat di-deploy pada instans c5/c5d, m5/m5d, atau r5/r5d pada Outpost. Tabel berikut menunjukkan ukuran dan EBS volume per jenis instans yang dapat digunakan penyeimbang beban pada Outpost:

Tipe dan ukuran instans EBSvolume (GB)
c5/c5d
large 50
xlarge 50
2xlarge 50
4xlarge 100
m5/m5d
large 50
xlarge 50
2xlarge 100
4xlarge 100
r5/r5d
large 50
xlarge 100
2xlarge 100
4xlarge 100

Grup keamanan penyeimbang beban

Grup keamanan bertindak sebagai firewall yang mengontrol lalu lintas yang diizinkan ke dan dari penyeimbang beban Anda. Anda dapat memilih port dan protokol untuk mengizinkan lalu lintas masuk dan keluar.

Aturan untuk grup keamanan yang terkait dengan penyeimbang beban Anda harus mengizinkan lalu lintas di kedua arah pada listener dan port pemeriksaan kondisi. Setiap kali menambahkan listener ke penyeimbang beban atau memperbarui port pemeriksaan kondisi untuk grup target, Anda harus meninjau aturan grup keamanan untuk memastikan bahwa mereka mengizinkan lalu lintas pada port baru di kedua arah. Untuk informasi selengkapnya, lihat Aturan yang direkomendasikan.

Status penyeimbang beban

Penyeimbang beban dapat berada dalam salah satu status berikut:

provisioning

Penyeimbang beban sedang disiapkan.

active

Penyeimbang beban telah sepenuhnya disiapkan dan siap untuk merutekan lalu lintas.

active_impaired

Penyeimbang beban merutekan lalu lintas, tetapi tidak memiliki sumber daya yang dibutuhkan untuk menskalakan.

failed

Penyeimbang beban tidak dapat disiapkan.

Atribut penyeimbang beban

Berikut adalah atribut penyeimbang beban:

access_logs.s3.enabled

Menunjukkan apakah log akses yang disimpan di Amazon S3 diaktifkan. Default-nya adalah false.

access_logs.s3.bucket

Nama bucket Amazon S3 untuk log akses. Atribut ini diperlukan jika log akses diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan log akses.

access_logs.s3.prefix

Prefiks untuk lokasi di bucket Amazon S3.

client_keep_alive.seconds

Nilai klien keepalive, dalam hitungan detik. Standarnya adalah 3600 detik.

deletion_protection.enabled

Menunjukkan apakah perlindungan penghapusan diaktifkan. Default-nya adalah false.

idle_timeout.timeout_seconds

Nilai batas waktu idle dalam detik. Nilai default-nya adalah 60 detik.

ipv6.deny_all_igw_traffic

Memblokir akses gateway internet (IGW) ke penyeimbang beban, mencegah akses yang tidak diinginkan ke penyeimbang beban internal Anda melalui gateway internet. Ini diatur false untuk penyeimbang beban yang menghadap ke internet dan true untuk penyeimbang beban internal. Atribut ini tidak mencegah akses IGW non-internet (seperti, melalui peering, Transit Gateway AWS Direct Connect, atau AWS VPN).

routing.http.desync_mitigation_mode

Menentukan bagaimana penyeimbang beban menangani permintaan yang mungkin menimbulkan risiko keamanan pada aplikasi Anda. Nilai yang mungkin adalah monitor, defensive, dan strictest. Default-nya adalah defensive.

routing.http.drop_invalid_header_fields.enabled

Menunjukkan apakah HTTP header dengan bidang header yang tidak valid dihapus oleh load balancer (true), atau dirutekan ke target (). false Default-nya adalah false. Elastic Load Balancing mengharuskan nama HTTP header yang valid sesuai dengan ekspresi reguler[-A-Za-z0-9]+, seperti yang dijelaskan dalam Registri Nama HTTP Bidang. Setiap nama terdiri dari karakter alfanumerik atau tanda hubung. Pilih true jika Anda ingin HTTP header yang tidak sesuai dengan pola ini, untuk dihapus dari permintaan.

routing.http.preserve_host_header.enabled

Menunjukkan apakah Application Load Balancer harus mempertahankan Host header dalam HTTP permintaan dan mengirimkannya ke target tanpa perubahan apa pun. Nilai yang mungkin adalah true dan false. Default-nya adalah false.

routing.http.x_amzn_tls_version_and_cipher_suite.enabled

Menunjukkan apakah dua header (x-amzn-tls-versiondanx-amzn-tls-cipher-suite), yang berisi informasi tentang TLS versi yang dinegosiasikan dan cipher suite, ditambahkan ke permintaan klien sebelum mengirimnya ke target. x-amzn-tls-versionHeader memiliki informasi tentang versi TLS protokol yang dinegosiasikan dengan klien, dan x-amzn-tls-cipher-suite header memiliki informasi tentang cipher suite yang dinegosiasikan dengan klien. Kedua header dalam SSL format Terbuka. Nilai yang mungkin untuk atribut adalah true danfalse. Default-nya adalah false.

routing.http.xff_client_port.enabled

Menunjukkan apakah X-Forwarded-For header harus mempertahankan port sumber yang digunakan klien untuk terhubung ke penyeimbang beban. Nilai yang mungkin adalah true dan false. Default-nya adalah false.

routing.http.xff_header_processing.mode

Memungkinkan Anda untuk memodifikasi, mempertahankan, atau menghapus X-Forward-For header dalam HTTP permintaan sebelum Application Load Balancer mengirimkan permintaan ke target. Nilai yang mungkin adalah append, preserve, dan remove. Default-nya adalah append.

  • Jika nilainyaappend, Application Load Balancer menambahkan alamat IP klien (dari lompatan terakhir) ke X-Forward-For header dalam HTTP permintaan sebelum mengirimkannya ke target.

  • Jika nilainyapreserve, Application Load Balancer mempertahankan X-Forward-For header dalam HTTP permintaan, dan mengirimkannya ke target tanpa perubahan apa pun.

  • Jika nilainyaremove, Application Load Balancer menghapus X-Forward-For header dalam HTTP permintaan sebelum mengirimkannya ke target.

routing.http2.enabled

Menunjukkan apakah HTTP /2 diaktifkan. Default-nya adalah true.

waf.fail_open.enabled

Menunjukkan apakah akan mengizinkan penyeimbang beban yang AWS WAF diaktifkan untuk merutekan permintaan ke target jika tidak dapat meneruskan permintaan ke. AWS WAF Nilai yang mungkin adalah true dan false. Default-nya adalah false.

catatan

routing.http.drop_invalid_header_fields.enabledAtribut diperkenalkan untuk menawarkan perlindungan HTTP desync. routing.http.desync_mitigation_modeAtribut ditambahkan untuk memberikan perlindungan yang lebih komprehensif dari HTTP desync untuk aplikasi Anda. Anda tidak diharuskan untuk menggunakan kedua atribut dan dapat memilih salah satunya, tergantung pada persyaratan aplikasi Anda.

Jenis alamat IP

Anda dapat mengatur jenis alamat IP yang dapat digunakan klien untuk mengakses penyeimbang beban internal dan internet-facing Anda.

Application Load Balancers mendukung jenis alamat IP berikut:

ipv4

Klien harus terhubung ke penyeimbang beban menggunakan IPv4 alamat (misalnya, 192.0.2.1)

dualstack

Klien dapat terhubung ke penyeimbang beban menggunakan kedua IPv4 alamat (misalnya, 192.0.2.1) dan IPv6 alamat (misalnya, 2001:0 db 8:85 a 3:0:0:8 a2e: 0370:7334).

Pertimbangan
  • Load balancer berkomunikasi dengan target berdasarkan jenis alamat IP dari kelompok target.

  • Saat Anda mengaktifkan mode dualstack untuk penyeimbang beban, Elastic Load Balancing memberikan AAAA DNS catatan untuk penyeimbang beban. Klien yang berkomunikasi dengan penyeimbang beban menggunakan IPv4 alamat menyelesaikan DNS catatan A. Klien yang berkomunikasi dengan penyeimbang beban menggunakan IPv6 alamat menyelesaikan AAAA DNS catatan.

  • Akses ke penyeimbang beban dualstack internal Anda melalui gateway internet diblokir untuk mencegah akses internet yang tidak diinginkan. Namun, ini tidak mencegah akses IGW non-internet (seperti, melalui peering, Transit Gateway AWS Direct Connect, atau AWS VPN).

dualstack-without-public-ipv4

Klien harus terhubung ke penyeimbang beban menggunakan IPv6 alamat (misalnya, 2001:0 db 8:85 a 3:0:0:8 a2e: 0370:7334).

Pertimbangan
  • Autentikasi Application Load Balancer hanya mendukung IPv4 saat menghubungkan ke Endpoint Penyedia Identitas (IDP) atau Amazon Cognito. Tanpa IPv4 alamat publik penyeimbang beban tidak dapat menyelesaikan proses otentikasi, menghasilkan HTTP 500 kesalahan.

Untuk informasi selengkapnya tentang jenis alamat IP, lihatPerbarui jenis alamat IP untuk Application Load Balancer.

Koneksi penyeimbang beban

Saat memproses permintaan, penyeimbang beban mempertahankan dua koneksi: satu koneksi dengan klien dan satu koneksi dengan target. Koneksi antara penyeimbang beban dan klien juga disebut sebagai koneksi front-end. Koneksi antara penyeimbang beban dan target juga disebut sebagai koneksi back-end.

Penyeimbangan beban lintas zona

Dengan Application Load Balancers, penyeimbangan beban lintas zona aktif secara default dan tidak dapat diubah pada tingkat penyeimbang beban. Untuk informasi selengkapnya, lihat bagian penyeimbangan beban lintas zona di Panduan Pengguna Elastic Load Balancing.

Mematikan penyeimbangan beban lintas zona dimungkinkan di tingkat kelompok sasaran. Untuk informasi selengkapnya, lihat Matikan penyeimbangan beban lintas zona.

Aplikasi Load Balancer dan AWS WAF

Anda dapat menggunakan AWS WAF Application Load Balancer untuk mengizinkan atau memblokir permintaan berdasarkan aturan dalam daftar kontrol akses web (webACL). Untuk informasi selengkapnya, lihat Bekerja dengan web ACLs di Panduan AWS WAF Pengembang.

Secara default, jika penyeimbang beban tidak bisa mendapatkan respons dari AWS WAF, ia mengembalikan kesalahan HTTP 500 dan tidak meneruskan permintaan. Jika Anda membutuhkan penyeimbang beban untuk meneruskan permintaan ke target meskipun tidak dapat dihubungi AWS WAF, Anda dapat mengaktifkan AWS WAF gagal terbuka. Untuk memeriksa apakah penyeimbang beban Anda terintegrasi dengan AWS WAF, pilih penyeimbang beban Anda di AWS Management Console dan pilih tab Layanan terintegrasi.

Web yang telah ditentukan sebelumnya ACLs

Saat mengaktifkan AWS WAF integrasi, Anda dapat memilih untuk membuat web baru secara otomatis ACL dengan aturan yang telah ditentukan sebelumnya. Web yang telah ditentukan sebelumnya ACL mencakup tiga aturan AWS terkelola yang menawarkan perlindungan terhadap ancaman keamanan yang paling umum.

Untuk mengaktifkan AWS WAF 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 Integrasi, perluas AWS Web Application Firewall (WAF), dan pilih Associate a WAF web ACL.

  5. Di bawah Web ACL, pilih Auto-create pre-definied webACL, atau pilih web yang sudah ada. ACL

  6. Di bawah Tindakan aturan, pilih Blokir, atau Hitung.

  7. Pilih Konfirmasi.

Untuk mengaktifkan AWS WAF gagal buka menggunakan AWS CLI

Gunakan modify-load-balancer-attributesperintah dengan waf.fail_open.enabled atribut yang disetel ketrue.