AWS Yük Dengeleme Servisi ve DNS Gerçekleri

M.Atıf Ceylan
AppstoniA
Published in
2 min readDec 18, 2016

Bu yazımda en meşhur bulut sağlayıcılardan Amazon Web Services (AWS) yük dengeleyici servisinin bir handikapından bahsedeceğim. Öyle bir handikap ki, yük dengeleyicinin amacına ters bir duruma neden oluyor.

Aşağıda bahsedilen konu, AWS Route 53 DNS servisi yerine farklı bir DNS sağlayıcı kullandığınız durumu kapsıyor.

AWS yük dengeleyici (Load Balancer) servisi normal bir yük dengeleyiciden beklenen hemen herşeyi (çok önemli eksikleri var, onu da bir başka yazıda ele alacağım) size sunuyor.

Ancak yük dengeleyicinin sabit bir IP adresi bulunmuyor. Onun yerine size bir domain üretip veriyor.

Örneğin: Oluşturduğunuz yük dengeleyiciye,
http-lb-11111111111.eu-central-1.elb.amazonaws.com gibi internetten erişilebilir bir DNS adresi sunuyor.

Bu domain adresine ait olan IP adresleri ise DİNAMİK. Yani yukarıdaki DNS adresine karşılık gelen IP adresleri belirli aralıklarla sürekli değişiyor. Sorun tam da bu noktada başlıyor.

Diyelim ki AWS üzerinde “abc.com” domain adresinizi yayınlayacaksınız. Web sitenizin, farklı nedenlerden dolayı bir yük dengeleyici arkasında olmasını istiyorsunuz. Yük dengeleme servisini ayarladınız ve herşey normal görünüyor. Sıra geldi abc.com domain adresinizi bu yük dengeleyiciye yönlendirmeye. Bu işlemi DNS kayıtlarınızı güncelleyerek yapabilirsiniz.

“abc.com” domain adresinizin DNS üzerinde A kaydını, yukarıdaki yük dengeleyiciye ait olan DİNAMİK IP adreslerini yazarak yönlendiremezsiniz.

Çünkü; AWS bu IP adreslerini saatler içerisinde yeniden değiştiriyor. Bu durumda ne yapılması gerekiyor? AWS sizden “abc.com” adresiniz için “http-lb-11111111111.eu-central-1.elb.amazonaws.com” gösteren bir CNAME kaydı girmenizi istiyor.

Oysa DNS üzerinde CNAME kayıtları origin için girilemiyor. Yani abc.com için CNAME kaydı giremezsiniz!

www.abc.com veya başka bir alt domain adresi için CNAME kaydı girebilirsiniz.

Yani ziyaretçiniz eğer www.abc.com yazarak sitenizi ziyaret ederse sorun yok ancak www olmadan abc.com yazarsa;

1- abc.com için DNS servisinde bir A kaydı girmeniz ve AWS yük dengeleyicinin olmadığı, doğrudan erişilebilir bir web sunucu IP adresini girmeniz, web sunucuya gelen abc.com isteklerini 301 yönlendirmesi yaparak www.abc.com olacak şekilde değiştirmeniz gerekiyor.

2- abc.com yazıldığında sitenize erişilmemesine razı olmanız gerekiyor.

Eğer 1. seçeneği seçerseniz;

1- 301 yönlendirmesi (redirection) yaptığınız sunucuya erişim sorunu olduğunda, sadece abc.com yazarak gelen ziyaretçileriniz sitenize ulaşamaz.

2- Eğer bir DDoS atak alırsanız abc.com A kaydının gösterdiği web sunucunuz DDoS’a karşı korumasız kalır. Çünkü, abc.com A kaydının gösterdiği IP adresindeki web sunucunuz yük dengeleyici arkasında değil (AWS yük dengeleme servisi aynı zamanda DDoS koruması da sağlıyor) ve çıplak olarak internete açık.

Yük dengeleyici arkasına alınmamış (çıplak) instance’ların anlık band genişlik limitleri günümüz koşulları için oldukça düşük (sağlam paralar vererek garantili ve yüksek band genişliği olan instance’lar alabilrisiniz). Bu nedenle olası bir DDoS saldırısında siteniz alaşağı edilebilir.

İllaki DDoS olmak zorunda değil. 301 yönlendirmesi yapan sunucunuzdaki herhangi bir sorun nedeni ile de yönlendirmeyi yapamıyor olabilirsiniz.

Yukarıdaki nedenlerden dolayı AWS yük dengeleme servisi sizi her halükarda SPOF (Single Point of Failure) durumu ile baş başa bırakabilecek bir yapıda.

Yani bir yük dengeleyicinin asli vazifelerinden olan SPOF durumuna düşürmemek, AWS yük dengeleme servisinde malesef sağlanamıyor.

--

--