EC2'de yük devretmeyi nasıl otomatikleştiriyorsunuz?


13

Kendi kümelerini yöneten (Amazon Autoscale, Rightscale, Scalr, vb. İçin / ödeme yapmayan) kişilerden EC2 ve failover (örn) yük devretme ile ilgili örneklerinizi nasıl yönetiyorsunuz? Şüphelendiğim gibi, çoğu kişi EC2 API'sına karşı kendi tekne yükü komut dosyalarını yazıp yazmadığını merak ediyorum.

Bu kesinlikle bizim yaklaşımımız: saha dışında çalışan kendi Python Boto tabanlı izleme / yeniden başlatma daemon'umuzu canlandırın, örneklerden UDP canlılarını dinliyoruz. Hata durumunda, birimlerin anlık görüntüsünü alır, görüntüleri kaydeder, yeni örnekler başlatırız, eski birimleri sileriz vb.

Her zaman, komut dosyalarımızı hacklerken, bu sorunlarla ilgilenen ve Scalr'ın (örneğin) kısıtlamaları olmayan bazı açık kaynaklı araçlar olması gerektiğini düşünüyorum, ancak her zaman Google'dan geri dönüyorum boşaltmak-uzattı. (Scalr gibi şeyler, yazılımın desteklenen set / sürümlerinde / yapılandırmalarında oldukça sınırlıdır ve bu kurulumları manipüle etmek için özel ve IMO hantal yollarına sahiptir.)

Ayrıca, Linux-HA / Kalp Pili ekosistemi (Kalp Atışı, ldirectord, vb.) EC2 için gerçekten uygun görünmüyor . (Ama sonra buldum bu - Ben değilim gerçi emin bu gerçekten yüksek kaliteli bir çözümdür).

Yanıtlar:


5

Eh, sadece bariz olanı belirtmek istemiyorum, ama genel fikir bu karmaşıklığı Amazon tarafından yönetilen hizmetlere itmektir.

Bu yüzden ön uçta, yüksek oranda kullanılabilir yük dengeleme sağlamak için Amazon Elastik Yük Dengeleme (ELB) kullanabilirsiniz. Arka tarafta, depolama için Amazon İlişkisel Veritabanı Hizmeti (MySQL tarafından barındırılan), SimpleDB ve S3 kullanıyorsunuz. Bunların tümü Amazon tarafından yönetilir ve bir çeşit yüksek kullanılabilirlik / yük devretme yönetimi içerir.

Bu genellikle web uygulama sunucularınızı ve kullanmakta olduğunuz daha az yaygın sunucu türlerini (oluşturma sunucuları, kendi kendine yüklenen NoSQL veri depoları, vb.) Bırakır.

Webapp sunucuları ELB'de yerleşik sağlık denetimleriyle genellikle yeterince iyi işlenir. Bir webapp sunucusu kapalıyken küçük bir performans düşüşünü kabul edebilir veya ihtiyacınız olandan sürekli olarak +1 sunucu sağlayabilirsiniz. Veya yapılandırmanız basitse, bir webapp sunucusu başarısız olduğunda, Cloudwatch ile birlikte ELB sizin için otomatik olarak yeni bir webapp sunucusu oluşturabilir.

Kendi özel sunucularınız başka bir konudur. Bunlar için doğru, kendi başınızasınız ve uygulama yerleşik yöntemleri ile yapmanız veya özel komut dosyaları / açık kaynak HA araçları ile bir şey koli bandı ile yapmanız gerekir.

Rightscale'i satın almak çok pahalı olabilir. Ancak yüksek kullanılabilirliğe ihtiyacınız varsa ELB, temel CloudWatch uyarısı (şimdi 5 dakika çözünürlük için ücretsiz) veya AutoScale gibi daha az pahalı Amazon araçları buna değer.


3
AWS özellik setinin yanı sıra sınırlamalarını da biliyoruz. İlk örneğinizi almak için, ELB'ye SOA RR'lerle bir arada bulunamayan ve böylece TLD'lere hizmet veremeyen, ayrıca statik IP'ler üzerinden erişilemeyen CNAME RR'ler aracılığıyla erişilir - hayal kırıklıkları forumlarda yaygın olarak yankılanır. İkinci örneğinizi almak için, evet, RDS dev sınırlama olan MySQL'dir. Evet, kendi makine tiplerimizdeki yük devretmeyi otomatikleştirmekle ilgileniyoruz. Evet, özel bulut dağıtımı bizim için önemlidir. Evet, merak ediyorum. Vb
Yang

2
@Yang: Sorunuzu daha dikkatli bir şekilde ifade etmeliydiniz ve cevabımı yazarken sorundan kurtuldunuz. HA için tek bedene uyan bir çözüm yoktur; söz konusu hizmete, durumun nasıl korunduğuna, protokol yük devretme özelliklerine vb. bağlıdır. EC2'de tipik IP düzeyi HA araçlarını kullanmadaki sınırlamalar / zorluklar konusunda haklısınız. Ancak evrensel olarak "AWS'de HA" için geçerli olan tek bir cevap yoktur.
Jesper M


0

Açıkladığınız sorunlar (HA, özel sunucuları izleme, 'kanal oluşturma' hizmetleri) genellikle bir PaaS sağlayıcısı tarafından ele alınır. Rightscale ve Scalr daha önceki bir cevapta zaten belirtilmişti ve ek iyi seçenekler var (bazı PaaS seçenekleri için buraya bakın:

/programming/9542784/looking-for-paas-providers-recommendations )

Hangi sağlayıcılardan ihtiyacınıza en uygun olanı düşünmelisiniz.

Son uyarı: Açık kaynaklı bir PaaS sağlayıcısı olan cloudify için çalışıyorum.


0

Son zamanlarda mühendislik blogumuzda , her türlü uygulama için otomatik yük devretme elde etmek için Otomatik Ölçekleme ile birlikte ELB'nin nasıl kullanılacağı hakkında bir yazı yazdım . Uygulamanızın durumuna ping atmak ve otomatik ölçeklendirme eylemlerini tetiklemek için ELB sağlık kontrollerinin nasıl kullanılabileceğini kapsar.


0

Her iki sunucuya da kalp atışı yüklüyorsunuz 'Etkin' sunucuya bir Elastik IP bağlar Elastik IP elde etmek için bir API isteği başlatarak yük devretme için bir komut dosyası yapılandırırsınız 'Bekleme' sunucusu elastik IP ( yaklaşık 30-60 saniye sürer) master / active olabilir.

Burada sunacak özelliklerim yok.


-1

Amazon zaten Elastik Yük Dengeleme sağlıyor ... Neden tekerleği yeniden icat ettiniz?


3
ELB'in çeşitli sınırlamaları nedeniyle? CNAME gerektirdiğinden hem foo.com hem de www.foo.com'a hizmet edemez mi? Özel zamanlama mantığı uygulamak istediğim için mi? ELB'yi güvenilmez VM'lerin bir kümesinde nasıl uygulayacağınızı merak ediyorum. İstediğini al.
Yang

@Yang, veri merkezinizde sunucular olsaydı aynı şekilde yaparsınız. Temel bir fark yok, onu bir bulut ortamı yapan sihirli sos yok.
Chris S
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.