Olay tetiklemeli görevler, kaynak ölçümlerini gerçek zamanlı olarak izler ve bir uyarı koşulu karşılandığında ölçeklendirme kurallarını otomatik olarak çalıştırır. Trafik artışlarının öngörülemediği durumlarda olay tetiklemeli görevleri kullanın; bu sayede ölçeklendirme grubunuz sabit bir zamanlamaya değil, gerçek yüke göre tepki verebilir.
Çalışma şekli
Auto Scaling, ölçeklendirme grubunuzdaki kaynaklardan (örneğin CPU kullanımı veya bellek kullanımı) sürekli olarak ölçüm verilerini toplar.
Ölçüm, tanımladığınız eşiği aştığında bir alarm tetiklenir.
Auto Scaling, alarm göreviyle ilişkili ölçeklendirme kuralını çalıştırır.
Çalıştırmadan sonra, ölçeklendirme grubu hızlı ve tekrarlayan ölçeklendirmeleri önlemek için bir bekleme süresine girer.
İzleme türleri
Auto Scaling iki tür olay tetiklemeli görevi destekler:
Sistem izleme: Ölçeklendirme grubundaki Elastic Compute Service (ECS) örnekleri için CPU kullanımı, bellek kullanımı, sistem diski okuma/yazma IOPS'leri ve ağ trafiği gibi yerleşik Cloud Monitor ölçümlerini izler. Ek araç entegrasyonu gerektirmez.
Özel izleme: Cloud Monitor özel ölçümleri aracılığıyla entegre edilen kendi izleme sisteminizdeki ölçümleri izler. Yerleşik sistem ölçümleri gerçek iş yükünüzü yansıtmadığında — örneğin, uygulama katmanından gelen kuyruk derinliği veya istek gecikme süresi gibi durumlarda — bu türü kullanın.
Bir ölçeklendirme kuralı türü seçin
Her olay tetiklemeli görev, alarm tetiklendiğinde bir ölçeklendirme kuralı çalıştırır. Auto Scaling üç kural türünü destekler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Öneri: Hedef izleme ölçeklendirme kuralı ile başlayın. En az yapılandırma gerektirir ve yükünüz değiştikçe otomatik olarak telafi eder. Farklı ölçüm aralıklarında ayarlama boyutu üzerinde kesin kontrole ihtiyaç duyduğunuzda adım bazlı ölçeklendirmeyi kullanın.
Hedef izleme: İyi çalışmayan ölçümler
Hedef izleme, seçilen ölçümün örnek sayısı değiştikçe orantılı olarak değiştiği durumlarda en iyi sonucu verir. Aşağıdaki ölçümleri hedef izlemede kullanmaktan kaçının:
Yük dengeleyici istek sayısı: Bir Server Load Balancer (SLB) örneği tarafından alınan toplam istek sayısı, daha fazla örnek eklendiğinde azalmaz; aksine, daha fazla kapasite daha fazla isteği işlediği için artar.
İstek gecikme süresi: Gecikme süresi yük altında artabilir ancak örnek eklediğinizde orantılı olarak değişmez, bu da onu hedef izleme ölçümü olarak güvenilmez kılar.
Bu ölçümler için bunun yerine adım bazlı ölçeklendirme kuralı veya basit ölçeklendirme kuralı kullanın.
Adım bazlı ölçeklendirme: Ayarlamaların hesaplanması
Adım bazlı ölçeklendirme kuralı, eşik değerinin üzerindeki veya altındaki ölçüm aralığını bantlara böler ve her bant belirli bir ayarlamayla eşleşir.
Örneğin, CPU kullanımınızın eşiği %60 ise ve ölçeklendirme grubunuzda şu anda 10 örnek bulunuyorsa:
CPU %65'te (eşiğin %5 üzerinde): 1 örnek ekle → 11 örnek
CPU %75'te (eşiğin %15 üzerinde): 3 örnek ekle → 13 örnek
CPU %85'te (eşiğin %25 üzerinde): 5 örnek ekle → 15 örnek
Her adım için ayarlama, ölçeklendirme kuralını oluştururken tanımlanır. Ondalık sonuçlar aşağı yuvarlanır.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Active durumunda bir ölçeklendirme grubu
Ölçeklendirme grubunda oluşturulmuş en az bir ölçeklendirme kuralı
(Özel izleme için) Cloud Monitor'a zaten raporlanmış özel ölçümler
Olay tetiklemeli görev oluşturma
Sistem izleme görevi oluşturma
Auto Scaling konsolu üzerinden oturum açın.
Sol gezinme bölmesinde Scaling Tasks > Event-Triggered Tasks seçeneğini belirleyin.
Üst gezinme çubuğunda ölçeklendirme grubunuzun bulunduğu bölgeyi seçin.
Event-triggered Tasks (System) sekmesine tıklayın ve ardından Create Event-triggered Task düğmesine tıklayın.
Görev parametrelerini yapılandırın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OK düğmesine tıklayın.
Özel izleme görevi oluşturma
Yukarıdaki 1-3. adımları izleyin, ardından Event-triggered Tasks (Custom) sekmesine tıklayın ve Create Event-triggered Task düğmesine tıklayın. Yukarıdaki parametrelere ek olarak şunları belirtin:
|
|
|
|
|
|
|
|
|
Birden fazla olay tetiklemeli görev aynı anda tetiklendiğinde
Bir ölçeklendirme grubunda birden fazla olay tetiklemeli görev olabilir. Aynı anda birden fazla alarm tetiklendiğinde:
Ölçek genişletme: Herhangi bir ölçek genişletme alarmı tetiklenirse, ölçek genişletme eylemi başlatılır.
Ölçek daraltma: Tüm ölçek daraltma alarmları aynı anda karşılandığında yalnızca ölçek daraltma eylemi tetiklenir.
Ölçeklendirme grubunuzun hem otomatik olarak genişleyebilmesi hem de daralabilmesini sağlamak için olay tetiklemeli görevleri her zaman çiftler halinde — biri ölçek genişletme, diğeri ölçek daraltma için — yapılandırın.
Kullanım notları
Bekleme süresi: Bir ölçeklendirme kuralı çalıştırıldıktan sonra ölçeklendirme grubu bir bekleme süresine girer. Bu süre boyunca yeni bir ölçeklendirme etkinliği başlamaz. Bekleme süresi sırasında bir alarm tetiklenirse, Auto Scaling bekleme süresi sona erdikten sonra alarmı yeniden değerlendirir. Örneklerinizin sağlıklı duruma gelip trafik sunmaya başlaması için geçen süreye göre bekleme süresini ölçeklendirme grubunda veya ölçeklendirme kuralında ayarlayın.
Geçerlilik dönemi ve cron ifadeleri: Cron ifadeleri UTC+0 zaman dilimini kullanır. Ekibiniz UTC+8'de çalışıyorsa, hedef zaman pencerenizden 8 saat çıkarın. Örneğin, ölçeklendirmeyi Pekin saatiyle 09:00–18:00 arasına kısıtlamak için cron ifadesini 1-10 olarak ayarlayın.
Alarm durumu ve çalıştırma: Bir alarm tetiklenebilir ve görevi Alert durumuna getirebilir, ancak ölçeklendirme kuralını çalıştırmayabilir — örneğin, alarm geçerlilik dönemi dışında tetiklendiğinde veya ölçeklendirme grubu bekleme süresindeyken.
Hedef izleme görevleri manuel olarak değiştirilemez: Bir olay tetiklemeli görev hedef izleme ölçeklendirme kuralı kullanıyorsa, oluşturulduktan sonra görevin temel ayarlarını düzenleyemezsiniz. Yapılandırmayı değiştirmek için görevi silin ve yeniden oluşturun.
En iyi uygulamalar
Ölçek genişletme ve ölçek daraltma görevlerini eşleştirin
Her ölçek genişletme görevi için mutlaka eşleşen bir ölçek daraltma görevi oluşturun. Ölçek daraltma görevi olmadan, ölçeklendirme grubunuz yük altında genişler ancak asla daralmaz, bu da boşta çalışan örneklerin kalmasına neden olur.
Gürültüyü filtrelemek için istatistiksel dönemi kullanın
Kısa istatistiksel dönemler (1 dakika) artışları hızla tespit eder ancak geçici yük patlamaları için ölçeklendirmeyi tetikleyebilir. Dakikalar içinde çözülen ara sıra CPU artışları gösteren iş yükleri için daha uzun bir istatistiksel dönem (5 dakika) kullanın ve sürdürülebilir yükü doğrulamak için Trigger After değerini 3 veya daha fazla ardışık dönem olarak ayarlayın.
Hata bildirimlerini ayarlayın
Bir olay tetiklemeli görevin çalıştırılamaması durumunda (örneğin, ölçeklendirme grubunun bekleme süresinde olması veya maksimum kapasitede olması nedeniyle) bilgilendirilmek için Cloud Monitor uyarı bildirimlerini yapılandırın. Bildirimleri e-posta, SMS veya Webhook'a yönlendirerek ekibinizin yük kapasiteyi aşmadan önce müdahale etmesini sağlayın.
Öngörülebilir zirve dönemleri için yalnızca olay tetiklemeli görevlere güvenmeyin
Olay tetiklemeli görevler, zaten gelmiş olan yüke tepki verir. Marketing kampanyası veya gece toplu işi gibi önceden tahmin edebileceğiniz trafik modelleri için, zirve döneminden önce ön ölçeklendirme yapmak üzere zamanlanmış bir görev ekleyin. Tam kapsama alanı sağlamak için olay tetiklemeli görevleri zamanlanmış görevlerle birlikte kullanın.