Cloud Storage & İçerik Dağıtımı 5 dk okuma 2 okunma

Blob Storage ve CDN Yönetimi

Azure Blob Storage, ölçeklenebilir nesne depolama sunar; CDN (Azure Front Door) ile küresel olarak düşük gecikmeli içerik dağıtımı sağlanır. Erişim katmanları (Hot/Cool/Cold/Archive), yaşam döngüsü politikaları, önbellekleme kuralları, TTL yönetimi, SAS token güvenliği ve önbellek temizleme stratejileri ele alınır.

Blob Storage ve CDN Yönetimi

Blob Storage ve CDN Yönetimi

Modern bulut uygulamalarında statik içerik (görsel, video, belge, JS/CSS) sunmak, hem performans hem de maliyet açısından kritik bir karardır. Azure Blob Storage, ölçeklenebilir nesne depolama sunarken; CDN (Content Delivery Network), bu içeriği kullanıcıya en yakın noktadan sunarak gecikmeyi azaltır. Bu yazıda, Blob Storage'ın erişim katmanlarını, yaşam döngüsü yönetimini, CDN entegrasyonunu, önbellekleme stratejilerini ve güvenlik detaylarını ele alacağız.


1. Blob Storage Temelleri

Azure Blob Storage, yapılandırılmamış verileri depolamak için kullanılan bir nesne depolama hizmetidir. Üç blob türü bulunur:

Blob Türü Kullanım Alanı
Block Blob Görsel, video, belge (büyük dosyalar)
Page Blob VM diskleri (rastgele okuma/yazma)
Append Blob Log'lar, telemetri (sadece ekleme)

Statik Web Sitesi Hosting: Blob Storage, $web container'ı üzerinden statik web siteleri barındırabilir. Ancak, özel domain ve SSL sertifikası için CDN entegrasyonu gerekir.


2. Erişim Katmanları (Access Tiers)

Blob Storage, maliyet optimizasyonu için farklı erişim katmanları sunar :

Katman Erişim Sıklığı Depolama Maliyeti Erişim Maliyeti Minimum Saklama
Hot Sık erişilen Yüksek Düşük -
Cool Seyrek erişilen Düşük Yüksek 30 gün
Cold Çok seyrek Daha düşük Daha yüksek 90 gün
Archive Nadiren erişilen En düşük En yüksek 180 gün

Kritik Uyarı: Archive katmanı çevrimdışıdır (offline). Erişim öncesi "rehydration" (yeniden hidrasyon) gerekir ve bu saatler sürebilir . Sık erişilmesi beklenen verileri Archive'a taşımayın.

Erken Silme Ücreti: Cool veya Cold katmanındaki bir blob, minimum saklama süresi dolmadan silinirse veya başka bir katmana taşınırsa erken silme ücreti uygulanır .


3. Yaşam Döngüsü Yönetimi (Lifecycle Management)

Yaşam döngüsü politikaları, blob'ları otomatik olarak katmanlar arasında taşır veya siler. JSON tabanlı kurallarla yönetilir .

Örnek Politika:

json

{
  "rules": [
    {
      "name": "agingRule",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": ["blockBlob"],
          "prefixMatch": ["logs/"]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 90 },
            "delete": { "daysAfterModificationGreaterThan": 365 }
          }
        }
      }
    }
  ]
}

En İyi Pratikler:

  • Katman geçişlerini kademeli yapın (önce Cool, sonra Archive) .

  • Silme işlemini en sona bırakın; soft delete ve versioning ile koruma sağlayın.

  • Lifecycle politikaları asenkrondur; anında çalışmaz.

  • Önemli: Lifecycle management ile Archive'daki bir blob'u çevrimiçi katmana otomatik olarak geri getiremezsiniz . Rehydration manuel yapılmalıdır.


4. CDN Entegrasyonu: Azure Front Door

Azure CDN hizmeti, Azure Front Door Standard/Premium ile devam etmektedir. Klasik Azure CDN ve Front Door (classic) sürümleri 2027'de kullanımdan kaldırılacaktır.

Neden CDN?

  • Küresel POP (Point of Presence) ağı ile düşük gecikme.

  • Origin (Blob Storage) üzerindeki yükü azaltma.

  • Özel domain ve SSL desteği.

Front Door vs. Klasik CDN:

Özellik Front Door Standard Klasik CDN
Statik Dosya Sunumu ✓ ✓
Özel Domain + SSL ✓ ✓
Sorgu Dizesi Önbellekleme ✓ ✓
Kural Motoru ✓ ✓
WAF (Premium) ✓ Sınırlı
Kullanımdan Kaldırma - 2027

Öneri: Yeni projelerde Azure Front Door Standard kullanın.


5. Önbellekleme Stratejileri

CDN'in etkinliği, doğru önbellekleme kurallarına bağlıdır.

A. TTL (Time-to-Live) Yönetimi

Azure CDN, origin'den gelen Cache-Control başlığına uyar. Başlık yoksa varsayılan değerler uygulanır. Önbellek davranışı üç modda yapılandırılır :

Mod Davranış
Bypass Cache Önbellekleme yapılmaz; tüm istekler origin'e gider.
Override Origin'in cache süresi yok sayılır; belirtilen TTL kullanılır.
Set if Missing Origin'de cache başlığı varsa o kullanılır; yoksa belirtilen TTL uygulanır.

B. Sorgu Dizesi (Query String) Davranışı

Üç mod bulunur:

Mod Davranış Kullanım
Ignore Query Strings Tüm varyasyonlar aynı önbelleği kullanır Takip parametreleri
Bypass Caching Sorgu dizesi varsa önbellekleme yapılmaz Dinamik içerik
Cache Every Unique URL Her farklı sorgu ayrı önbelleklenir Versiyonlama (?v=123)

Versiyonlama En İyi Pratiktir: app.js?v=abc123 gibi versiyonlama, TTL beklemeden güncellemeyi sağlar.

C. Önbellek Temizleme (Purge)

Acil güncellemeler için manuel purge yapılabilir. Ancak, purge işlemi tüm POP'lara yayılması zaman alabilir.


6. Güvenlik: SAS Token ile Erişim Kontrolü

Blob container'ı varsayılan olarak public erişime açıksa, URL'yi bilen herkes dosyalara erişebilir. SAS (Shared Access Signature), sınırlı süre ve izinlerle erişim sağlar.

SAS Kullanımı:

text

https://<account>.blob.core.windows.net/<container>/<file>?sv=<SAS-token>

CDN ile SAS Entegrasyonu:

  • CDN, SAS token'ı sorgu dizesi olarak iletir.

  • Kritik: SAS süresi, CDN TTL'sinden kısa veya eşit olmalıdır. Aksi halde SAS süresi dolsa bile CDN eski içeriği sunmaya devam eder.

  • Sınırlama: CDN üzerinden SAS ile yükleme (upload) yapılamaz; sadece okuma (GET) desteklenir.

  • Öneri: Her istekte yeni SAS token üretiyorsanız ve "Cache Every Unique URL" kullanıyorsanız, CDN'den önbellek avantajı elde edemezsiniz; her istek origin'e gider . Bu senaryoda Azure Front Door Premium + Private Link daha güvenli ve etkili bir çözüm sunar .


7. Maliyet Optimizasyonu

CDN maliyeti, trafik hacmine ve seçilen sağlayıcıya göre değişir. Azure CDN'den Microsoft ağı üzerinden origin'e (Blob Storage) veri transferi ücretsizdir . Bu, CDN kullanımını maliyet açısından avantajlı kılabilir.

Temel Maliyet Bileşenleri:

  • Depolama: Katman başına GB başına ücret (Hot > Cool > Cold > Archive).

  • Erişim/İşlem: Okuma/yazma işlem sayısı (Archive'da en yüksek).

  • CDN Trafiği: POP'lardan kullanıcıya veri transferi.

  • Erken Silme: Cool/Cold/Archive minimum saklama süresi dolmadan silme.


8. En İyi Pratikler

Pratik Açıklama
Yaşam Döngüsü Politikası Kullanın Manuel katman yönetimi yerine otomatik politikalar tanımlayın.
SAS Süresini TTL ile Uyumlu Tutun SAS süresi > CDN TTL olursa güvenlik açığı oluşur.
Versiyonlama Kullanın ?v=hash ile TTL beklemeden güncelleme yapın.
Archive'a Dikkat Edin Sık erişilen verileri Archive'a taşımayın; rehydration maliyetli ve yavaştır.
Erken Silme Ücretlerini Hesaplayın Katman değişikliklerinde minimum saklama sürelerini göz önünde bulundurun.
CDN Purge Planlayın Acil güncellemeler için purge mekanizması hazırlayın.
Monitoring Kurun Katman dağılımını, CDN hit/miss oranlarını ve maliyetleri izleyin.

Sonuç

Blob Storage ve CDN, modern bulut uygulamalarında statik içerik yönetiminin temelidir. Erişim katmanları (Hot/Cool/Cold/Archive) ile depolama maliyetini optimize edebilir, yaşam döngüsü politikaları ile otomatik geçişler yapabilir, Azure Front Door ile küresel ölçekte düşük gecikmeli içerik sunabilirsiniz. SAS token ile güvenliği sağlarken, SAS süresi ile CDN TTL'sinin uyumuna dikkat etmek kritiktir. Unutmayın: Doğru yapılandırılmış bir Blob + CDN mimarisi, hem performansı hem de maliyeti optimize eder; yanlış yapılandırma ise güvenlik açıklarına ve beklenmedik maliyetlere yol açar.

Tüm yazılar Soru ya da yorumun mu var? Yaz