API Gateway vs Load Balancer: Bulut'ta Trafik Yönetiminin Doğru Yolu
Bulut mimarisinde trafik yönetimi iki farklı katmanda çalışır ve birçok kişi bunları karıştırır. Load Balancer ağ seviyesinde (katman 4 veya 7) gelen bağlantıları sunucular arasında dağıtır. API Gateway ise uygulamaya özgü bir hizmet olup, HTTP isteklerini yönlendirir, kimlik doğrulama yapar ve kota uygular.
Load Balancer'ın görevi basit ve hızlıdır. Gelen trafiği mevcut sunuculara eşit şekilde dağıtır. Örneğin, 100 kullanıcı varsa 25'er kişi dört sunucuya gider. Ancak API Gateway, her isteği inceleyebilir. Hangi kullanıcıdan geldiğini kontrol eder, belirli bir API sürümüne yönlendirir, hız sınırlaması uygular.
Pratik olarak AWS'de bunu görelim. Bir e-ticaret uygulamanız var. Ürün listesi, sipariş ve ödeme olmak üzere üç farklı microservice'iniz vardır. Load Balancer kullanırsanız, tüm istekler eşit dağılır; ancak ödeme servisi daha yoğun işlemci gerektirir. API Gateway kullanırsanız, ödeme isteklerine daha güçlü sunucular ayırabilirsiniz.
AWS API Gateway kurulumu:
1aws apigateway create-rest-api --name "Uygulama-API" --description "Ürün ve sipariş API'si"Bu komut bir API oluşturur. Sonra kaynaklar (resources) ve yöntemler (methods) eklersiniz:
1aws apigateway create-resource --rest-api-id abc123 --parent-id root --path-part "urunler"Load Balancer ise AWS'de Application Load Balancer (ALB) olarak şöyle kurulur:
1aws elbv2 create-load-balancer --name "Uygulama-LB" --subnets subnet-12345 subnet-67890 --type applicationHedef gruplar eklersiniz:
1aws elbv2 create-target-group --name "uygulama-hedef" --protocol HTTP --port 80 --vpc-id vpc-12345Ardından EC2 örneklerini bu gruba kaydedersiniz:
1aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:... --targets Id=i-12345 Id=i-67890Kısaca: API Gateway kullanın eğer istek içeriğine bakıp farklı davranışlar uygulamanız gerekiyorsa, kimlik doğrulama veya kota yönetimi istiyorsanız. Load Balancer kullanın eğer sadece trafiği sunucular arasında eşit dağıtmak istiyorsanız ve hızlı, basit bir çözüm arıyorsanız. Çoğu zaman ikisini birlikte kullanırsınız: API Gateway ön tarafta istekleri kontrol eder, Load Balancer ise arka tarafta sunucuları dengeler.
0 yorum