Herkese selam! Kurs bugün başlıyor
- AWS Yük Dengelemenin ne olduğunu anlayın;
- Elastic Load Balancer çeşitlerini ve bileşenlerini bilir;
- Uygulamanızda AWS ELB'yi kullanın.
Bunu neden bilmeniz gerekiyor?
- AWS sertifikasyon sınavlarına girmeyi planlıyorsanız kullanışlıdır;
- bu, yükü sunucular arasında dağıtmanın basit bir yoludur;
- Bu, Lambda'yı hizmetinize (ALB) eklemenin basit bir yoludur.
Açık ders yaptım
Giriş
Elastik Yük Dengeleyicinin ne olduğu, basit bir örnekle gösterilen aşağıdaki şemada görülebilir:
Load Balancer istekleri kabul eder ve bunları örnekler arasında dağıtır. Ayrı bir örneğimiz var, Lambda işlevleri var ve bir Otomatik Ölçeklendirme grubu (bir sunucu grubu) var.
AWS ELB Türleri
1. Ana türlere bakalım:
Klasik Yük Dengeleyici. AWS'nin ilk dengeleyicisi, hem OSI 4. hem de 7. katmanlarında çalışır; HTTP, HTTPS, TCP ve SSL desteklenir. Birden fazla Amazon EC2 bulut sunucusunda temel yük dengeleme sağlar ve hem istek hem de bağlantı düzeyinde çalışır. Hadi açalım (gri renkle vurgulanmıştır):
Bu dengeleyicinin eski olduğu kabul edilir, bu nedenle yalnızca belirli durumlarda kullanılması önerilir. Örneğin EC2‑Classic ağı üzerine oluşturulmuş uygulamalar için. Prensip olarak hiç kimse bizi bunu yaratmaktan alıkoymuyor:
2. Ağ Yük Dengeleyici. Ağır iş yüklerine uygundur, OSI Layer 4'te çalışır (EKS ve ECS'de kullanılabilir), TCP, UDP ve TLS desteklenir.
Network Load Balancer, trafiği bir Amazon VPC'deki hedeflere yönlendirir ve ultra düşük gecikme süresiyle saniyede milyonlarca isteği işleyebilir. Ek olarak, ani ve değişen yüklere sahip trafik düzenlerini idare edecek şekilde optimize edilmiştir.
3. Uygulama Yük Dengeleyici. Katman 7'de çalışır, Lambda desteğine sahiptir, başlık ve yol düzeyi kurallarını destekler, HTTP ve HTTPS'yi destekler.
Mikro hizmetler ve konteynerler de dahil olmak üzere modern mimariler üzerine kurulu uygulamalar sunmaya odaklanan gelişmiş istek yönlendirme sağlar. İsteğin içeriğine göre trafiği Amazon VPC'deki hedeflere yönlendirir.
TCP, HTTP kadar yaygın olmadığından, birçok kullanıcı için Classic Load Balancer'ın yerine Application Load Balancer ilk tercih oldu.
Bunu da oluşturalım, bunun sonucunda zaten iki yük dengeleyicimiz olacak:
Yük Dengesi Bileşenleri
Ortak Yük Dengesi Bileşenleri (tüm dengeleyiciler için ortaktır):
- Erişim Günlüğü Politikası
— ELB erişim günlükleriniz. Ayarları yapmak için Açıklama'ya gidip "Nitelikleri düzenle" düğmesini seçebilirsiniz:
Daha sonra S3Bucket - Amazon nesne depolamasını belirtiyoruz:
- plan
— dahili veya harici dengeleyici. Önemli olan, LoadBalancer'ınızın dışarıdan erişilebilmesi için harici adresler alması gerekip gerekmediğidir, yoksa dahili yük dengeleyiciniz mi olabilir;
- Güvenlik Grupları
— dengeleyiciye erişim kontrolü. Esasen bu üst düzey bir güvenlik duvarıdır.
- Alt ağlar
— VPC'nizin içindeki alt ağlar (ve buna bağlı olarak kullanılabilirlik bölgesi). Alt ağlar oluşturma sırasında belirtilir. VPC'ler bölgeye göre sınırlıysa Alt Ağlar da kullanılabilirlik bölgelerine göre sınırlanır. Yük Dengeleyici oluştururken, onu en az iki alt ağda oluşturmak daha iyidir (bir Erişilebilirlik Alanında sorun çıkması durumunda yardımcı olur);
- Dinleyiciler
— dengeleyici protokolleriniz. Daha önce de belirtildiği gibi, Klasik Yük Dengeleyici için HTTP, HTTPS, TCP ve SSL, Ağ Yük Dengeleyici için TCP, UDP ve TLS, Uygulama Yük Dengeleyici için ise HTTP ve HTTPS olabilir.
Klasik Yük Dengeleyici örneği:
Ancak Application Load Balancer'da biraz farklı bir arayüz ve genel olarak farklı bir mantık görüyoruz:
Load Balancer v2 bileşenleri (ALB ve NLB)
Şimdi sürüm 2 dengeleyiciler Application Load Balancer ve Network Load Balancer’a daha yakından bakalım. Bu dengeleyicilerin kendilerine ait bileşen özellikleri bulunmaktadır. Örneğin, Hedef Gruplar gibi bir kavram ortaya çıktı - örnekler (ve işlevler). Bu bileşen sayesinde Hedef Gruplardan hangilerine trafik yönlendirmek istediğimizi belirleme imkanına sahip oluyoruz.
Basit bir ifadeyle Hedef Gruplarda trafiğin geleceği durumları belirtiyoruz. Aynı Classic Load Balancer'da yoğunluğu hemen dengeleyiciye bağlarsanız, Application Load Balancer'da ilk önce şunları yaparsınız:
- bir Yük Dengeleyici oluşturun;
- bir Hedef grup oluşturun;
- gerekli bağlantı noktaları veya Yük Dengeleyici kuralları aracılığıyla gerekli Hedef Gruplara doğrudan;
- Hedef gruplarda örnekleri atarsınız.
Bu çalışma mantığı daha karmaşık görünebilir ancak aslında daha kullanışlıdır.
Bir sonraki bileşen Dinleyici kuralları (yönlendirme kuralları). Bu yalnızca Application Load Balancer için geçerlidir. Network Load Balancer'da yalnızca bir Dinleyici oluşturursanız ve trafiği belirli bir Hedef gruba gönderiyorsa, Application Load Balancer'da her şey
Şimdi bir sonraki bileşen hakkında birkaç kelime söyleyelim - elastik IP (NLB için statik adresler). Dinleyici kuralları yönlendirme kuralları yalnızca Application Load Balancer'ı etkiliyorsa, Elastic IP yalnızca Network Load Balancer'ı etkiledi.
Bir Ağ Yük Dengeleyici oluşturalım:
Ve tam da oluşturma süreci sırasında bize Elastik IP seçme fırsatı verildiğini göreceğiz:
Elastic IP, zaman içinde farklı EC2 bulut sunucularıyla ilişkilendirilebilecek tek bir IP adresi sağlar. Bir EC2 bulut sunucusunun Esnek IP adresi varsa ve bu bulut sunucusu sonlandırılırsa veya durdurulursa yeni bir EC2 bulut sunucusunu hemen bir Elastik IP adresiyle ilişkilendirebilirsiniz. Ancak gerçek EC2 değişse bile uygulamalar hala aynı IP adresini gördüğünden mevcut uygulamanız çalışmayı durdurmayacaktır.
Burada
Amazon bunları zamanla, belki her 60 saniyede bir değiştirir (ancak pratikte elbette daha az sıklıkla). Bu, IP adreslerinin değişebileceği anlamına gelir. Network Load Balancer durumunda ise yalnızca bir IP adresini bağlayabilir ve bunu kurallarınızda, politikalarınızda vb. belirtebilirsiniz.
Sonuçlara Berabere
ELB, gelen trafiğin birden fazla hedefe (konteynerler, Amazon EC2 bulut sunucuları, IP adresleri ve Lambda işlevleri) otomatik olarak dağıtılmasını sağlar. ELB, trafiği değişen yüklerle hem tek bir Erişilebilirlik Alanında hem de birden fazla Erişilebilirlik Alanında dağıtma yeteneğine sahiptir. Kullanıcı, yüksek kullanılabilirlik, otomatik ölçeklendirme ve iyi koruma sağlayan üç dengeleyici türü arasından seçim yapabilir. Tüm bunlar uygulamalarınızın hata toleransını sağlamak için önemlidir.
Ana avantajlar:
- yüksek kullanılabilirlik. Hizmet sözleşmesi, yük dengeleyicinin %99,99 kullanılabilirliğini varsayar. Örneğin, birden fazla Erişilebilirlik Alanı, trafiğin yalnızca sağlıklı nesneler tarafından işlenmesini sağlar. Aslında trafiği farklı kullanılabilirlik alanlarındaki sağlıklı hedeflere yönlendirerek tüm bölgedeki yükü dengeleyebilirsiniz;
- güvenlik. ELB, Amazon VPC ile çalışarak entegre sertifika yönetimi, kullanıcı kimlik doğrulaması ve SSL/TLS şifre çözme gibi çeşitli güvenlik özellikleri sağlar. Hepsi bir arada TLS ayarlarının merkezi ve esnek yönetimini sağlar;
- esneklik. ELB, ağ trafiğindeki ani değişiklikleri yönetebilir. Otomatik Ölçeklendirme ile derin entegrasyon, yük değiştiğinde manuel müdahale gerektirmeden uygulamaya yeterli kaynak sağlar;
- esneklik. İstekleri uygulamalarınızın hedeflerine yönlendirmek için IP adreslerini kullanabilirsiniz. Bu, hedef uygulamaları sanallaştırırken esneklik sağlar ve böylece tek bir örnekte birden fazla uygulamayı barındırma olanağı sağlar. Uygulamalar tek bir ağ bağlantı noktasını kullanabildiğinden ve ayrı güvenlik gruplarına sahip olduğundan, örneğin mikro hizmet tabanlı bir mimariye sahip olduğumuzda uygulamalar arasındaki iletişim basitleşir;
- izleme ve denetim. Amazon CloudWatch özelliklerini kullanarak uygulamaları gerçek zamanlı olarak izleyebilirsiniz. Metriklerden, loglardan, istek takibinden bahsediyoruz. Basit bir ifadeyle, sorunları tanımlayabilecek ve performans darboğazlarını oldukça doğru bir şekilde tespit edebileceksiniz;
- hibrit yük dengeleme. Aynı yük dengeleyiciyi kullanarak şirket içi kaynaklar ile AWS arasında yük dengeleme yeteneği, şirket içi uygulamaların buluta taşınmasını veya genişletilmesini kolaylaştırır. Bulut kullanılarak arıza yönetimi de basitleştirilmiştir.
Ayrıntılarla ilgileniyorsanız, resmi Amazon web sitesinden birkaç faydalı bağlantı daha:
Kaynak: habr.com