- Neden iki hizmet birlikte kullanılır?
- Yük dengeleyici türünü seçmek
- Yük dengeleyici kurulumu: dinleyici, hedef grubu, sağlık kontrolü
- Auto Scaling grubu oluşturmak: launch template ve kapasite sınırları
- Ölçekleme politikaları: ne zaman ve nasıl büyür?
- Sık yapılan hatalar ve denetim listesi
- Mindset programlarında bu beceri nerede çalışılır?
- Sık sorulan sorular
Auto Scaling ve yük dengeleyiciyle trafiğe uyum sağlayan AWS mimarisi
Auto Scaling grubu ve yük dengeleyiciyle ölçeklenebilir mimari kurma: launch template, hedef grubu, sağlık kontrolü, ölçekleme politikaları ve sık hatalar.
Neden iki hizmet birlikte kullanılır?
Tek bir EC2 sunucusu hem kapasite hem erişilebilirlik açısından tek hata noktasıdır. Trafik artınca yavaşlar, sunucu bozulunca uygulama durur. Çözüm iki ayrı sorunu iki ayrı hizmete bölmektir: Elastic Load Balancing gelen isteği birden çok hedef arasında dağıtır, Amazon EC2 Auto Scaling ise o hedeflerin sayısını talebe göre artırıp azaltır.
AWS belgeleri ikisinin birlikte çalıştığını açıkça anlatır: Auto Scaling'in başlattığı instance'lar yük dengeleyiciye otomatik kaydedilir, sonlandırılanlar kayıttan düşer. Yani uygulamayı yöneten kişi hedef listesini elle güncellemez. Yük dengeleyici sağlıksız bulduğu hedefe istek göndermeyi bırakır, Auto Scaling de isterseniz bu sağlık bilgisini kullanıp bozuk instance'ı yenisiyle değiştirir.
Bu ikilinin getirdiği iki somut kazanım vardır. Birincisi dayanıklılık: bir sunucu ya da bir erişilebilirlik bölgesi sorun yaşasa bile sağlam hedefler istek almaya devam eder. İkincisi esneklik: kampanya günü gibi yoğun dönemde kapasite artar, sakin dönemde azalır. Hangi oranda tasarruf edileceği iş yüküne bağlıdır, bunu önceden vaat etmek mümkün değildir.
Yük dengeleyici türünü seçmek
Elastic Load Balancing'in güncel nesil türleri Application Load Balancer, Network Load Balancer ve Gateway Load Balancer'dır. Classic Load Balancer önceki nesildir ve AWS yeni mimarilerde güncel türlere geçilmesini önerir.
Seçim ölçütü, trafiğin türüdür:
- Application Load Balancer: HTTP ve HTTPS trafiği içindir. Yol, alan adı ya da başlık gibi isteğin içeriğine bakarak yönlendirme yapabilir. Web uygulamaları ve mikro hizmetler için olağan tercihtir. AWS WAF ile birlikte kullanılabilir.
- Network Load Balancer: ağ düzeyinde, bağlantı bazlı çalışır; HTTP dışındaki protokoller ve çok yüksek bağlantı yükü gerektiren iş yükleri için düşünülür.
- Gateway Load Balancer: trafiği güvenlik duvarı ya da denetim gereçleri gibi üçüncü taraf sanal cihazlardan geçirmek için kullanılır.
Bir web uygulaması kuruyorsanız büyük olasılıkla Application Load Balancer ile başlarsınız. Sınavlarda ve gerçek tasarımlarda sorulan ayrım şudur: içerik bazlı yönlendirme gerekiyorsa Application, protokolden bağımsız ağ trafiği gerekiyorsa Network, hat içi güvenlik gereci gerekiyorsa Gateway.
HTTPS sonlandırma da yük dengeleyicide yapılabilir. AWS Certificate Manager'dan alınan sertifika dinleyiciye bağlanır, şifre çözme işi sunuculardan alınır.
Yük dengeleyici kurulumu: dinleyici, hedef grubu, sağlık kontrolü
Application Load Balancer kurarken üç kavramı sırayla tanımlarsınız:
- Hedef grubu (target group): isteklerin gideceği instance'ların, konteynerlerin ya da IP adreslerinin mantıksal kümesi. Port ve sağlık kontrolü ayarı hedef grubuna aittir.
- Sağlık kontrolü: yük dengeleyicinin hedefe düzenli olarak atacağı yoklama isteği. Uygulamanın gerçekten yanıt verdiğini gösteren hafif bir yol (örneğin /health) tanımlamak iyi uygulamadır; ana sayfa yerine bu yolu seçerseniz veritabanı gecikmesi yüzünden sunucular gereksiz yere sağlıksız işaretlenmez.
- Dinleyici (listener): hangi port ve protokolde istek beklendiğini ve gelen isteğin hangi hedef grubuna gideceğini söyleyen kural. HTTPS dinleyicisi sertifika ister.
Ağ tarafında yük dengeleyiciyi en az iki erişilebilirlik bölgesindeki alt ağlara yerleştirin. Güvenlik grubu mantığı da önemlidir: yük dengeleyicinin güvenlik grubu internetten gelen web trafiğine açılır, uygulama sunucularının güvenlik grubu ise yalnızca yük dengeleyicinin grubundan gelen trafiğe izin verir. Böylece sunuculara doğrudan erişim kapanır.
Kurulum sonrasında dikkat edilecek bir ayrıntı bağlantı boşaltmadır (deregistration delay): bir hedef kayıttan düşerken sürmekte olan isteklerin tamamlanması için kısa bir bekleme tanınır.
Auto Scaling grubu oluşturmak: launch template ve kapasite sınırları
Auto Scaling grubu, instance'ların mantıksal birimidir ve yapılandırmasını bir launch template'ten alır. Launch template'te imaj (AMI), instance tipi, anahtar çifti, güvenlik grubu, IAM rolü ve user data gibi sunucu başlatma ayarları durur. Bu şablon sürümlenebilir; yeni imaja geçmek istediğinizde yeni sürüm yazıp gruba tanıtırsınız.
Grup üç kapasite değeriyle çalışır: en düşük, istenen ve en yüksek. Auto Scaling grubun asla en düşük değerin altına inmeyeceğini, en yüksek değerin üstüne çıkmayacağını ve istenen sayıda instance tutacağını sağlar. Bu sınırlar güvenlik ağıdır: hatalı bir politika kapasiteyi sonsuza götüremez, bir kesinti de grubu sıfırlayamaz.
Oluştururken şu kararları verirsiniz:
- Hangi alt ağlar, yani hangi erişilebilirlik bölgeleri kullanılacak. Auto Scaling instance'ları bölgelere dengeli dağıtır.
- Hangi yük dengeleyici hedef grubuna bağlanacak.
- Sağlık kontrolü türü. EC2 durum denetimi yalnızca makinenin ayakta olduğunu söyler; yük dengeleyici sağlık kontrolünü de açarsanız uygulaması yanıt vermeyen instance da değiştirilir.
- Birden çok instance tipi ve Spot ile On-Demand karışımı kullanılıp kullanılmayacağı.
Uygulamayı imaja önceden gömmek başlangıç süresini kısaltır. Her açılışta uzun bir kurulum betiği çalıştıran grup, ölçeklenme anında geç yetişir.
Ölçekleme politikaları: ne zaman ve nasıl büyür?
Politikalar grubun kapasiteyi ne zaman değiştireceğini belirler. Başlıca yaklaşımlar:
- Hedef takibi (target tracking): bir ölçümü hedefe yakın tutmaya çalışır; örneğin ortalama işlemci kullanımını belirli bir düzeyde tutmak ya da instance başına istek sayısını sabitlemek. Çoğu durumda en az bakım gerektiren seçenektir.
- Adım ölçekleme (step scaling): alarmın ne kadar aşıldığına göre farklı büyüklükte ekleme ya da çıkarma yapar.
- Zamanlanmış ölçekleme: bilinen bir düzene göre, örneğin her sabah mesai başlamadan önce kapasite artırır.
- Öngörülü ölçekleme: geçmiş trafik desenlerinden gelecek talebi tahmin eder.
Örneğin bir e-ticaret sitesi indirim günlerinde hızlı büyüme ister. Zamanlanmış politika kampanya saatinden önce kapasiteyi yükseltir, hedef takibi de beklenmeyen ek yükü karşılar. İndirim bittiğinde ölçekleme geri çekilir.
Küçülme tarafında dikkatli olun. Çok hızlı küçülen grup, trafik tekrar yükselince titreşir. Soğuma süreleri ve ısınma süresi (instance'ın hazır sayılması için geçen süre) bu dalgalanmayı yumuşatır. Sonlandırılacak instance'a sürmekte olan iş varsa yaşam döngüsü kancaları (lifecycle hooks) ya da ölçek küçültme koruması devreye alınabilir. Bunlar özellikle kuyruk işleyen ya da durum tutan sunucularda önem taşır.
Sık yapılan hatalar ve denetim listesi
Kurulumu çalıştırdıktan sonra şu sorulara cevap verebilmelisiniz:
- Her instance'ı ilk açıldığında uygulama başlatıp sağlık kontrolünü geçirebiliyor mu? Geçemezse grup instance'ı açıp kapatmayı sürdürür ve ücret biriktirir.
- Oturum bilgisi sunucunun belleğinde mi tutuluyor? Ölçek küçülürken kullanıcı oturumu kaybolur. Oturumu paylaşılan bir depoya almak gerekir.
- Yükleme anında kullanıcı yüklediği dosyaları sunucunun yerel diskine yazıyor mu? Instance silinince dosya gider. Nesne depolama kullanın.
- Veritabanı bağlantı sınırı ölçeklenen sunucu sayısını kaldırır mı? Uygulama sunucusu sayısı artınca veritabanı darboğaz olur.
- Hesap kotaları en yüksek kapasiteye izin veriyor mu?
- Yeni imaja geçişte instance refresh gibi kademeli güncelleme mekanizması kullanılıyor mu? Hepsini aynı anda değiştirmek kesinti yaratır.
Bunlara ek olarak CloudWatch üzerinden grubun kapasite geçmişini ve yük dengeleyicinin sağlıksız hedef sayısını izleyin. Ölçekleme etkinlikleri geçmişi, politikanın neden tetiklendiğini gösterir ve ayar yaparken ilk baktığınız yer olmalıdır.
Mindset programlarında bu beceri nerede çalışılır?
AWS Solutions Architect Associate Hazırlık programı, ölçeklenebilir mimariyi sınav senaryosu üzerinden çalıştırır. Hesaplama Mimarisi ve Ölçeklendirme modülü bu sayfadaki konunun ana başlığıdır; Yüksek Erişilebilirlik ve Felaket Kurtarma modülü aynı yapıyı birden çok bölge perspektifine taşır. Program, bulut mimarisi tasarlayan ya da tasarıma katkı veren altyapı, yazılım ve DevOps rolleri için uygundur.
Kurumsal ekiplerde tipik kullanım, mimari incelemelerde ortak dil kurmaktır: geliştirici ile altyapı ekibi aynı terimlerle (hedef grubu, sağlık kontrolü, ölçekleme politikası) konuşabildiğinde kapasite ve dayanıklılık kararları daha hızlı alınır. Bu sayfadaki adımlar öğrenme planı için çerçeve sunar; hesabınızdaki gerçek ayarlar için AWS belgelerini ve kendi yük testlerinizi esas alın.
İlgili Mindset programı
AWS Solutions Architect Associate Hazırlık
Sık sorulan sorular
Auto Scaling ile yük dengeleyici aynı şey midir?
Hayır. Yük dengeleyici gelen isteği mevcut hedefler arasında dağıtır, Auto Scaling ise hedef sayısını talebe göre değiştirir. İkisi birlikte kullanıldığında yeni açılan instance'lar yük dengeleyiciye otomatik kaydedilir, sonlandırılanlar listeden düşer. Biri olmadan diğeri tam fayda sağlamaz.
Hangi ölçekleme politikasıyla başlamak mantıklı?
Çoğu uygulama için hedef takibi en sade başlangıçtır: bir ölçümü, örneğin ortalama işlemci kullanımını, seçtiğiniz düzeyde tutmaya çalışır. Trafik düzeni biliniyorsa zamanlanmış ölçeklemeyi ekleyebilirsiniz. Adım ölçekleme ise daha ince denetim gerektiğinde tercih edilir.
Auto Scaling için ek ücret ödenir mi?
AWS belgelerine göre Amazon EC2 Auto Scaling'in kendisi için ek ücret yoktur; yalnızca kullandığınız EC2 instance'ları, EBS diskleri ve CloudWatch alarmları gibi kaynaklar ücretlendirilir. Yük dengeleyicinin fiyatlandırması ayrıdır ve güncel bilgi AWS fiyatlandırma sayfasında yayımlanır.
Sağlık kontrolü sürekli başarısız olursa ne olur?
Sağlık kontrolü açıksa Auto Scaling sağlıksız instance'ı sonlandırıp yenisini başlatır. Uygulama açılışta hata veriyorsa bu döngü devam eder. Önce uygulama günlüklerine ve sağlık kontrolü yolunun yanıtına bakın, bekleme süresini uygulamanın ayağa kalkma süresine göre ayarlayın.
Veritabanı da otomatik ölçeklenir mi?
Uygulama sunucuları ölçeklense bile klasik bir ilişkisel veritabanı kendiliğinden yatay büyümez. Okuma yükü için okuma kopyaları, bağlantı yönetimi için havuzlama ve gerekirse önbellek kullanılır. Sunucu sayısı artarken veritabanı bağlantı sınırını da hesaba katmak gerekir.