All Products
Search
Document Center

Server Load Balancer:Konfigurasikan persistensi sesi

Last Updated:Jun 02, 2026

Mengaktifkan persistensi sesi pada Application Load Balancer (ALB) memastikan bahwa permintaan dari klien yang sama selalu diarahkan ke server backend yang sama, sehingga menjaga pengalaman pengguna yang konsisten dan integritas data.

Latar Belakang

Secara default, ALB mendistribusikan permintaan ke berbagai server backend. Setelah Anda mengaktifkan persistensi sesi, permintaan dari klien yang sama akan diarahkan ke server backend yang sama. Hal ini memungkinkan server backend mempertahankan informasi status dan memberikan layanan berkelanjutan kepada klien.

  • Persistensi sesi dinonaktifkan: Permintaan dari klien yang sama dapat didistribusikan ke server backend ALB yang berbeda. Dalam beberapa skenario—misalnya saat Anda login ke server backend untuk mengakses informasi interaksi—Anda mungkin perlu login berulang kali.

  • Persistensi sesi diaktifkan: Permintaan dari klien yang sama didistribusikan ke server backend ALB yang sama. Dalam skenario serupa, Anda tidak perlu login berulang kali ke server backend tersebut.

Saat mengaktifkan persistensi sesi untuk instans ALB, Anda harus memilih strategi cookie: Insert Cookie atau Rewrite Cookie.

  • Insert cookie: Saat client mengirim permintaan pertamanya, instans ALB menyisipkan cookie ke dalam respons. Instans ALB menyisipkan dua cookie, yaitu SERVERID dan SERVERCORSID. SERVERCORSID didasarkan pada SERVERID dan mencakup atribut samesite=None. Saat client mengirim permintaan berikutnya yang berisi cookie-cookie tersebut, instans ALB mengarahkan permintaan tersebut ke server backend yang sebelumnya telah dicatat.

    Catatan

    Atribut SameSite=None secara otomatis disertakan saat menggunakan strategi Insert Cookie, sehingga tidak diperlukan konfigurasi tambahan. Hal ini mencegah browser membuang cookie dalam skenario Cross-Origin Resource Sharing (CORS) yang dikonfigurasi dalam aturan pengalihan instans ALB.

  • Rewrite Cookie: Saat instans ALB mendeteksi cookie yang ditentukan pengguna (user-defined cookie), instans tersebut menulis ulang cookie aslinya. Pada permintaan berikutnya yang berisi cookie baru tersebut, instans ALB mengarahkan permintaan ke server backend yang sebelumnya telah dicatat.

Batasan

Persistensi sesi tidak perlu dikonfigurasi untuk kelompok server Function Compute. Untuk informasi lebih lanjut, lihat Buat atau hapus kelompok server.

Prasyarat

  • Anda telah membuat instans ALB yang menghadap Internet dengan status Running. Untuk informasi lebih lanjut, lihat Buat dan kelola instans ALB.

  • Anda telah membuat kelompok server bertipe server atau IP. Untuk informasi lebih lanjut, lihat Buat atau hapus kelompok server.

  • Anda telah membuat dua server backend, ECS01 dan ECS02, untuk menerima permintaan. Layanan backend yang berbeda dideploy di ECS01 dan ECS02 sehingga mengembalikan konten yang berbeda. Misalnya, akses ke ECS01 mengembalikan "Hello World ! This is ECS01.", sedangkan akses ke ECS02 mengembalikan "Hello World ! This is ECS02.". Pastikan aturan security group mengizinkan lalu lintas pada port layanan yang relevan.

  • Anda telah menambahkan ECS01 dan ECS02 ke dalam kelompok server. Untuk informasi lebih lanjut, lihat Tambah atau hapus server backend.

  • Anda telah mengonfigurasi listener untuk instans tersebut. Untuk informasi lebih lanjut, lihat Tambahkan listener HTTP, Tambahkan listener HTTPS, atau Tambahkan listener QUIC.

Langkah 1: Konfigurasikan persistensi sesi

  1. Login ke Konsol ALB.

  2. Di bilah navigasi atas, pilih wilayah tempat kelompok server dideploy.

  3. Di panel navigasi kiri, pilih ALB > Server Groups.

  4. Pada halaman Server Groups, temukan kelompok server target lalu klik Modify Basic Information di kolom Actions.

  5. Pada kotak dialog Modify Basic Information, aktifkan persistensi sesi.

    Nyalakan sakelar Session Persistence dan pilih Cookie Option.

    • Pilih Insert Cookie, masukkan nilai untuk Session Persistence Timeout Period, lalu klik Save.

      Jangan mengatur timeout terlalu lama. Untuk koneksi singkat, disarankan rentang antara 60 hingga 300 detik. Jika timeout terlalu lama, semua permintaan dari klien yang sama akan diarahkan ke server backend yang sama, yang dapat menyebabkan beban tidak seimbang.

    • Pilih Rewrite Cookie, masukkan Cookie, lalu klik Save.

      Pada contoh ini, nama cookie diatur sebagai BACKEND_SERVER. Nama ini hanya untuk demonstrasi; Anda dapat menentukan nama kustom sesuai kebutuhan.

(Opsional) Langkah 2: Konfigurasikan cookie pada server backend

Konfigurasikan cookie pada server backend hanya jika Anda mengaktifkan persistensi sesi dan menetapkan strategi cookie ke Rewrite Cookie.

  1. Login ke instans ECS secara remote. Untuk informasi lebih lanjut, lihat ECS Remote Connection Guide.

  2. Konfigurasikan cookie berdasarkan server web Anda.

    Catatan

    Konfigurasi cookie bervariasi tergantung pada server web. Contoh berikut berlaku untuk server web umum. Jika server Anda tidak tercantum, konsultasikan dokumentasi resminya.

    NGINX

    Contoh ini menggunakan CentOS 7.9 dan NGINX 1.20.1. Konfigurasi aktual tergantung pada lingkungan Anda.

    1. Ubah dan simpan file konfigurasi NGINX. Untuk perubahan yang diperlukan, lihat penjelasan di bawah. Jalankan perintah nginx -t untuk menemukan lokasi file konfigurasi. Lokasi default biasanya /etc/nginx/nginx.conf, tetapi lokasi aktual dapat berbeda tergantung lingkungan Anda.

      http {
        # ...
        server {
          listen       80;
          # BACKEND_SERVER adalah nama cookie yang Anda tentukan saat memilih Rewrite cookie. Atur value ke string apa pun.
          add_header Set-Cookie "BACKEND_SERVER=value";
          # ...
        }
      }
      
    2. Jalankan perintah berikut untuk memuat ulang konfigurasi NGINX:

      sudo nginx -s reload

    Apache

    Contoh ini menggunakan CentOS 7.9 dan Apache 2.4.6. Konfigurasi aktual tergantung pada lingkungan Anda.

    1. Ubah dan simpan file konfigurasi layanan Apache. Untuk perubahan yang diperlukan, lihat petunjuk di bawah. File ini biasanya berada di /etc/httpd/conf/httpd.conf, tetapi lokasi aktual dapat berbeda tergantung lingkungan Anda.

      # ...
      Listen 80
      # BACKEND_SERVER adalah nama cookie yang Anda tentukan saat memilih Rewrite cookie. Atur value ke string apa pun.
      Header always set Set-Cookie "BACKEND_SERVER=value"
      # ...
    2. Jalankan perintah berikut untuk memuat ulang konfigurasi Apache dan menerapkan perubahan:

       sudo systemctl reload httpd.service
  3. Ulangi langkah-langkah ini untuk semua server backend lainnya dalam kelompok server.

Langkah 3: Verifikasi persistensi sesi

  1. Login ke Konsol ALB.

  2. Di bilah navigasi atas, pilih wilayah instans ALB Anda. Temukan instans tersebut dan salin nama domain-nya.

  3. Tempel nama domain ke browser Anda. Halaman dari salah satu server backend akan ditampilkan. Refresh halaman tersebut beberapa kali.

    Sebagai contoh, jika permintaan pertama Anda diarahkan ke ECS01, permintaan berikutnya juga akan diarahkan ke ECS01 setelah Anda me-refresh halaman beberapa kali.

    ECS01验证结果

    Jika respons bergantian antara ECS01 dan ECS02 setelah beberapa kali refresh, persistensi sesi tidak berfungsi dengan benar. Periksa kembali konfigurasi Anda dan uji lagi.

Dokumen Terkait