Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sesi lengket dengan cookie berbasis aplikasi
Saat Anda menggunakan Application Load Balancer dengan cookie berbasis aplikasi:
-
Application Load Balancer menggunakan bobot kelompok target
untuk menentukan bagaimana menyeimbangkan lalu lintas yang masuk antara kelompok sasaran. -
Secara default, Application Load Balancer menggunakan metode round robin untuk merutekan permintaan ke EC2 instance di grup target tujuan.
-
Setelah lalu lintas awalnya dialihkan ke sebuah EC2 instance, respons aplikasi EC2 instance harus berisi cookie aplikasi khusus, yang dikirim kembali ke klien bersama dengan cookie Application Load Balancer otomatis.
-
Lalu lintas berikutnya akan menempel pada EC2 instance jika klien mengirim kembali cookie aplikasi dan cookie Application Load Balancer.
-
Cookie berbasis aplikasi kedaluwarsa setelah tidak digunakan selama durasi yang dikonfigurasi.
Template: Gunakan AWS CloudFormation template stickysessionsapp.yml
(termasuk dalam kode contoh file.zip) untuk mencoba sesi lengket dengan cookie berbasis aplikasi.
Kasus penggunaan umum
Gunakan sesi lengket dengan cookie yang dihasilkan aplikasi saat Anda menginginkan kontrol tambahan dalam skenario ini:
-
Server web PHP
-
Server yang menyimpan data sesi sementara seperti log, keranjang belanja, atau percakapan obrolan
Perubahan kode dari basic.yml.
Satu-satunya perubahan kode ada di konfigurasi grup target. Kami menambahkan konfigurasi stickiness ke Application Load Balancer dan atribut grup target. Durasi cookie aplikasi ditentukan, dan grup target mengaktifkan kekakuan cookie aplikasi.
basic.yml |
stickysessionsapp.yml |
|
|
Langkah-langkah
Catatan
-
Gateway NAT dikenakan biaya kecil.
-
Beberapa EC2 instans akan menghabiskan jam tingkat gratis Anda lebih cepat daripada satu EC2 instans.
-
Terapkan CloudFormation template
stickysessionslb.yml
di lingkungan lab. -
Tunggu sampai status kesehatan kelompok sasaran Anda berubah dari awal menjadi sehat.
-
Arahkan ke URL Application Load Balancer di browser web, menggunakan HTTP (TCP/80).
Misalnya:
http://alb-123456789.us-east-1.elb.amazonaws.com/
Halaman web menampilkan salah satu dari berikut ini: Instance 1 - TG1, Instance 2 - TG1, Instance 3 - TG2, atau Instance 4 - TG2.
-
Refresh halaman beberapa kali.
Hasil yang diharapkan
catatan
CloudFormation Template dalam contoh ini telah mengonfigurasi kelengketan untuk bertahan 10 detik. Konfigurasi durasi lengket yang valid adalah antara 1 detik dan 1 minggu.
Contoh yang memuat halaman web harus tetap sama, seperti yang ditunjukkan oleh teks halaman.
Durasi lengket tidak disegarkan, tetapi didasarkan pada kedaluwarsa yang dikonfigurasi dalam Application Load Balancer untuk cookie aplikasi yang dihasilkan oleh instance. EC2
Contoh 1: Tunggu 5 detik untuk me-refresh halaman. Contoh yang sama akan dimuat dan kekakuan akan disegarkan selama 10 detik lagi.
Contoh 2: Tunggu lebih dari 10 detik untuk memuat ulang halaman. Cookie aplikasi kedaluwarsa, dan Anda diarahkan ke instance yang berbeda EC2 . Instans baru ini menghasilkan cookie aplikasi lain dengan durasi 10 detik.
Cara kerjanya
-
Dalam contoh ini EC2 instance memiliki server web Apache (
httpd
) diinstal.httpd.conf
File dikonfigurasi untuk mengembalikanSet-Cookie
nilai statis kembali ke klien (browser web Anda).Set-Cookie
Nilainya di-hardcode menjadi.TESTCOOKIE=<somevalue>
-
Buka opsi Inspect Element browser Anda, pilih tab Network, lalu pilih metode Get, yang memuat halaman. Anda akan melihat tab Cookies.
-
Browser adalah aplikasi klien yang secara otomatis dikonfigurasi untuk mengembalikan pembaruan berikutnya ke server dengan cookie yang diterimanya dalam
Set-Cookie
respons server. -
Ketika Anda memuat ulang halaman, cookie yang diterima dalam pemuatan halaman awal secara otomatis dikirim kembali ke Application Load Balancer.
-
Jika cookie telah kedaluwarsa (yaitu, 10 detik telah berlalu sejak Anda melakukan panggilan terakhir), Application Load Balancer menggunakan logika baru untuk menentukan instance EC2 mana yang akan mengarahkan lalu lintas.
-
Jika cookie belum kedaluwarsa, Application Load Balancer merutekan lalu lintas ke instance yang sama. EC2
-