Web uygulamalarınız her gün binlerce, hatta milyonlarca isteğe yanıt verir. Bu isteklerin içinde meşru kullanıcı trafiği olduğu gibi, kötü niyetli botlar, SQL injection denemeleri ve DDoS saldırıları da yer alabilir. Uygulamanızı hem performanslı hem de güvenli tutmak için katman 7 (L7) düzeyinde akıllı trafik yönetimi şarttır. Azure Application Gateway ve entegre WAF (Web Application Firewall) tam olarak bu ihtiyacı karşılar.
Application Gateway Nedir ve Nasıl Çalışır?
Azure Application Gateway, HTTP/HTTPS trafiğiniz için uygulama düzeyinde (Layer 7) yük dengeleme hizmeti sunan bir reverse proxy’dir. Klasik yük dengeleyicilerden farkı trafiği sadece IP ve port bazında değil, URL yolu, host header, cookie ve diğer HTTP özelliklerine göre yönlendirebilmesidir. Örneğin /api/* isteklerini backend API sunucularına, /images/* isteklerini CDN veya statik dosya sunucusuna, ana sayfa isteklerini ise web sunucularına yönlendirebilirsiniz. Tüm bu tanımlamalar tek bir gateway üzerinden yapılır.
Gateway’in arkasında bir veya birden fazla backend pool bulunur. Bu pool’lar sanal makineler, VM Scale Set’ler, App Service’ler, Kubernetes cluster’lar veya on-premise sunucular olabilir. Gateway sağlık denetimleri (health probes) ile backend sunucuların durumunu sürekli kontrol eder ve sorunlu olanları otomatik olarak havuzdan çıkarır.
Mimari Bileşenler
Frontend IP ve Listener
Application Gateway bir veya daha fazla frontend IP adresine sahip olabilir. Her IP için listener tanımlarsınız: hangi port dinlenecek, HTTP mi HTTPS mi, multi-site hosting yapılacaksa hangi hostname eşleşecek. Multi-site listener sayesinde tek bir gateway üzerinde birden fazla web sitesini barındırabilirsiniz, her biri kendi SSL sertifikasıyla.
Routing Rules
Yönlendirme kuralları listener ile backend pool arasındaki bağlantıyı kurar. İki tip kural vardır: Basic rule tüm trafiği tek bir backend pool’a yönlendirir; Path-based rule ise URL yoluna göre farklı pool’lara dağıtır. Path-based routing, mikroservis mimarisinde her servisi farklı bir backend’e yönlendirmek için idealdir.
Backend Settings
Backend HTTP ayarları, gateway’in backend sunuculara nasıl bağlanacağını belirler. Port, protokol (HTTP/HTTPS), cookie-based session affinity, connection draining süresi ve özel sağlık denetimi ayarlarını burada yapılandırırsınız. Özellikle connection draining özelliği, bakım pencerelerinde backend sunucuyu havuzdan zarif biçimde (gracefully) çıkarmanıza imkan tanır.
WAF: Web Application Firewall
Application Gateway’in en güçlü bileşenlerinden biri entegre WAF özelliğidir. WAF v2, OWASP Core Rule Set (CRS) 3.2 üzerinde çalışır ve yaygın web saldırılarına karşı gerçek zamanlı koruma sağlar. Tespit kabiliyetleri arasında SQL injection, cross-site scripting (XSS), local file inclusion, command injection ve protokol ihlalleri yer alır.
WAF iki modda çalışır: Detection mode yalnızca saldırıları tespit edip loglar ancak trafiği engellemez. Bu mod yeni kurulumlar için ideal başlangıç noktasıdır çünkü false positive’leri (yanlış pozitif) tespit edip kuralları ayarlama imkanı verir. Prevention mode ise tespit edilen saldırıları aktif olarak engeller ve isteği reddeder. Tavsiyemiz önce Detection modda birkaç hafta çalıştırıp logları incelemek, ardından false positive’ler için özel kural istisnaları (exclusion) tanımladıktan sonra Prevention moda geçmektir.
Özel WAF Kuralları
OWASP kural setinin yanı sıra kendi özel kurallarınızı da tanımlayabilirsiniz. Belirli IP aralıklarını engelleme, coğrafi kısıtlama (geo-filtering), rate limiting (belirli bir zaman diliminde gelen istek sayısını sınırlama) ve header bazlı filtreleme gibi özelleştirmeler yapabilirsiniz. Örneğin, belirli bir ülkeden gelen trafik oranı anormal biçimde artıyorsa o bölgeyi geçici olarak engelleyebilirsiniz.
Otomatik Ölçekleme ve Performans
Application Gateway v2, otomatik ölçekleme (autoscaling) desteği sunar. Trafik artışında kapasiteyi otomatik olarak yükseltir, azaldığında düşürür. Minimum ve maksimum instance sayısını belirleyebilirsiniz. Örneğin minimum 2 instance ile başlayıp maksimum 20’ye kadar ölçeklenmesini sağlayabilirsiniz. Bu sayede hem maliyet optimize edilir hem de ani trafik artışlarında (Black Friday, kampanya dönemleri) servis kesintisi yaşanmaz.
Performans açısından v2 SKU, v1’e kıyasla önemli iyileştirmeler sunar: SSL offload kapasitesi yaklaşık beş kat daha yüksektir, deployment ve güncelleme süreleri çok daha kısadır, zone redundancy desteğiyle bölge içi yüksek erişilebilirlik sağlanır. Yeni projeler için kesinlikle v2 SKU kullanmanızı öneriyoruz.
SSL/TLS Yönetimi
Application Gateway merkezi SSL/TLS sertifika yönetimi sağlar. Sertifikalarınızı gateway üzerinde sonlandırabilir (SSL termination) böylece backend sunucuların SSL yükünden kurtulmasını sağlayabilirsiniz. Ya da end-to-end SSL ile hem gateway hem de backend arasındaki trafiği şifrelemeyi tercih edebilirsiniz. Azure Key Vault entegrasyonu sayesinde sertifika yenilemeleri otomatik olarak yapılabilir; sertifika süresi dolduğunda Key Vault’tan otomatik güncelleme devreye girer.
Gerçek Dünya Senaryosu
Bir e-ticaret platformu düşünelim: Ana web sitesi, ürün kataloğu API’si, ödeme servisi ve admin paneli farklı backend’lerde çalışıyor. Application Gateway ile tek bir public IP ve SSL sertifikası üzerinden tüm bu servislere erişim sağlarsınız. /api/catalog/* path’i API sunucusuna, /payment/* path’i ödeme servisine, /admin/* path’i admin paneline yönlenir. WAF tüm bu trafiği OWASP kurallarıyla korur. Ödeme sayfasına yönelik SQL injection teşebbüsleri otomatik olarak engellenir ve güvenlik ekibine alarm gönderilir.
Fiyatlandırma ve Maliyet Yönetimi
Application Gateway v2 fiyatlandırması iki bileşenden oluşur: sabit saatlik ücret ve kapasite birimi (Capacity Unit) ücreti. WAF özelliği ek maliyet getirir ancak kurumsal uygulamalar için bu maliyet ayrı bir WAF çözümü satın almaya kıyasla çok daha uygun. Küçük iş yükleri için aylık maliyet 150-200 USD civarında başlar, yoğun trafik ve WAF ile birlikte 500 USD ve üzerine çıkabilir.
Application Gateway Kurulum Adımları
Azure Portal üzerinden Application Gateway v2 oluşturmak için öncelikle bir sanal ağ ve dedicated bir alt ağ gereklidir. Bu alt ağ yalnızca Application Gateway için ayrılmalıdır, başka kaynaklar yerleştirilmemelidir. Önerilen alt ağ boyutu /24’tür; küçük ortamlar için /28 yeterli olabilir ancak ilerideki ölçekleme ihtiyacını da göz önünde bulundurun.
Portal’da “Application Gateways” hizmetine gidip “Create” tıklayın. Temel bilgiler sekmesinde SKU olarak “Standard V2” veya “WAF V2” seçin. Tier seçimi burada önemlidir: eğer WAF koruyacaksanız doğrudan WAF V2 ile başlayın çünkü Standard V2’den WAF V2’ye geçiş için yeniden oluşturma gerekir. Autoscaling’i etkinleştirin ve minimum instance sayısını en az 2 yapın; tek instance hem yüksek erişilebilirlik hem de SLA açısından yetersizdir.
Frontend sekmesinde public IP adresi oluşturun. Backend pool sekmesinde hedef sunucularınızı ekleyin: IP adresi, FQDN, VM, VMSS veya App Service olabilir. Configuration sekmesinde routing rule tanımlayın: listener (port, protokol, hostname), backend target (pool ve HTTP settings) ve isteğe bağlı path-based routing kuralları.
WAF Kural Yönetimi ve False Positive İşleme
WAF’ı ilk devreye aldığınızda en sık karşılaşacağınız durum false positive’lerdir. Özellikle CMS platformları (WordPress, Joomla), form verisi içeren uygulamalar ve AJAX yoğun modern web uygulamalarında WAF kuralları meşru istekleri engelleyebilir. Örneğin bir blog yazısının içeriğinde SQL anahtar kelimeleri geçiyorsa WAF bunu SQL injection olarak algılayabilir.
False positive yönetimi için şu adımları izleyin: İlk olarak WAF’ı Detection modda başlatın ve en az iki hafta boyunca logları inceleyin. Azure Monitor ve Log Analytics workspace’e WAF loglarını gönderin. AzureDiagnostics | where ResourceType == "APPLICATIONGATEWAYS" | where action_s == "Blocked" KQL sorgusuyla engellenen istekleri listeleyin. Her engellenen isteğin rule ID’sini, matched data’sını ve URI’sini inceleyin. Meşru trafik engelleniyorsa o kural için exclusion tanımlayın: belirli bir request header, cookie veya body alanını kuraldan hariç tutabilirsiniz. Tüm false positive’leri temizledikten sonra Prevention moduna geçin.
Aylık bazda WAF loglarını gözden geçirmek iyi bir pratiktir. Saldırı desenleri değişir, yeni CRS versiyonları çıkar ve uygulamanıza eklenen yeni özellikler farklı false positive’ler tetikleyebilir.
Performans İzleme ve Sorun Giderme
Application Gateway’in sağlıklı çalıştığından emin olmak için birkaç temel metriği sürekli izlemelisiniz. Backend health metriği her backend sunucunun sağlık durumunu gösterir; unhealthy backend varsa health probe ayarlarınızı kontrol edin. Throughput metriği saniye başına işlenen veri miktarını gösterir. Failed requests metriği 4xx ve 5xx hatalarını izler. Response status dağılımı 200, 502, 504 gibi durum kodlarının oranını gösterir.
502 Bad Gateway hatası en sık karşılaşılan sorundur. Bu hata genellikle backend sunucunun yanıt vermemesinden veya health probe’un başarısız olmasından kaynaklanır. Kontrol edilecek noktalar: backend pool’daki sunucunun çalışıyor olması, NSG kurallarının Application Gateway alt ağından gelen trafiğe izin vermesi, health probe path’inin doğru ve erişilebilir olması, backend timeout süresinin yeterli olması.
Uçtan Uca Şifreleme Mimarisi
Hassas veri işleyen uygulamalar için uçtan uca SSL/TLS şifreleme gereklidir. Bu mimaride client ile Application Gateway arasındaki bağlantı HTTPS olarak şifrelenir (frontend SSL), gateway arka tarafta tekrar HTTPS ile backend sunucuya bağlanır (backend SSL). Bu yaklaşımda gateway üzerinde hem frontend sertifikası hem de backend authentication sertifikası tanımlanır. Backend sertifikası self-signed olabilir ancak gateway’e root certificate olarak yüklenmesi gerekir. Key Vault entegrasyonuyla sertifikaları merkezi olarak yönetebilir, otomatik yenileme yapabilirsiniz.
Sıkça Sorulan Sorular
Application Gateway ile Azure Load Balancer arasındaki fark nedir? Azure Load Balancer Layer 4’te çalışır (TCP/UDP) ve IP:Port bazlı yük dengeleme yapar. URL, header veya cookie bazlı yönlendirme yapamaz ve WAF özelliği yoktur. Application Gateway ise Layer 7’de çalışır ve HTTP/HTTPS trafiğine özel yetenekler sunar. Genellikle web uygulamaları için Application Gateway, TCP tabanlı servisler (veritabanı replikasyonu, MQTT) için Load Balancer tercih edilir.
Application Gateway ile Azure Front Door farkı nedir? Front Door global bir hizmettir ve çoklu bölge senaryolarında coğrafi yük dengeleme yapar. Application Gateway bölgesel bir hizmettir ve tek bir bölgedeki backend’ler arasında yük dengeler. Çoklu bölge mimarisinde Front Door’u ön kapı (global giriş noktası) olarak, her bölgede Application Gateway’i bölgesel yük dengeleyici olarak kullanmak yaygın bir mimari kalıptır.
URL rewrite özelliği ne işe yarar? İsteklerin URL’sini veya header’larını backend’e iletmeden önce değiştirmenize olanak tanır. Örneğin /eski-sayfa path’ini /yeni-sayfa olarak yeniden yazabilir, veya request header’a backend’in ihtiyaç duyduğu özel bir değer ekleyebilirsiniz. Bu özellik özellikle API versiyonlama ve legacy URL yönlendirmelerinde kullanışlıdır.
Sonuç
Azure Application Gateway, web uygulamalarınız için akıllı trafik yönetimi ve kapsamlı güvenlik sağlayan kritik bir bileşendir. URL bazlı yönlendirmeden WAF korumasına, otomatik ölçeklemeden merkezi SSL yönetimine kadar geniş bir yetenek seti sunar. Özellikle mikroservis mimarisi kullanan ve PCI-DSS uyumluluğu gerektiren projeler için vazgeçilmez bir çözümdür.
Cloudspark olarak Application Gateway planlama, kurulum ve WAF kural optimizasyonunda uzman kadromuzla hizmet veriyoruz.



