AWS ELB – Elastic Load Balancer

There are lots of documentation(blog posts etc.) about AWS in English that’s why I have been writing in Turkish. I hope this will be informative for Turkish readers.
Regards.

Merhaba,

Elastic Load Balancer(ELB) servisi gelen trafiği AWS EC2 instance’ları arasında dağıtan amazon web servisidir.Uygulamalarınız için hata toleransı sağlar. ELB, yaptığı kontrollerle sağlıksız instance’ları belirleyerek gelen trafiğin sağlıklı EC2 instance’ına yönlendirilmesini sağlar.Yazımda genel olarak ELB servisinin nasıl yapılandırılacağından bahsedeceğim.

Kullandığınız servislere ve ya aldığınız hizmetlere bağlı olarak ELB’nin tasarımı/mimarisi farklılaşabilir. Test ortamımda, AWS’de çalışan iki adet EC2 instance’ını ELB arkasına alarak çalıştıracağım. EC2 instance’larımda çalışan servis Internet Information Service’tir. EC2 instance’larım Windows Server 2012 R2’lerden oluşmaktadır.Test labımda Auto-Scaling veya Route 53 servislerini kullanmadım. Onlar da başka bir yazının konusu olacak.Instance’lar aşağıda görülüyor.

clip_image002

Load Balancer kısmından yeni bir LB oluşturmaya başlıyoruz.

clip_image003

Load Balancer’a bir isim belirleyiniz. Test ortamında olduğum için oluşturduğum tüm objelerde “test” kelimesi kullandım.

clip_image005

Load Balancer ’ı, daha önce tanımladığım VPC içinde oluşturuyorum. Listener olarak HTTP 80 portunu belirledim. ELB’nin EC2 instance’larının sağlığını kontrol etmesi için bir yöntem benimsemeniz gerekiyor. http/https/ping vb bir yöntemi seçerek ilerleyiniz.

clip_image006

Sıradaki yapılandırma availability zone yapılandırmasıdır. Farklı iki(en az) availability zone seçerek ilerleyiniz.Üst kısımlarda belirttiğim EC2 instance’larım, aşağıdaki seçtiğim zone’larda çalışmaktadır.

clip_image008

Security group seçimi aşağıda görüldüğü gibidir.

clip_image010

Daha önce oluşturmuş olduğum bir security group’u seçerek ilerliyorum. Bu grubun içeriği aşağıdaki gibidir.Her IP adresinden 3389 ve 80 trafiğine izin veriliyor(aşağıdaki kurallara göre).

clip_image012

Security group konusunda şunu yöntemin anlamlı olduğunu düşünüyorum. EC2 instance’larınızın ve ELB’nin kullandığı security group’Iar farklı security group’lar olmalıdır. Bu sayede istenmeyen trafiği filtrelemiş oluruz. Test ortamımda olduğum için aynı security group’u kullandım. Aslında bu security group’ta 3389 TCP portunun olmaması gerekir!

clip_image014

Daha önce oluşturduğum EC2 instance’larımı ELB’ye dahil ettim. Tag belirleme faslını bitirerek devam ediniz.

clip_image016

ELB’nin özeti aşağıdaki gibidir. 80 port’undan dinleme yapan internet facing bir ELB oluşturduk. AWS bulutu içinde kullanılmak üzere de ELB oluşturabilirsiniz(internal elb).

clip_image018

ELB’nin kullanımındaki en önemli noktalardan biri DNS’tir. IP adresler değişebilir, isim çözümlemesi önemlidir!

aydogmusoglu.com domain’imin dns manager’ında bir adet cname kaydı oluşturarak ELB’nin dns ismine yönlendirdim.

clip_image019

Siz de domain’inizin dns manager’ından benzer bir işlem yapabilirsiniz.

clip_image021

Oluşturduğum CNAME ile EC2 instance’larım üzerinde çalışan web sayfasını test edeyim. İki farklı browser’dan web sayfasını açtım. Trafiğin ELB tarafından farklı EC2 instance’larına dağıtıldığını görebilmek için web sayfasının giriş sayfasına farklı ifadeler yazdım(Node 01 ve 02 gibi).

clip_image022

clip_image023

Görüldüğü üzere ELB, iki node arasında dağıtımı yaptı. ELB’nin gözlemi için aşağıdaki menüleri kullanabilirsiniz.

clip_image025

CloudWatch ile alarmlar belirleyebilirsiniz. Ücretlendirmesini inceleyiniz. AWS’yi test etmek için Free Tier account açtıysanız, free tier usage kapsamını dikkatlice okuyunuz. Kapsam dışına çıkarsanız, normal olarak ay sonu faturanıza ücret yansıyacaktır.

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://aws.amazon.com/cloudwatch/pricing/

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html

http://aws.amazon.com/elasticloadbalancing/

One Reply to “AWS ELB – Elastic Load Balancer”

Leave a Reply

Your email address will not be published. Required fields are marked *