13 Kasım 2026, Cuma
Sunucu İzleri

Altyapıyı anlamak, geleceği kurmak

Keşfet

Bulut Altyapısında Otomatik Ölçeklendirme (Auto Scaling) Nasıl Kurulur

Bulut tabanlı sistemlerde trafik her zaman sabit seyretmez. Bir e-ticaret sitesi indirim gününde normalin kat kat üzerinde ziyaretçi alabilir, bir…

Bulut Altyapısında Otomatik Ölçeklendirme (Auto Scaling) Nasıl Kurulur

Bulut tabanlı sistemlerde trafik her zaman sabit seyretmez. Bir e-ticaret sitesi indirim gününde normalin kat kat üzerinde ziyaretçi alabilir, bir kurumsal uygulama ise mesai saatleri dışında neredeyse boş kalabilir. Sunucuları sabit kapasitede tutmak bu dalgalanmalar karşısında ya performans sorunlarına ya da gereksiz maliyete yol açar. Otomatik ölçeklendirme (auto scaling), bu dengesizliği ortadan kaldırmak için geliştirilmiş bir kaynak yönetim mekanizmasıdır.

Otomatik Ölçeklendirme Nedir ve Neden Önemlidir

Auto scaling, sistem üzerindeki yükü belirli metriklere göre sürekli izleyerek kaynak sayısını veya kapasitesini otomatik olarak artırıp azaltan bir mekanizmadır. Manuel müdahale gerektirmeden, önceden tanımlanmış kurallar çerçevesinde sunucu sayısı artırılabilir, mevcut sunucuların kapasitesi büyütülebilir veya talep azaldığında kaynaklar geri serbest bırakılabilir.

Dinamik iş yüklerini elle yönetmeye çalışmak birkaç açıdan zorludur. Trafik artışları genellikle önceden tahmin edilemez; bir sistem yöneticisinin gece yarısı oluşan ani yükü fark edip manuel müdahale etmesi beklenemez. Ayrıca kapasiteyi "olası en yüksek yük" senaryosuna göre sabit tutmak, çoğu zaman kullanılmayan kaynaklar için ödeme yapmak anlamına gelir.

Otomatik ölçeklendirmenin işletmelere sağladığı temel faydalar şöyle özetlenebilir:

  • Kesintisiz hizmet sürekliliği: Ani trafik artışlarında sistem çökmeden yeni kaynaklar devreye girer.
  • Maliyet verimliliği: Talep azaldığında fazla kaynaklar otomatik olarak kapatılır, ödeme yapılan kapasite gerçek kullanıma yakınlaşır.
  • Operasyonel yük azalması: Ekiplerin sürekli kapasite izleyip manuel müdahale etme ihtiyacı azalır.

Burada asıl mesele performans ile maliyet arasında sürdürülebilir bir denge kurmaktır. Çok agresif bir ölçeklendirme politikası gereksiz kaynak harcamasına, çok temkinli bir politika ise performans düşüşüne neden olabilir. Bu dengeyi doğru kurmak, aşağıdaki bölümlerde ele alacağımız strateji ve ayarlara bağlıdır.

Yatay ve Dikey Ölçeklendirme Stratejileri

Ölçeklendirme kararı verirken iki temel yaklaşım söz konusudur.

Yatay ölçeklendirme (horizontal scaling), mevcut sunucu sayısını artırarak veya azaltarak yükü dağıtma prensibine dayanır. Örneğin bir web uygulamasının arkasında çalışan sunucu sayısı talebe göre 2'den 10'a çıkarılabilir. Bu yaklaşım, yük dengeleyiciler (load balancer) ile birlikte çalışır ve genellikle bulut ortamlarında tercih edilen yöntemdir çünkü yeni bir sunucu örneği (instance) eklemek, mevcut bir sunucuyu büyütmekten çoğu zaman daha hızlı ve kesintisizdir.

Dikey ölçeklendirme (vertical scaling) ise mevcut sunucunun kaynaklarını (CPU, RAM) artırarak kapasiteyi büyütmeyi ifade eder. Bu yöntem genellikle sunucunun yeniden başlatılmasını gerektirir, bu nedenle anlık trafik artışlarına tepki vermekte yatay ölçeklendirme kadar esnek değildir. Buna karşın, mimarisi dağıtık çalışmaya uygun olmayan (stateful, tek düğümde çalışan) bazı veritabanı sistemleri için dikey ölçeklendirme daha pratik bir çözüm olabilir.

Hangi yöntemin seçileceği uygulamanın mimarisine bağlıdır:

  • Durumsuz (stateless) web uygulamaları ve mikroservisler için yatay ölçeklendirme genellikle daha uygundur.
  • Tek bir büyük veritabanı sunucusu gibi yatay olarak kolayca bölünemeyen sistemlerde dikey ölçeklendirme tercih edilebilir.
  • Birçok gerçek dünya senaryosunda iki yöntem birlikte kullanılır: uygulama katmanı yatay, veritabanı katmanı ise belirli sınırlar içinde dikey olarak ölçeklenir.

Tetikleyiciler ve Metrik Takibi

Auto scaling sisteminin ne zaman devreye gireceğini belirleyen unsur, izlenen metrikler ve bu metriklere bağlı tetikleyicilerdir (triggers). Sistem sürekli olarak belirli göstergeleri izler ve bu göstergeler tanımlanmış eşiği aştığında ya da altına düştüğünde ölçeklendirme eylemi tetiklenir.

En yaygın kullanılan temel metrikler şunlardır:

  • CPU kullanım oranı: İşlemci yükü belirli bir yüzdenin üzerine çıktığında yeni kaynak eklenir.
  • Bellek (RAM) kullanımı: Özellikle bellek yoğun uygulamalarda önemli bir göstergedir.
  • Ağ trafiği: Gelen/giden veri miktarındaki artış, özellikle içerik dağıtımı yapan sistemlerde anlamlı bir sinyal olabilir.
  • İstek kuyruğu uzunluğu veya yanıt süresi: Kullanıcı deneyimini doğrudan etkileyen bu metrikler, bazı durumlarda CPU kullanımından daha isabetli bir tetikleyici olabilir.

Standart metriklerin yanında, uygulamaya özgü özel metrikler de tanımlanabilir. Örneğin bir mesaj kuyruğu sisteminde bekleyen mesaj sayısı, bir API servisinde saniyedeki istek sayısı gibi göstergeler özel metrik olarak izlenebilir ve ölçeklendirme kararına dahil edilebilir.

Eşik değerlerinin belirlenmesi dikkat gerektiren bir adımdır. Çok düşük bir eşik (örneğin %30 CPU kullanımında ölçeklendirme) gereksiz yere sık kaynak eklenmesine, çok yüksek bir eşik (örneğin %95 CPU) ise sistemin zaten zorlanmaya başladığı bir noktada geç müdahale edilmesine yol açar. Genel bir yaklaşım olarak eşik değerleri, yeni kaynağın devreye girme süresi de hesaba katılarak belirlenmelidir; yeni bir sunucunun hazır hale gelmesi birkaç dakika sürebileceğinden, eşik bu gecikmeyi tolere edecek şekilde ayarlanmalıdır.

Ölçeklendirme Kurallarını Tanımlamak

Metrikler ve tetikleyiciler belirlendikten sonra, bunları somut ölçeklendirme kurallarına dönüştürmek gerekir. Bir ölçeklendirme politikası temel olarak şu bileşenlerden oluşur:

  • Minimum ve maksimum kaynak sayısı: Sistemin asla altına inmeyeceği ve üzerine çıkmayacağı sınırlar.
  • Hedef metrik ve eşik değeri: Hangi göstergenin izleneceği ve tetikleme noktası.
  • Ölçeklendirme adımı: Her tetiklemede kaç kaynak ekleneceği veya çıkarılacağı (örneğin bir seferde 2 sunucu eklemek).
  • Soğuma süresi (cooldown period): Bir ölçeklendirme eyleminden sonra sistemin yeni bir eylem tetiklemeden önce bekleyeceği süre.

Ölçek artırma (scale-up) kuralları genellikle hızlı tepki vermek üzere tasarlanır; çünkü performans kaybı kullanıcı deneyimini doğrudan etkiler. Ölçek azaltma (scale-down) kuralları ise daha temkinli olmalıdır. Trafik geçici olarak düştüğünde hemen kaynak azaltmak, kısa süre sonra tekrar artan talep karşısında sistemin yetersiz kalmasına neden olabilir. Bu nedenle scale-down için genellikle scale-up'a göre daha uzun bir gözlem süresi ve soğuma periyodu tanımlanır.

Kurallarda esneklik sağlamak için bazı sistemlerde zamanlanmış ölçeklendirme (scheduled scaling) de kullanılır. Örneğin, trafiğin düzenli olarak belirli saatlerde arttığı biliniyorsa, metrik beklemeden önceden tanımlanmış bir zaman diliminde kaynak sayısı artırılabilir. Bu, metrik tabanlı tepkisel ölçeklendirmeyi tamamlayan proaktif bir yaklaşımdır.

Bulut Sağlayıcılarında Uygulamalar

Temel kavramlar benzer olsa da, her bulut sağlayıcısının auto scaling özelliklerini uygulama biçimi farklılık gösterir.

AWS tarafında Auto Scaling Groups (ASG) adı verilen yapı kullanılır. Bir ASG, minimum, maksimum ve istenen (desired) kapasite değerleri tanımlanarak oluşturulur. CloudWatch metrikleriyle entegre çalışarak CPU kullanımı, ağ trafiği gibi göstergelere dayalı ölçeklendirme politikaları tanımlanabilir. Ayrıca hedef izleme (target tracking), adım ölçeklendirme (step scaling) ve zamanlanmış eylemler gibi farklı politika türleri desteklenir.

Google Cloud Platform'da benzer işlev Managed Instance Groups (MIG) üzerinden sağlanır. MIG'ler, belirlenen şablona göre sanal makine örnekleri oluşturur ve CPU kullanımı, HTTP yük dengeleyici kapasitesi veya özel Cloud Monitoring metriklerine göre otomatik ölçeklenebilir.

Microsoft Azure ortamında ise Virtual Machine Scale Sets (VMSS) kullanılır. VMSS, bir dizi özdeş sanal makineyi tek bir kaynak olarak yönetmeyi sağlar ve Azure Monitor ile entegre metriklere göre ölçeklendirme kuralları tanımlanabilir.

Platformlar arasında kavramsal benzerlik yüksek olsa da; metrik toplama araçları, politika tanımlama arayüzleri, soğuma süresi varsayılanları ve maliyet yapıları farklılık gösterebilir. Çoklu bulut veya hibrit mimarilerde çalışan ekiplerin, her platformun kendi terminolojisini ve sınırlamalarını ayrı ayrı öğrenmesi gerekir.

Maliyet Optimizasyonu ve Performans Dengesini Kurma

Auto scaling'in en önemli vaadi maliyet verimliliğidir, ancak yanlış yapılandırıldığında bu hedefin tam tersi sonuçlar doğurabilir.

Aşırı ölçeklendirme, gereğinden fazla kaynağın devrede kalmasına ve dolayısıyla gereksiz maliyete yol açar. Bu genellikle çok düşük eşik değerleri, uzun soğuma süreleri veya scale-down kurallarının yeterince agresif tanımlanmamasından kaynaklanır.

Yetersiz kaynak tahsisi ise tam tersi bir riski beraberinde getirir: maksimum kapasite sınırının çok düşük belirlenmesi, gerçek talep arttığında sistemin yeterince ölçeklenememesine ve performans sorunlarına yol açar.

Maliyet optimizasyonunda dikkate alınabilecek bir diğer unsur, rezervasyon tabanlı ve talep tabanlı (on-demand) fiyatlandırmanın birlikte kullanılmasıdır. Öngörülebilir temel yük için rezerve edilmiş veya taahhütlü kapasite kullanılırken, değişken tepe yükler için talep tabanlı veya spot/geçici kaynaklar auto scaling ile devreye alınabilir. Bu melez yaklaşım, sabit maliyetleri düşürürken esnekliği korumaya yardımcı olur.

Bütçe kontrolü açısından, çoğu bulut sağlayıcısı bütçe uyarıları ve harcama limitleri tanımlamaya imkân tanır. Maksimum kaynak sayısını mantıklı bir üst sınırla belirlemek ve harcama uyarıları kurmak, beklenmedik maliyet artışlarına karşı bir güvenlik ağı oluşturur.

İzleme, Uyarı ve Loglama

Auto scaling kurallarını tanımlamak tek başına yeterli değildir; sistemin gerçek davranışının sürekli izlenmesi gerekir.

Ölçeklendirme olaylarının izlenmesi, hangi metriklerin ne zaman tetiklendiğini, kaç kaynağın eklenip çıkarıldığını kayıt altına almayı içerir. Bu veriler, politikaların gerçek trafik desenleriyle ne kadar uyumlu çalıştığını değerlendirmek için temel kaynaktır.

Uyarı (alerting) sistemleri, ölçeklendirme sınırlarına yaklaşıldığında (örneğin maksimum kapasiteye ulaşıldığında) veya beklenmedik bir davranış (sürekli tetiklenen scale-up/scale-down döngüsü gibi) oluştuğunda ekibi bilgilendirmelidir. Bu, sorunların kullanıcıya yansımadan önce fark edilmesini sağlar.

Günlük (log) kayıtlarının analizi, ölçeklendirme olaylarını uygulama performans verileriyle ilişkilendirmeye yardımcı olur. Örneğin bir hata artışının, yetersiz kalan kapasiteyle mi yoksa farklı bir uygulama sorunuyla mı ilgili olduğunu ayırt etmek için loglar önemli bir kaynaktır.

Bu izleme altyapısı aynı zamanda sorun teşhisi için de kritik rol oynar: ölçeklendirme beklenenden yavaş çalışıyorsa, metrik toplama gecikmesi mi, kaynak başlatma süresi mi yoksa yanlış tanımlanmış eşik değerleri mi sorumlu, bu sorular ancak doğru izleme verisiyle yanıtlanabilir.

Uygulamada Yapılan Yaygın Hatalar ve Çözümleri

Auto scaling kurulumlarında sıkça karşılaşılan bazı sorunlar ve bunlara yönelik yaklaşımlar şunlardır:

Yanlış metrik seçimi: Yalnızca CPU kullanımına dayalı bir politika, bellek veya I/O yoğun uygulamalarda yanıltıcı olabilir. Uygulamanın gerçek darboğazını yansıtan metriğin seçilmesi gerekir; gerekirse birden fazla metrik birlikte değerlendirilmelidir.

Başlangıç ve bitiş gecikmeleri: Yeni bir sunucu örneğinin hazır hale gelmesi (boot time, uygulama başlatma, sağlık kontrolünden geçme) zaman alır. Bu gecikme hesaba katılmadan belirlenen eşikler, talep zirveye ulaştığında sistemin hâlâ yetersiz kalmasına neden olabilir.

Eşiklerin çok sık değişmesi (flapping): Eşik değeri ile gerçek trafik sınırda seyrediyorsa, sistem sürekli ölçek artırıp azaltma döngüsüne girebilir. Bu durum hem maliyeti artırır hem de sistem kararlılığını bozar. Çözüm olarak eşik değerleri arasında yeterli bir boşluk bırakmak ve soğuma sürelerini doğru ayarlamak gerekir.

Başarısız dağıtımların etkisi: Hatalı bir uygulama sürümü dağıtıldığında, artan hata oranı veya yanıt süresi yanlışlıkla bir kapasite sorunu olarak yorumlanabilir ve sistem gereksiz yere ölçeklenmeye çalışabilir. Dağıtım süreçleriyle ölçeklendirme mekanizmasının birbirinden ayrıştırılması, sağlık kontrollerinin dağıtım hatalarını doğru tespit edebilmesi önemlidir.

Otomatik ölçeklendirme, doğru kurulduğunda bulut altyapısının en değerli özelliklerinden biri haline gelir. Ancak bu mekanizma "bir kere kur, unut" şeklinde değil; sürekli izlenen, gerçek trafik verileriyle düzenli olarak gözden geçirilen bir yapı olarak ele alınmalıdır.

Sunucu İzleri Editör Ekibi

Altyapıyı anlamak, geleceği kurmak

Tüm yazıları

Sen ne düşünüyorsun?

Yorumlar onaylandıktan sonra yayınlanır. E-posta adresin yayınlanmaz.

Haftanın fikirleri, gelen kutunda.

Teknoloji ve yeni fikirler üzerine seçtiğimiz en iyi yazılar, her hafta e-posta adresine gelsin.