System Design

Akıllı Küresel Trafik Yönlendirmesi Mimarisini Tasarlama

Uygulamalar tek bölge dağıtımlarından küresel ayak izlerine ölçeklendikçe, zorluk sunucu kapasitesini yönetmekten coğrafi mesafeyi yönetmeye kayar. Küresel Sunucu Yük Dengeleme (GSLB), kullanıcıların fiziksel konumlarından bağımsız olarak en yakın ve en sağlıklı veri merkezine bağlanmasını sağlayan kritik katmandır. Sadece bir yük dengeleyici değildir; dağıtık altyapınızın beynidir.

Temel Mekanizma: DNS Anycast ve Çözümleme

IP adreslerini kullanarak 4. veya 7. katmanda çalışan yerel yük dengeleyicilerin aksine, GSLB esas olarak DNS katmanında çalışır. Bir kullanıcı bir URL yazdığında, yerel çözümleyicisi uygulamanın IP adresi için yetkili DNS sunucusuna soru sorar. GSLB kurulumunda bu sorgu, bir GSLB motoru tarafından yakalanır.

Motor, kullanıcının coğrafi konumunu belirlemek için sorgunun kaynak IP'sini analiz eder. Ardından, isteğin hangi veri merkezi tarafından karşılanması gerektiğine karar vermek için gerçek zamanlı sağlık izleme verilerine danışır. Yanıt, en uygun bölgeye işaret eden belirli bir A veya AAAA kaydıdır. Bu süreç kullanıcı için görünmezdir ancak performans için kritiktir.

Sağlık İzleme ve Devre Dışı Bırakma Mantığı

Akıllı yönlendirme, altyapı sağlığına gerçek zamanlı görünürlük gerektirir. GSLB düğümleri genellikle hedef uç noktaları düzenli aralıklarla (ör. her 5 saniyede bir) kontrol eden aktif sonda çalıştırır. Birincil bölge başarısız olursa, GSLB trafiği sorunsuz bir şekilde ikincil bölgeye yönlendirmelidir.

Birincil US-East veri merkezinizin bir ağ bölünmesi yaşadığı bir senaryoyu düşünün. GSLB, TCP/HTTP sağlık denetimleri yoluyla arızayı algılar. Ardından, ABD'deki kullanıcılar için DNS yanıtını US-West'e işaret edecek şekilde günceller. Ancak DNS önbellekleme (TTL) mevcut olduğundan, bu geçiş anlık değildir. Bu nedenle, mimarlar TTL değerlerini dengelemelidir: daha düşük TTL'ler (ör. 60 sn) daha hızlı devre dışı bırakmaya izin verir ancak DNS yükünü artırır; daha yüksek TTL'ler (ör. 300 sn) yükü azaltır ancak kurtarma sürelerini yavaşlatır.

Kod Örneği: AWS Global Accelerator Yapılandırması

Çok sayıda kuruluş, Nominum veya Infoblox gibi araçları kullanarak özel GSLB çözümleri oluştururken, AWS Global Accelerator veya Cloudflare Spectrum gibi yönetilen hizmetler sağlam soyutlamalar sağlar. Aşağıda, iki bölge arası uç noktaya sahip bir Global Accelerator'ı nasıl tanımlayacağınızı gösteren kavramsal bir Terraform parçası bulunmaktadır:

resource "aws_globalaccelerator_accelerator" "app" {
  name                = "global-app-accel"
  enable_health_checks = true
  static_ip_address_policy = "IPV4"
}

resource "aws_globalaccelerator_listener" "http" {
  accelerator  = aws_globalaccelerator_accelerator.app.id
  protocol     = "TCP"
  port_ranges {
    from_port = 443
    to_port   = 443
  }
}

resource "aws_globalaccelerator_endpoint_group" "us_east" {
  listener_endpoint_group_id = aws_globalaccelerator_listener.http.id
  region                     = "us-east-1"

  endpoint_config {
    endpoint_id = "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/prod-elb/50dc6c495c0c9188"
    weight      = 100
  }
  
  health_monitor {
    port           = 443
    protocol       = "HTTPS"
    resource_path  = "/healthz"
    interval_seconds = 5
    threshold      = 2
  }
}

Bu yapılandırmada, sağlık izleyici aktif olarak /healthz uç noktasına ping atar. Yanıt süresi eşiği aşarsa veya 2xx olmayan bir durum kodu dönerse, Global Accelerator bu uç noktanın ağırlığını sıfıra indirir ve trafiği fiilen diğer uç nokta gruplarında tanımlanan diğer kullanılabilir bölgelere yönlendirir.

Gelişmiş Stratejiler: Anycast vs. DNS Tabanlı Yönlendirme

DNS tabanlı GSLB ile Anycast yönlendirme arasındaki farkı ayırt etmek önemlidir. DNS tabanlı yönlendirme, DNS çözümleme süresine ve TTL'ye dayanır, bu da onu önbellek tutarsızlıklarına karşı savunmasız kılar. Anycast ise, aynı IP adresini birden fazla fiziksel konumdan duyurur. İnternetin BGP (Border Gateway Protocol) protokolü, kullanıcının trafiğini ağ katmanında otomatik olarak en yakın düğüme yönlendirir.

Anycast, DNS yayılımına dayanmadığı için daha hızlı devre dışı bırakma sunar (saniyeler vs. dakikalar). Ancak önemli bir IP adresi alanı ve gelişmiş BGP duyuruları gerektirir. Birçok modern mimari, hibrit bir yaklaşım kullanır: küresel erişim ve düşük gecikme için Anycast, gelen IP'nin coğrafi konumuna dayalı olarak doğru arka uç hizmetini belirlemek için uygulama katmanı farkındalığıyla birleştirilir.

Sonuç

GSLB'yi uygulamak, tek tip bir görev değildir. DNS yayılımı, ağ topolojisi ve uygulama sağlığı hakkında derin bir anlayış gerektirir. Aktif sağlık denetimlerini, optimize edilmiş TTL stratejilerini ve potansiyel olarak Anycast yönlendirmesini birleştirerek, kullanıcılarınız nerede olursa olsun dayanıklı ve performanslı bir sistem tasarlayabilirsiniz. Altyapınız büyüdükçe, GSLB'yi birinci sınıf bir mimari bileşen olarak ele almak, küresel hizmet seviyesi hedeflerini korumak için vazgeçilmezdir.

Share: