Google Cloud Platformu | Load Balancing

Google Cloud Platformu üzerinde Load Balancing özelliğini kullanarak veri yükünü veya gelen kullanıcı isteklerini makinalarınız (instances) arasında dağıtabilirsiniz.

Bu özelliğe web arayüzünden erişebileceğiniz gibi, gcloud command-line veya .api desteği de mevcuttur.

Load Balance Türleri

  • HTTP(S) Load Balancing: HTTP(S) trafiğini kullanıcının bulunduğu en yakın bölge olacak şekilde instances’lar arasında dağıtır.
  • Network Load Balancing: Network trafiğini bir bölge üzerinde bulunan bir grup instances arasında paylaştırır. TCP/UDP trafiğini dengeler.

Load Balancing Ücretleri

Tüm GCP bölgelerinde 5 rule içeren paket $0.025/saat dolardan başlamaktadır. Ek rule ücreti $0.010/saat’tir.

İşlenen veri miktarı olarak ise $0.008/GB’dır.

HTTP(S) Load Balancing Ayarlama 

GCP HTTP(S) Load Balancing ile URL kuralları tanımlayarak gelen URL isteklerinin bir kısmını başka instances’larınıza, diğer kısmını başka instances’larınız arasında paylaştırabilirsiniz. Gelen request’ler herzaman kullanıcının olduğu en yakın bölgedeki instances grubuna yönlendirilir. Eğer instances grubunun gelen talebi karşılayacak kaynağı yoksa, talep başka bir yakın gruba yönlendirilir.

HTTP için 80 ve 8080 portlarından gelen, HTTPS için 443 portundan gelen request’ler load balance edilir.

Load Balancer gelen HTTP isteklerini HTTP/1.1 formatında işler. Fakat tarayıcıdan gelen istekler HTTP/1.0, HTTP/1.1, veya HTTP/2 olabilir. Load Balancer bu istekleri herzaman HTTP/1.1 formatına çevirir.

HTTP(S) Load Balancing WebSocket desteği yoktur. WebSocket trafiği için Network Load Balancing seçeneği kullanılmalıdır.

Başlamadan Önce

HTTP(S) Load Balancing her zaman instances gruplarını kullanarak çalışmaktadır. Bu özelliği kullanmadan önce “instances groups” hakkında bilgi sahibi olmanızı gerekmektedir.

Genel Bakış

GCP LB birkaç component’ten oluşmaktadır. Aşağıdaki resim üzerinden genel bir bilgi sahibi olabilirsiniz.

HTTP Load Balancing

Tam bir HTTP Load Balancer uygulaması aşağıdaki şekilde yapılandırılmalıdır.

  1. Global bir yönlendirme kuralı genel tüm talepleri hedefteki bir HTTP Proxy’e yönlendirir.
  2. HTTP Proxy her bir talebi URL haritasına (URL Map) göre inceler ve uygun backend servisine talebi yönlendirir.
  3. Backend servisi herbir talebi uygun backend sunucusuna yönlendirir. Bunu yaparken kapasite, bulunduğu zone alanı, sağlık durumu gibi bilgiler dikkate alınır. Backend sunucusunun sağlık durumu HTTP yada HTTPS health check ile kontrol edilir. Talepler backend instance gönderilirken iletim esnasında şifrelenir.

Ek olarak, HTTP Load balancer üzerine gelen trafiğe izin verilebilmesi için bir firewall kuralı yaratmanız gerekmektedir. (Port 80 yada 8080)

HTTPS Load Balancing

HTTPS Load Balancer uygulaması yukarıda anlatılan HTTP LB ile aynı yapıyı kullanmaktadır ama bazı konularda farklılık göstermektedir.

  1. HTTP Proxy yerine HTTPS Proxy kullanır.
  2. İmzalanmış bir SSL sertifikası gerekmektedir.
  3. 443 portuna izin veren bir firewall kuralı gerekmektedir.
  4. Client tarafında SSL session load balancer tarafında sona ermektedir. LB ile instances arasındaki iletişim HTTPS (tavsiye edilen) yada HTTP olsun, her bir instance’ın sertifikası olması gerekmektedir.

Bir sonraki bölümde Load Balancer component’leri hakkında bilgi vermeye çalışacağım.

Vakit ayırıp okuduğunuz için teşekkür ederim.

Yazılarımı kaynak belirtilerek paylaşabilirsiniz.

Kaynak: https://cloud.google.com/compute/docs/load-balancing