2011-07-06 23 views
9

EC2 mimarimizi kendi yük dengelememizi yönetmek istediğimiz bir noktaya ölçeklendirmek için çalışıyoruz. Halihazırda, temel yük dengelemesini yapmak için HAProxy üzerinde yapılandırılmış bir dizi makineye sahibiz, ancak 'en iyi uygulama' arayışındayız, yeni bir örneğe çevrimiçi gelmek ve otomatik olarak (veya neredeyse otomatik olarak) HAProxy'ye katılmak.EC2 örneklerinin otomatik olarak HAProxy'ye katılmaları için en iyi uygulama nedir?

İdeal olarak, sistemlerimizdeki yükü izler veya birkaç saatlik analiz verilerini kullanmaya çalışırız ve bir eşik veya planlanan zamana ulaştığımızda, bir işlemin yeni bir örneğini başlatmasını sağlayın. HAProxy makinemizdeki bir sisteme yeni düğümün ana bilgisayar adını yapılandırmaya yazması ve HAProxy'i yeniden doldurması için havuza bağlanması gerekir.

Birden fazla bölge kapsamına ihtiyaç duyabilecek kadar büyüyünce Amazon'un ELB'sini düşünüyoruz, ancak o zamana kadar, HAProxy'den makine ekleyebilen/kaldırabilecek basit bir kurguya ihtiyacımız var.

Bu şeyleri yönetmek için ödeyebileceğimiz hizmetler olduğunu biliyorum, ancak Scalr bizi çok özel örnek türleriyle sınırlandırıyor gibi görünüyor ve Rightscale çok pahalı, bu yüzden diğerleri gibi kendi çözüm.

Ne yazık ki, kendi çözümlerini yuvarlayanlar süreçlerinde biraz suskun görünüyor. Sen aşırı-düşünmek bu çözüm gerekmez

+1

Scalr ile ilgili sorunlarınız nelerdi? scalr istemcisini yüklediğiniz sürece özel örnek türlerini kullanabilirsiniz. nginx yük dengeleyicisini kullanıyoruz ve şu ana kadar harika çalışıyor. – aporat

+0

Ah, Scalr'ın özel yapımlara izin vereceğini bilmiyordum. Tekliflerindeki bakış açım, düzgün çalışması için kullanmak zorunda olduğunuz önceden yapılandırılmış örneklere benziyordu. – iandouglas

cevap

10

;)

Sen HAProxy yapılandırma dosyasında sadece "ön yapılandırmak" sunucular can. Onlar "aşağı" görünecek ve aslında onları çevrimiçi duruma getirene kadar asla istekleri almayacak. İşte

yalnızca çevrimiçi 5 makineleri var ve önümüzdeki 2 yıl içinde 10 olmasını bekliyoruz varsayarak bir örnek: Bu yapılandırmayla

listen web *:80 
    balance source 
    server web1 192.168.0.101:80 check inter 2000 fall 3 
    server web2 192.168.0.102:80 check inter 2000 fall 3 
    server web3 192.168.0.103:80 check inter 2000 fall 3 
    server web4 192.168.0.104:80 check inter 2000 fall 3 
    server web5 192.168.0.105:80 check inter 2000 fall 3 
    server web6 192.168.0.106:80 check inter 2000 fall 3 
    server web7 192.168.0.107:80 check inter 2000 fall 3 
    server web8 192.168.0.108:80 check inter 2000 fall 3 
    server web9 192.168.0.109:80 check inter 2000 fall 3 
    server web10 192.168.0.110:80 check inter 2000 fall 3 

, sen HAProxy yeniden başlatın veya her türlü yapmak gerekmez en az bir yıl için çirkin kesmek (10'dan fazla ihtiyacınız yoksa, sonra sadece 100 ekleyin ve sen).

Ayrıca, bu yapılandırmayı otomatik olarak oluşturmak için hızlı bir kabuk komut dosyası yazabilirsiniz, aslında SHOULD havuzunuza 100 sunucu ekliyorsanız bunun için bir komut dosyası yazın.

+1

Yukarıdaki sugestion için sadece bir tweak ve son bir kaç saat için mücadele ettiğim bir şey ... Statik kullanabilmemize rağmen Amazon'da dahili bir IP'ye sahip olmamanız nedeniyle doğrudan iç IP'ye işaret etme izniyle Harici IP'ler, bunların atanmamış olması için bir ücret vardır ve güvenlik duvarları/trafik zincirleri ile ilgili sorunlarınız olabilir, benim sugestion bir DynDNS hizmetini (dyndns.org gibi) veya bir API sağlayan bir DNS sağlayıcısını kullanmak (Zerigo gibi)) ve makinede bazı ana bilgisayarları kurun. Eğer oluşturursanız, 10 tane ana makineye sahip olun ve iç IP'yi onlara atayın, işe yarayacak. – TiernanO

+1

Yukarıdaki yorumda alan bittiğinden, şunu not edeceğim: DNS'inizi her seferinde tekrar tekrar temizlemeniz gerekebilir, çünkü 6 örneğe ölçeklendirirseniz ve sonra sadece 4'e geri dönerseniz, diğer 2 hala Artık yeni bir örneğe ait olabilecek IP'ler. belki başlatma ve kapatma üzerinde bir komut dosyası ve makine adını vermek için Amazon'daki örnek verilerini kullanın ... bu şekilde sorunumu düzeltmek için gidiyorum. – TiernanO

+1

Güncelleme: Bu soruyu en son gönderdiğimden beri yeni işimde, aynı sorunla karşı karşıyayım ama RackSpace kullanan makinelerin yüzlerce ölçeğine bakıyorum. yapılandırmaya eklendi. – iandouglas

İlgili konular