0Pricing
AWS Solutions Architect · Pelajaran

Terminasi SSL dan Sesi Lengket

Alihkan terminasi TLS ke penyeimbang beban menggunakan sertifikat ACM, dan aktifkan sesi lengket ketika beban kerja berstatus memerlukan keterikatan klien.

Terminasi SSL dan Sesi Lengket adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Terminasi SSL/TLS pada Penyeimbang Beban

Terminasi SSL/TLS berarti penyeimbang beban mendekripsi lalu lintas HTTPS yang masuk, memeriksa permintaan HTTP dalam bentuk teks biasa (untuk menentukan perutean), lalu secara opsional mengenkripsi ulang permintaan tersebut sebelum meneruskannya ke backend. Jika terminasi dilakukan pada ALB, server aplikasi Anda dapat menerima lalu lintas HTTP tanpa enkripsi dari penyeimbang beban, sehingga konfigurasi backend menjadi lebih sederhana.

Terminasi pada penyeimbang beban mengurangi beban CPU pada server aplikasi (tidak ada jabat tangan TLS untuk setiap koneksi), memungkinkan perutean berbasis konten (yang memerlukan pembacaan header HTTP), dan memusatkan pengelolaan sertifikat.

Integrasi AWS Certificate Manager (ACM)

AWS Certificate Manager (ACM) menyediakan, mengelola, dan memperbarui sertifikat SSL/TLS tanpa biaya tambahan. ALB dan NLB terintegrasi langsung dengan ACM: Anda memilih sertifikat ACM dalam konfigurasi listener HTTPS, lalu penyeimbang beban menyajikannya kepada klien yang terhubung.

Sertifikat ACM diperbarui secara otomatis sebelum kedaluwarsa—tanpa pembaruan manual dan tanpa waktu henti akibat sertifikat kedaluwarsa. Untuk sertifikat publik, ACM memvalidasi kepemilikan domain melalui validasi DNS (rekaman CNAME di Route 53) atau validasi email. Untuk penggunaan internal, ACM Private CA dapat menerbitkan sertifikat privat.

# Request a public certificate in ACM
aws acm request-certificate \
  --domain-name api.example.com \
  --subject-alternative-names '*.example.com' \
  --validation-method DNS \
  --region us-east-1

# Create an HTTPS listener using the ACM certificate
aws elbv2 create-listener \
  --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789:loadbalancer/app/my-alb/abc \
  --protocol HTTPS \
  --port 443 \
  --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \
  --certificates CertificateArn=arn:aws:acm:us-east-1:123456789:certificate/cert-id \
  --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-tg/xyz

Server Name Indication (SNI)

SNI (Server Name Indication) adalah ekstensi TLS yang memungkinkan satu alamat IP (dan karena itu satu listener ALB atau NLB) menyajikan beberapa sertifikat TLS untuk nama domain yang berbeda. Klien menyertakan nama host yang hendak diaksesnya dalam pesan TLS ClientHello, lalu penyeimbang beban memilih sertifikat yang sesuai.

ALB mendukung SNI secara bawaan: Anda dapat memasang beberapa sertifikat ACM pada satu listener HTTPS. ALB secara otomatis memilih sertifikat yang tepat berdasarkan nama host SNI milik klien. Dengan demikian, Anda tidak memerlukan listener atau penyeimbang beban terpisah untuk setiap domain, sehingga hosting virtual dengan SSL dapat diterapkan sepenuhnya.

# Add a second certificate to an existing HTTPS listener (SNI)
aws elbv2 add-listener-certificates \
  --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc/lis456 \
  --certificates CertificateArn=arn:aws:acm:us-east-1:123456789:certificate/second-cert-id

Kebijakan Keamanan SSL

ALB dan NLB mendukung kebijakan keamanan SSL yang dapat dikonfigurasi untuk mengatur versi protokol TLS dan rangkaian cipher yang diterima penyeimbang beban dari klien. AWS menyediakan kebijakan bawaan (misalnya, ELBSecurityPolicy-TLS13-1-2-2021-06) yang diperbarui ketika kerentanan baru ditemukan.

Persyaratan kepatuhan dapat menentukan versi TLS tertentu: PCI-DSS 3.2.1 mensyaratkan minimal TLS 1.2; banyak standar modern merekomendasikan penonaktifan TLS 1.0 dan 1.1 sepenuhnya. Gunakan kebijakan yang mengecualikan protokol usang dan rangkaian cipher yang lemah. Utamakan kebijakan yang menyertakan TLS 1.3 untuk kerahasiaan berkelanjutan dan kinerja.

# List available SSL policies
aws elbv2 describe-ssl-policies \
  --query 'SslPolicies[*].{Name:Name,TLSVersions:SslProtocols}' \
  --output table

Enkripsi Ujung ke Ujung vs Terminasi

Dua pendekatan TLS yang berbeda pada ALB:

  • Terminasi SSL (paling umum): ALB mendekripsi di penyeimbang beban dan meneruskan HTTP biasa ke target. Sederhana, memungkinkan pemeriksaan untuk perutean, dan mengurangi penggunaan CPU server. Lalu lintas backend tidak terenkripsi di dalam VPC.
  • TLS ujung ke ujung: ALB mendekripsi, lalu mengenkripsi ulang sebelum meneruskannya ke target (HTTPS antara ALB dan target). Pendekatan ini memerlukan lebih banyak CPU dan sertifikat pada target, tetapi memastikan enkripsi di dalam VPC untuk skenario dengan kepatuhan ketat.

Dalam mode penerusan TLS NLB: NLB sama sekali tidak mendekripsi—NLB meneruskan TCP mentah ke target yang menangani TLS. Server aplikasi mengelola sertifikatnya sendiri.

Sesi Lekat: Pengertian dan Alasan Penggunaannya

Sesi lekat (juga disebut afinitas sesi) memastikan bahwa semua permintaan dari klien yang sama secara konsisten dirutekan ke target yang sama dalam suatu grup target. Hal ini diperlukan untuk aplikasi berstatus yang menyimpan data sesi di memori server individual (bukan dalam cache bersama seperti ElastiCache).

Tanpa sesi lekat, penyeimbang beban tanpa status dapat mengirim permintaan 1 ke server A (yang menyimpan sesi) dan permintaan 2 ke server B (yang tidak memiliki data sesi), sehingga pengguna tampak telah keluar atau kehilangan isi keranjang. Sesi lekat mengikat klien ke target tertentu selama sesi berlangsung.

Kelekatan Berbasis Cookie pada ALB

ALB mendukung dua jenis cookie sesi lekat:

  • Kelekatan berbasis durasi (cookie yang dibuat LB): ALB membuat cookie bernama AWSALB (untuk ALB) dan menetapkan durasi kedaluwarsa. Cookie tersebut berisi referensi terenkripsi ke target. Klien mengirimkan cookie ini pada permintaan berikutnya.
  • Kelekatan berbasis aplikasi: menggunakan cookie yang sudah ditetapkan oleh aplikasi Anda. ALB membaca nama cookie yang Anda tentukan, membuat versi terenkripsi dalam cookienya sendiri, lalu menggunakannya untuk perutean lekat dengan tetap mempertahankan cookie aplikasi asli.

Konfigurasikan kelekatan untuk setiap grup target, dengan durasi mulai dari 1 detik hingga 7 hari.

# Enable duration-based sticky sessions on a target group
aws elbv2 modify-target-group-attributes \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-tg/xyz \
  --attributes \
    Key=stickiness.enabled,Value=true \
    Key=stickiness.type,Value=lb_cookie \
    Key=stickiness.lb_cookie.duration_seconds,Value=86400

Kekurangan Sesi Lekat

Meskipun sesi lekat menyelesaikan masalah aplikasi berstatus, fitur ini memiliki beberapa konsekuensi:

  • Distribusi beban tidak merata: beberapa target dapat menerima lebih banyak lalu lintas jika klien tertentu sangat aktif, sehingga tujuan penyeimbangan beban tidak tercapai
  • Keterbatasan penskalaan: jika target yang lekat menjadi tidak sehat, sesi terputus—klien harus memulai sesi baru dengan target baru dan kehilangan data sesi dalam memori
  • Elastisitas berkurang: sesi lekat menyulitkan pengosongan dan penghentian instans selama peristiwa pengurangan skala

Praktik terbaik: hilangkan kebutuhan akan sesi lekat dengan mengeksternalkan status sesi ke ElastiCache atau DynamoDB. Dengan demikian, aplikasi Anda benar-benar tanpa status dan dapat melakukan penskalaan horizontal secara penuh.

Listener TLS dan Penerusan Langsung NLB

NLB mendukung listener TLS pada port 443 (atau port apa pun) untuk terminasi TLS, serupa dengan ALB. NLB mendekripsi lalu lintas, mengenkripsinya kembali secara opsional, lalu meneruskannya ke target. Sebagai alternatif, NLB dapat meneruskan langsung lalu lintas TCP terenkripsi tanpa mendekripsinya jika Anda mengonfigurasi listener TCP—dalam mode ini, server aplikasi menangani TLS dari ujung ke ujung.

Terminasi TLS NLB dengan ACM memberikan manfaat pengelolaan sertifikat yang sama seperti ALB, tetapi tanpa fitur pada lapisan HTTP. Gunakan terminasi TLS NLB jika Anda memerlukan IP statis dengan terminasi TLS atau jika protokol backend Anda bukan HTTP (misalnya, protokol TCP khusus).

Interaksi Pengosongan Koneksi dan Sesi Lekat

Ketika target yang lekat dibatalkan pendaftarannya (misalnya, selama pengurangan skala Auto Scaling), pengosongan koneksi memungkinkan permintaan yang sedang berlangsung diselesaikan. Namun, permintaan baru dari klien lekat yang masih menyimpan cookie AWSALB untuk target yang sedang dikosongkan akan secara otomatis ditugaskan ke target baru—cookie kelekatan untuk klien tersebut dibatalkan.

Kombinasi penundaan pembatalan pendaftaran dan pembatalan cookie ini memastikan transisi yang baik: permintaan lama yang berlangsung lama dapat selesai, sementara permintaan baru dari klien tersebut dialihkan dengan lancar ke target yang sehat tanpa tampak sebagai kesalahan bagi pengguna akhir.

Praktik Terbaik untuk Pengelolaan SSL dan Sesi

Praktik terbaik yang relevan untuk ujian:

  • Gunakan sertifikat ACM untuk pembaruan otomatis—jangan pernah mengelola sertifikat secara manual pada penyeimbang beban
  • Gunakan kebijakan keamanan TLS 1.2+; nonaktifkan TLS 1.0/1.1 untuk kepatuhan PCI/HIPAA
  • Utamakan arsitektur tanpa status (sesi di ElastiCache/DynamoDB) daripada sesi lekat
  • Gunakan SNI pada ALB untuk menyajikan beberapa domain dari satu listener tanpa memerlukan beberapa sertifikat pada penyeimbang beban terpisah
  • Untuk kepatuhan ketat (data di dalam VPC harus terenkripsi): gunakan grup target HTTPS dengan TLS ujung ke ujung, bukan hanya terminasi pada penyeimbang beban

Pemeriksaan Cepat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini Anda telah mempelajari bahwa: terminasi SSL/TLS ALB dengan sertifikat ACM menyediakan pembaruan otomatis dan SNI untuk beberapa domain, kebijakan keamanan SSL mengatur versi TLS dan rangkaian cipher untuk kepatuhan, dan sesi lekat merutekan pengguna ke target yang sama untuk aplikasi berstatus, tetapi sebaiknya digantikan dengan mengeksternalkan status sesi ke ElastiCache. Selanjutnya, kita akan membahas Grup Auto Scaling dan templat peluncuran.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Terminasi SSL dan Sesi Lengket” gratis?

Ya — teks lengkap “Terminasi SSL dan Sesi Lengket” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Terminasi SSL dan Sesi Lengket”?

Alihkan terminasi TLS ke penyeimbang beban menggunakan sertifikat ACM, dan aktifkan sesi lengket ketika beban kerja berstatus memerlukan keterikatan klien. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?

Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Terminasi SSL dan Sesi Lengket” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. ALB vs NLB vs GLB: Kapan Menggunakan Masing-Masing
  2. Grup Target dan Pemeriksaan Kesehatan
  3. Aturan Pendengar dan Perutean Berbasis Jalur
  4. Terminasi SSL dan Sesi Lengket
← Kembali ke AWS Solutions Architect