Aturan Pendengar dan Perutean Berbasis Jalur
Tulis aturan pendengar pada ALB untuk merutekan permintaan ke grup target berbeda berdasarkan header host, pola jalur, atau string kueri.
Aturan Pendengar dan Perutean Berbasis Jalur adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 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 Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Penjelasan Pendengar ALB
Pendengar ALB adalah proses yang memeriksa permintaan koneksi menggunakan protokol dan port yang Anda tentukan (misalnya, HTTP pada port 80 atau HTTPS pada port 443). Setiap pendengar memiliki satu atau beberapa aturan yang menentukan ke mana permintaan diteruskan berdasarkan isinya.
Pendengar harus memiliki aturan bawaan (tindakan penampung semua saat tidak ada aturan lain yang cocok) dan dapat memiliki hingga 100 aturan tambahan. Aturan dievaluasi berdasarkan urutan prioritas (angka terendah = prioritas tertinggi). Saat permintaan cocok dengan kondisi suatu aturan, tindakan yang sesuai diterapkan dan tidak ada aturan berikutnya yang dievaluasi.
# Create an HTTP listener on port 80
aws elbv2 create-listener \
--load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789:loadbalancer/app/my-alb/abc123 \
--protocol HTTP \
--port 80 \
--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/default-tg/def456Kondisi Aturan
Aturan pendengar mencocokkan permintaan berdasarkan kondisi. Anda dapat menggabungkan beberapa kondisi dalam satu aturan (semua kondisi harus cocok agar aturan diterapkan). Jenis kondisi yang tersedia:
- host-header: mencocokkan header HTTP
Host(misalnya,api.example.com) - path-pattern: mencocokkan jalur URL (misalnya,
/api/*,/images/*.jpg) - http-header: mencocokkan nama dan pola nilai header HTTP apa pun
- http-request-method: mencocokkan metode HTTP (GET, POST, DELETE, dan lainnya)
- query-string: mencocokkan pasangan kunci-nilai dalam string kueri
- source-ip: mencocokkan rentang CIDR IP klien
Perutean Berbasis Jalur
Perutean berbasis jalur mengarahkan permintaan ke grup sasaran yang berbeda berdasarkan jalur URL. Ini adalah pola perutean yang paling umum untuk layanan mikro di belakang satu ALB. Contoh aturan pada satu ALB:
- Jalur adalah
/api/*→ Grup Sasaran: layanan-api - Jalur adalah
/images/*→ Grup Sasaran: pemroses-gambar - Jalur adalah
/admin/*→ Grup Sasaran: aplikasi-admin - Bawaan → Grup Sasaran: aplikasi-frontend
Dengan demikian, satu ALB dapat menjadi pintu depan bagi beberapa layanan berbeda tanpa memerlukan beberapa penyeimbang beban, sehingga mengurangi biaya dan kompleksitas DNS.
# Create a path-based routing rule
aws elbv2 create-rule \
--listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc123/lis456 \
--priority 10 \
--conditions Field=path-pattern,Values='/api/*' \
--actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/api-service/xyz789Perutean Berbasis Host
Perutean berbasis host merutekan permintaan berdasarkan header HTTP Host, sehingga beberapa nama domain (host virtual) dapat dilayani dari satu ALB. Contoh:
- Host adalah
api.example.com→ grup sasaran layanan-api - Host adalah
admin.example.com→ grup sasaran aplikasi-admin - Host adalah
www.example.com→ grup sasaran frontend
Setiap nama domain memiliki rekaman CNAME atau ALIAS yang menunjuk ke nama DNS ALB yang sama, tetapi ALB merutekan masing-masing ke backend yang sesuai berdasarkan header host. Perutean berbasis host ideal untuk SaaS multi-penyewa atau aplikasi monolitik yang dipecah menjadi layanan mikro.
# Create a host-based routing rule
aws elbv2 create-rule \
--listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc123/lis456 \
--priority 5 \
--conditions '[{"Field":"host-header","HostHeaderConfig":{"Values":["api.example.com"]}}]' \
--actions '[{"Type":"forward","TargetGroupArn":"arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/api-service/xyz789"}]'Tindakan Aturan
Saat kondisi suatu aturan cocok, ALB menjalankan salah satu tindakan berikut:
- forward: meneruskan permintaan ke satu atau beberapa grup sasaran (dengan bobot opsional)
- redirect: mengembalikan pengalihan HTTP (301 atau 302) ke URL baru; berguna untuk pengalihan HTTP ke HTTPS
- fixed-response: mengembalikan respons HTTP statis dengan kode status, jenis konten, dan isi yang ditentukan—berguna untuk halaman pemeliharaan atau respons pemeriksaan kesehatan sederhana
- authenticate-cognito: mengautentikasi pengguna melalui Cognito User Pool sebelum meneruskan permintaan
- authenticate-oidc: mengautentikasi pengguna melalui penyedia identitas yang kompatibel dengan OIDC
# Create a redirect rule: HTTP to HTTPS
aws elbv2 create-rule \
--listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc123/http80 \
--priority 1 \
--conditions '[{"Field":"path-pattern","PathPatternConfig":{"Values":["/*"]}}]' \
--actions '[{"Type":"redirect","RedirectConfig":{"Protocol":"HTTPS","Port":"443","StatusCode":"HTTP_301"}}]'Pola Pengalihan HTTP ke HTTPS
Pola aturan pendengar yang paling umum adalah mengalihkan HTTP ke HTTPS:
- Buat pendengar HTTP pada port 80 dengan satu aturan: alihkan semua lalu lintas (
/*) ke HTTPS dengan kode status 301 - Buat pendengar HTTPS pada port 443 dengan aturan perutean sebenarnya yang mengarah ke grup sasaran
Dengan demikian, pengguna yang mengetik http:// atau mengikuti tautan HTTP lama akan dialihkan secara transparan ke HTTPS tanpa perubahan apa pun pada tingkat aplikasi. Pengalihan sepenuhnya ditangani pada lapisan penyeimbang beban.
Tindakan Respons Tetap
Tindakan fixed-response mengembalikan respons HTTP statis dari ALB tanpa meneruskan permintaan ke sasaran mana pun. Gunakan tindakan ini untuk:
- Mengembalikan halaman pemeliharaan 503 untuk jalur tertentu selama pemeliharaan
- Menyediakan titik akhir pemeriksaan kesehatan ringan langsung dari ALB (segera mengembalikan 200 OK tanpa beban backend)
- Memblokir jalur tertentu dengan respons 403 Forbidden
Respons tetap berguna untuk mengeluarkan jalur dari layanan sementara tanpa mengubah kode aplikasi atau menerapkan ulang aplikasi, dengan menyesuaikan aturan pendengar secara dinamis.
# Return 503 maintenance page for a specific path
aws elbv2 create-rule \
--listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc123/lis456 \
--priority 20 \
--conditions '[{"Field":"path-pattern","PathPatternConfig":{"Values":["/checkout/*"]}}]' \
--actions '[{"Type":"fixed-response","FixedResponseConfig":{"StatusCode":"503","ContentType":"text/html","MessageBody":"<h1>Maintenance</h1>"}}]'Autentikasi ALB dengan Cognito
Tindakan authenticate-cognito ALB terintegrasi dengan Amazon Cognito User Pools untuk menangani autentikasi pengguna sebelum meneruskan permintaan ke aplikasi Anda. Saat pengguna yang belum terautentikasi mencapai aturan pendengar yang dilindungi, ALB mengalihkannya ke UI yang dihosting Cognito untuk masuk. Setelah autentikasi berhasil, ALB menetapkan kuki terenkripsi dan meneruskan permintaan dengan header identitas pengguna.
Dengan demikian, seluruh logika autentikasi dialihkan dari aplikasi Anda. Backend Anda menerima header X-Amzn-Oidc-Identity, X-Amzn-Oidc-Data, dan X-Amzn-Oidc-Access-Token yang berisi klaim pengguna terautentikasi.
Perutean Berdasarkan String Kueri dan Header
Aturan listener ALB dapat melakukan perutean berdasarkan parameter string kueri dan header HTTP, sehingga perutean permintaan dapat dilakukan secara lebih terperinci:
- Merutekan klien seluler dengan mendeteksi header
User-Agent: *Mobile*ke backend yang dioptimalkan untuk perangkat seluler - Merutekan permintaan API premium dengan memeriksa header khusus
X-API-Tier: premiumke grup target yang lebih cepat - Merutekan varian pengujian A/B dengan membaca parameter string kueri
?variant=beta
Perutean berbasis header memungkinkan Anda menerapkan penanda fitur dan pembagian lalu lintas pada lapisan infrastruktur tanpa mengubah kode aplikasi.
Prioritas Aturan dan Urutan Evaluasi
Aturan dievaluasi berdasarkan urutan prioritas menaik. Nomor prioritas yang lebih rendah dievaluasi terlebih dahulu. Tindakan dari aturan pertama yang cocok akan diterapkan dan tidak ada aturan berikutnya yang dievaluasi. Aturan default tidak memiliki nomor prioritas dan selalu dievaluasi terakhir sebagai aturan penampung semua.
Praktik terbaik: tetapkan nomor prioritas dengan kelipatan 10 (10, 20, 30...) alih-alih bilangan bulat berurutan. Dengan demikian, Anda memiliki ruang untuk menyisipkan aturan baru di antara aturan yang sudah ada tanpa mengubah penomoran. Aturan yang lebih spesifik (misalnya, jalur + header host) sebaiknya memiliki nomor yang lebih rendah (prioritas lebih tinggi) daripada aturan umum.
# List rules for a listener (shows priorities)
aws elbv2 describe-rules \
--listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc123/lis456 \
--query 'Rules[*].{Priority:Priority,Conditions:Conditions[0].Field,Actions:Actions[0].Type}' \
--output tableAturan Listener untuk Layanan Mikro
Satu ALB dapat menjadi pintu depan seluruh platform layanan mikro dengan menggunakan aturan listener. Berikut contoh dunia nyata yang menggabungkan ketiga jenis kondisi:
- Prioritas 10: Host=
api.example.com+ Jalur=/v2/*→ grup target api-v2 - Prioritas 20: Host=
api.example.com+ Jalur=/v1/*→ grup target api-v1 - Prioritas 30: Host=
auth.example.com→ grup target auth-service - Prioritas 40: Host=
www.example.com+ Jalur=/static/*→ pengalihan CloudFront - Default: Host=
www.example.com→ grup target frontend
Desain ini mengurangi biaya dengan menghilangkan kebutuhan akan penyeimbang beban terpisah untuk setiap layanan.
Pemeriksaan Cepat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda telah mempelajari bahwa: aturan listener merutekan permintaan berdasarkan host, jalur, header, metode, dan string kueri, aturan dievaluasi berdasarkan urutan prioritas dengan aturan yang pertama cocok sebagai pemenang, dan tindakan mencakup penerusan, pengalihan, respons tetap, serta autentikasi Cognito. Perutean berdasarkan jalur dan host memungkinkan satu ALB menjadi pintu depan bagi beberapa layanan mikro. Selanjutnya, kita akan membahas terminasi SSL dan sesi lekat.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Aturan Pendengar dan Perutean Berbasis Jalur” gratis?
Ya — teks lengkap “Aturan Pendengar dan Perutean Berbasis Jalur” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Aturan Pendengar dan Perutean Berbasis Jalur”?
Tulis aturan pendengar pada ALB untuk merutekan permintaan ke grup target berbeda berdasarkan header host, pola jalur, atau string kueri. Kamu berlatih Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep 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 3 dari 4.
Berapa lama pelajaran “Aturan Pendengar dan Perutean Berbasis Jalur” 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 Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep 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
- ALB vs NLB vs GLB: Kapan Menggunakan Masing-Masing
- Grup Target dan Pemeriksaan Kesehatan
- Aturan Pendengar dan Perutean Berbasis Jalur
- Terminasi SSL dan Sesi Lengket