Auto Scaling hem zamanlanmış görevleri hem de olay tetiklemeli görevleri (hedef izleme kuralları dahil) destekler. İkisi aynı anda etkin olduğunda hatalı yapılandırma, bir olay tetiklemeli görevin zamanlanmış bir ölçek genişletmeyi geçersiz kılmasına ve beklenmeyen kapasite durumlarına yol açabilir. Bu konu, bu görevlerin nasıl etkileşime girdiğini açıklar ve ölçeklendirme çakışmalarını önlemek için önerilen bir yapılandırma sunar.
Sorun senaryosu
Bir ölçeklendirme grubunda beklenen örnek sayısı, zamanlanmış görevler ve olay tetiklemeli görevler (hedef izleme kuralları gibi) aynı anda etkinleştirildiğinde çakışma meydana gelebilir: Zamanlanmış bir görev ölçek genişletmeyi tetikler ancak işlem tamamlanmadan önce bir olay tetiklemeli görev devreye girer ve beklenen örnek sayısını üzerine yazarak ölçek genişletmenin etkili olmasını engeller.
Tipik vakalar
Neden analizi
Kök neden, zamanlanmış görevler ile olay tetiklemeli görevlerin farklı yürütme mekanizmalarında yatar:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Temel sorun: Zamanlanmış bir görev yalnızca beklenen örnek sayısını değiştirdiğinde değişiklik atomik veya anında etkili olmaz. 30 saniye ila 1 dakikalık gecikme süresince bir olay tetiklemeli görev mevcut gerçek örnek sayısına göre tetiklenebilir, yeniden hesaplama yapabilir ve beklenen örnek sayısını üzerine yazabilir.
En iyi uygulama: Temel kapasite için zamanlanmış görevler, esnek kapasite için olay tetiklemeli görevler
Çözüm özeti
Zamanlanmış görevler ile olay tetiklemeli görevlerin sorumluluklarını net bir şekilde ayırmak için "temel + esnek" katmanlı kapasite modeli kullanın:
Temel kapasite (zamanlanmış görevlerle yönetilir): Yoğun saatlerdeki kapasite tabanının olay tetiklemeli görevler tarafından düşürülmesini önlemek için zamanlanmış görevleri kullanarak hem minimum hem de beklenen örnek sayısını ayarlayın.
Esnek kapasite (olay tetiklemeli görevlerle yönetilir): Gerçek yüke göre temel kapasitenin üzerine dinamik olarak örnek eklemek veya kaldırmak için hedef izleme kurallarını veya olay tetiklemeli görevleri kullanın.

Prosedür
Aşağıdaki örnek önerilen yapılandırmayı göstermektedir. İşletmenizin günlük bazda 10 örnekten sabah 08:00'de 50 örneğe ölçeklendirmesi, saat 22:00'de normal seviyeye geri dönmesi ve CPU kullanımını %60 düzeyinde tutmak için bir hedef izleme kuralı kullanması gerektiğini varsayalım.
Adım 1: Zamanlanmış ölçek genişletme görevi oluşturun
Yoğun saatlerin başlangıcında hem minimum hem de beklenen örnek sayısını ayarlayan bir zamanlanmış görev oluşturun. Böylece temel kapasite hemen etkili olur ve olay tetiklemeli görevler tarafından geçersiz kılınmaz.
Auto Scaling konsolu adresine gidin.
Sol gezinme bölmesinde Scaling Groups öğesine tıklayın.
Hedef ölçeklendirme grubunu bulun ve ayrıntılar sayfasını açmak için adına tıklayın.
Scaling Rules and Tasks sekmesine tıklayın. Scheduled Tasks sekmesinde Create Scheduled Task seçeneğine tıklayın.
-
Aşağıdaki ayarlarla bir zamanlanmış ölçek genişletme görevi oluşturun:
Parametre
Değer
Task Name
scheduled-scale-up
Executed At
Her gün saat 08:00'de (veya yoğun iş saatlerinizin başlangıcında)
Recurrence
Günlük
Scaling Method
Configure Number of Instances in Scaling Group
Minimum Instances
50
Expected Instances
50Anahtar yapılandırma : Scaling Method değerini Configure Number of Instances in Scaling Group olarak ayarlayın ve hem Minimum Instances hem de Expected Instances değerlerini 50 olarak belirleyin. Bu şekilde, zamanlanmış görev hem minimum örnek sayısını hem de beklenen örnek sayısını aynı anda günceller ve olay tetiklemeli görevlerin 50 örneğin altına ölçek daraltmasını engeller.
Adım 2: Zamanlanmış ölçek daraltma görevi oluşturun
Eşleşen bir zamanlanmış ölçek daraltma görevi oluşturun. Yoğun saatler sona erdiğinde kaynak israfını önlemek için minimum örnek sayısını normal seviyeye geri yükleyin.
-
Scheduled Tasks sekmesinde Create Scheduled Task seçeneğine tıklayın ve aşağıdaki ayarları kullanın:
Parametre
Değer
Task Name
scheduled-scale-down
Executed At
Her gün saat 22:00'de (veya yoğun iş saatlerinizin sonunda)
Recurrence
Günlük
Scaling Method
Configure Number of Instances in Scaling Group
Minimum Instances
10
Expected Instances
10
Adım 3: Hedef izleme kuralı yapılandırın
Olay tetiklemeli görevlerin, zamanlanmış görevler tarafından ayarlanan temel kapasitenin üzerindeki gerçek yüke göre otomatik olarak ölçeklendirmesini sağlayan bir hedef izleme kuralı oluşturun.
Scaling Rules and Tasks sekmesine tıklayın. Scaling Rules sekmesinde Create Scaling Rule seçeneğine tıklayın.
-
Aşağıdaki ayarlarla bir hedef izleme kuralı oluşturun:
Parametre
Değer
Rule Type
Target Tracking Scaling Rule
Metric Type
(ECS) Average CPU Utilization
Target Value
%60
Hedef izleme kuralı, CPU kullanımına göre ölçeklendirme grubunun minimum ve maksimum değerleri arasında örnek sayısını otomatik olarak ayarlar. Zamanlanmış görev minimum örnek sayısını 50 olarak ayarladığından CPU kullanımı düşük olsa bile örnek sayısı 50'nin altına düşmez.
Yapılandırmadan sonra beklenen davranış
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Anahtar yapılandırma noktaları
Zamanlanmış görevler için ölçeklendirme yöntemi olarak "Configure Number of Instances in Scaling Group" seçeneğini belirleyin. Yalnızca beklenen örnek sayısını değiştirmek yerine hem minimum örnek sayısını hem de beklenen örnek sayısını ayarlayın.
Zamanlanmış görevleri çiftler halinde oluşturun: Yoğun saatlerden sonra minimum örnek sayısının normale dönmesini ve kaynak israfının önlenmesini sağlamak için ölçek genişletme ve ölçek daraltma görevleri çift halinde kullanılmalıdır.
-
Minimum örnek sayısı, beklenen örnek sayısı ve maksimum örnek sayısı arasındaki ilişki:
Zamanlanmış görevler, minimum örnek sayısı ve beklenen örnek sayısı ayarlanarak temel kapasiteyi kontrol eder.
Olay tetiklemeli görevler ve hedef izleme kuralları, minimum örnek sayısı ile maksimum örnek sayısı arasında esnek ayarlama yapar.
Yerleşik sistem kuralları, minimum örnek sayısı ≤ beklenen örnek sayısı ≤ maksimum örnek sayısı olduğunu garanti eder. Öncelik nettir ve ek bir çakışma önleme mekanizmasına gerek yoktur.
SSS
-
Zamanlanmış bir görev başarıyla ölçek genişlettikten sonra CPU kullanımı düşükse hedef izleme kuralı örnekleri geri ölçek daraltır mı?
Hayır. Zamanlanmış görev ayrıca Minimum Instances değerini de ayarlar. Hedef izleme kuralı, Minimum Instances değerinin altına ölçek daraltmaz. Bu nedenle Minimum Instances değerini aynı anda ayarlamak kritik öneme sahiptir.
-
Zamanlanmış bir görevde yalnızca beklenen örnek sayısını değiştirmek uygulanabilir mi?
Önerilmez. Yalnızca Expected Instances değerini değiştirmek aşağıdaki riskleri içerir:
Expected Instances değişikliğinin etkili olması 30 saniye ila 1 dakika gecikme gerektirir. Bu süre zarfında bir olay tetiklemeli görev değeri üzerine yazabilir.
Ölçek genişletme başarılı olsa bile Minimum Instances buna uygun olarak güncellenmediğinden hedef izleme kuralı istenen seviyenin altına ölçek daraltabilir.
-
Zamanlanmış bir görevde maksimum örnek sayısını ayarlamam gerekir mi?
Genellikle gerekmez. Maximum Instances genellikle anormal durumlarda sınırsız ölçeklendirmeyi önlemek için sabit bir üst sınır olarak kalır. İşletmeniz farklı zamanlarda farklı örnek sınırları gerektiriyorsa zamanlanmış görevde Maximum Instances değerini de ayarlayabilirsiniz.
-
Hedef izleme kuralları yerine basit kurallar kullanan olay tetiklemeli görevlerle çakışma oluşur mu?
Evet, çakışmalar hala oluşabilir. Olay tetiklemeli görevin bir Simple Scaling Rule, Step Scaling Rule veya Target Tracking Scaling Rule ile ilişkilendirilmesinden bağımsız olarak zamanlanmış görevin gecikme süresi sırasında tetiklenirse Expected Instances değerini üzerine yazar. Bu konudaki çözüm tüm olay tetiklemeli görev türleri için geçerlidir.