Dinleyici Kuralları ve Yol Tabanlı Yönlendirme
ALB üzerinde ana bilgisayar üst bilgilerine, yol kalıplarına veya sorgu dizelerine göre istekleri farklı hedef gruplarına yönlendiren dinleyici kuralları yazacaksınız.
Dinleyici Kuralları ve Yol Tabanlı Yönlendirme, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
ALB Dinleyicileri Açıklaması
Bir ALB dinleyicisi, belirttiğiniz protokol ve portu kullanarak bağlantı isteklerini denetleyen bir işlemdir (örneğin, 80 numaralı portta HTTP veya 443 numaralı portta HTTPS). Her dinleyicinin, isteklerin içeriğine göre nereye iletileceğini belirleyen bir veya daha fazla kuralı vardır.
Bir dinleyicinin varsayılan bir kuralı olmalıdır (başka hiçbir kural eşleşmediğinde uygulanan genel eylem); ayrıca en fazla 100 ek kural içerebilir. Kurallar öncelik sırasına göre değerlendirilir (en düşük numara = en yüksek öncelik). Bir istek bir kuralın koşuluyla eşleştiğinde ilgili eylem uygulanır ve başka hiçbir kural değerlendirilmez.
# 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/def456Kural Koşulları
Dinleyici kuralları, koşullara göre isteklerle eşleşir. Tek bir kuralda birden çok koşulu birleştirebilirsiniz (kuralın uygulanması için tüm koşulların eşleşmesi gerekir). Kullanılabilir koşul türleri:
- host-header:
HostHTTP başlığıyla eşleşir (örneğinapi.example.com) - path-pattern: URL yoluyla eşleşir (örneğin
/api/*,/images/*.jpg) - http-header: herhangi bir HTTP başlığı adı ve değer deseniyle eşleşir
- http-request-method: HTTP yöntemleriyle eşleşir (GET, POST, DELETE vb.)
- query-string: sorgu dizesindeki anahtar-değer çiftleriyle eşleşir
- source-ip: istemci IP CIDR aralıklarıyla eşleşir
Yol Tabanlı Yönlendirme
Yol tabanlı yönlendirme, istekleri URL yoluna göre farklı hedef gruplarına yönlendirir. Tek bir ALB'nin arkasındaki mikro hizmetler için en yaygın yönlendirme yaklaşımıdır. Tek bir ALB üzerindeki örnek kurallar:
- Yol
/api/*→ Hedef Grubu: api-service - Yol
/images/*→ Hedef Grubu: image-processor - Yol
/admin/*→ Hedef Grubu: admin-app - Varsayılan → Hedef Grubu: frontend-app
Bu sayede birden çok yük dengeleyici gerektirmeden tek bir ALB, birbirinden farklı birden çok hizmeti önde karşılayabilir; böylece maliyet ve DNS karmaşıklığı azalır.
# 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/xyz789Ana Bilgisayar Tabanlı Yönlendirme
Ana bilgisayar tabanlı yönlendirme, istekleri HTTP Host başlığına göre yönlendirerek tek bir ALB'den birden çok alan adının (sanal ana bilgisayarların) sunulmasını sağlar. Örnek:
- Ana bilgisayar
api.example.com→ api-service hedef grubu - Ana bilgisayar
admin.example.com→ admin-app hedef grubu - Ana bilgisayar
www.example.com→ frontend hedef grubu
Her alan adının, aynı ALB DNS adına işaret eden bir CNAME veya ALIAS kaydı vardır; ancak ALB, ana bilgisayar başlığına göre her birini uygun arka uca yönlendirir. Ana bilgisayar tabanlı yönlendirme, çok kiracılı SaaS uygulamaları veya mikro hizmetlere ayrılan monolitik uygulamalar için idealdir.
# 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"}]'Kural Eylemleri
Bir kuralın koşulları eşleştiğinde ALB aşağıdaki eylemlerden birini yürütür:
- forward: isteği, isteğe bağlı ağırlıklarla bir veya daha fazla hedef grubuna iletir
- redirect: yeni bir URL'ye HTTP yönlendirmesi (301 veya 302) döndürür; HTTP'den HTTPS'ye yönlendirmeler için kullanışlıdır
- fixed-response: belirtilen durum kodu, içerik türü ve gövdeyle statik bir HTTP yanıtı döndürür; bakım sayfaları veya basit sağlık denetimi yanıtları için kullanışlıdır
- authenticate-cognito: iletmeden önce kullanıcıların kimliğini bir Cognito User Pool aracılığıyla doğrular
- authenticate-oidc: kullanıcıların kimliğini OIDC uyumlu herhangi bir kimlik sağlayıcısı aracılığıyla doğrular
# 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"}}]'HTTP'den HTTPS'ye Yönlendirme Yaklaşımı
En yaygın dinleyici kuralı yaklaşımı, HTTP'yi HTTPS'ye yönlendirmektir:
- 80 numaralı portta bir HTTP dinleyicisi oluşturun ve tek bir kuralla tüm trafiği (
/*) 301 durum koduyla HTTPS'ye yönlendirin - 443 numaralı portta, hedef gruplarına işaret eden gerçek yönlendirme kurallarınızı içeren bir HTTPS dinleyicisi oluşturun
Bu sayede http:// yazan veya eski HTTP bağlantılarını izleyen kullanıcılar, uygulama düzeyinde herhangi bir değişiklik yapılmadan şeffaf biçimde HTTPS'ye yönlendirilir. Yönlendirme tamamen yük dengeleyici katmanında gerçekleştirilir.
Sabit Yanıt Eylemi
Sabit yanıt eylemi, isteği herhangi bir hedefe iletmeden ALB'den statik bir HTTP yanıtı döndürür. Şu amaçlarla kullanabilirsiniz:
- Bakım sırasında belirli yollar için 503 bakım sayfası döndürmek
- Hafif bir sağlık denetimi uç noktası sağlamak (arka uç yükü olmadan anında 200 OK döndürür)
- Belirli yolları 403 Forbidden yanıtıyla engellemek
Sabit yanıtlar, dinleyici kurallarını dinamik olarak ayarlayarak uygulama kodunu değiştirmeden veya yeniden dağıtım yapmadan yolları geçici olarak hizmet dışı bırakmak için kullanışlıdır.
# 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>"}}]'Cognito ile ALB Kimlik Doğrulaması
ALB'nin authenticate-cognito eylemi, istekleri uygulamanıza iletmeden önce kullanıcı kimlik doğrulamasını gerçekleştirmek için Amazon Cognito User Pools ile tümleşir. Kimliği doğrulanmamış bir kullanıcı korumalı bir dinleyici kuralına ulaştığında ALB, oturum açması için kullanıcıyı Cognito tarafından barındırılan kullanıcı arayüzüne yönlendirir. Kimlik doğrulaması başarıyla tamamlandıktan sonra ALB şifrelenmiş bir çerez ayarlar ve isteği kullanıcı kimliği başlıklarıyla iletir.
Bu işlem, kimlik doğrulama mantığının tamamını uygulamanızdan devralır. Arka ucunuz, kimliği doğrulanmış kullanıcının taleplerini içeren X-Amzn-Oidc-Identity, X-Amzn-Oidc-Data ve X-Amzn-Oidc-Access-Token başlıklarını alır.
Sorgu Dizesi ve Üst Bilgi Tabanlı Yönlendirme
ALB dinleyici kuralları, sorgu dizesi parametrelerine ve HTTP üst bilgilerine göre yönlendirme yapabilir; bu sayede istekler ayrıntılı biçimde yönlendirilebilir:
User-Agent: *Mobile*üst bilgisini algılayarak mobil istemcileri mobil cihazlar için optimize edilmiş bir arka uca yönlendirme- Özel
X-API-Tier: premiumüst bilgisini denetleyerek premium API isteklerini daha hızlı bir hedef grubuna yönlendirme ?variant=betasorgu dizesi parametresini okuyarak A/B testi varyantlarını yönlendirme
Üst bilgi tabanlı yönlendirme, uygulama kodunu değiştirmeden altyapı katmanında özellik bayrakları ve trafik bölüştürme uygulamanıza olanak tanır.
Kural Önceliği ve Değerlendirme Sırası
Kurallar, artan öncelik sırasına göre değerlendirilir. Öncelik numarası daha düşük olan kurallar önce değerlendirilir. Eşleşen ilk kuralın eylemi uygulanır ve başka kural değerlendirilmez. Varsayılan kuralın bir öncelik numarası yoktur ve tüm istekleri yakalayan kural olarak her zaman en son değerlendirilir.
En iyi uygulama: Öncelik numaralarını ardışık tam sayılar yerine 10'ar artışlarla (10, 20, 30...) atayın. Böylece numaralandırmayı değiştirmeden mevcut kuralların arasına yeni kurallar eklemek için yer kalır. Daha özel kuralların (ör. yol + ana makine üst bilgisi) genel kurallara göre daha düşük numaralara (daha yüksek önceliğe) sahip olması gerekir.
# 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 tableMikro hizmetler için Dinleyici Kuralları
Tek bir ALB, dinleyici kurallarını kullanarak tüm mikro hizmet platformunun önünde yer alabilir. Üç koşul türünün de bir arada kullanıldığı gerçek dünya örneği:
- Öncelik 10: Host=
api.example.com+ Path=/v2/*→ api-v2 hedef grubu - Öncelik 20: Host=
api.example.com+ Path=/v1/*→ api-v1 hedef grubu - Öncelik 30: Host=
auth.example.com→ auth-service hedef grubu - Öncelik 40: Host=
www.example.com+ Path=/static/*→ CloudFront yeniden yönlendirmesi - Varsayılan: Host=
www.example.com→ ön yüz hedef grubu
Bu tasarım, her hizmet için ayrı yük dengeleyicilere duyulan ihtiyacı ortadan kaldırarak maliyetleri azaltır.
Hızlı Kontrol
Bu derste ele alınan AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: dinleyici kuralları istekleri ana makineye, yola, üst bilgilere, yöntemlere ve sorgu dizelerine göre yönlendirir; kurallar öncelik sırasına göre değerlendirilir ve ilk eşleşme kazanır; eylemler arasında iletme, yeniden yönlendirme, sabit yanıt ve Cognito kimlik doğrulaması bulunur. Yol ve ana makine tabanlı yönlendirme, tek bir ALB'nin birden çok mikro hizmetin önünde yer almasını sağlar. Sırada SSL sonlandırma ve yapışkan oturumları inceleyeceğiz.
Yapay zeka eğitmeniyle Cloud & IT Cert Prep öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 150
- Dersler
- 600
Sıkça Sorulan Sorular
“Dinleyici Kuralları ve Yol Tabanlı Yönlendirme” dersi ücretsiz mi?
Evet — “Dinleyici Kuralları ve Yol Tabanlı Yönlendirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Dinleyici Kuralları ve Yol Tabanlı Yönlendirme” dersinde ne öğreneceğim?
ALB üzerinde ana bilgisayar üst bilgilerine, yol kalıplarına veya sorgu dizelerine göre istekleri farklı hedef gruplarına yönlendiren dinleyici kuralları yazacaksınız. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Dinleyici Kuralları ve Yol Tabanlı Yönlendirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- ALB ve NLB ve GLB: Hangisi Ne Zaman Kullanılır
- Hedef Grupları ve Sağlık Kontrolleri
- Dinleyici Kuralları ve Yol Tabanlı Yönlendirme
- SSL Sonlandırma ve Yapışkan Oturumlar