Elasticache
RDS nasıl yönetilen ilişkisel veritabanı (Relational Database) sunuyorsa, ElastiCache de yönetilen Redis veya Memcached sağlar.
Cache'ler, bellekte (in-memory) çalışan veritabanlarıdır. Çok yüksek performans ve düşük gecikme (latency) sunarlar.
Okuma ağırlıklı iş yükleri için veritabanı üzerindeki yükü azaltır.
Uygulamanızı stateless (durumsuz) hale getirmenize yardımcı olur. (Yani kullanıcı oturum bilgisi gibi durumlar veritabanında değil, cache'de tutulabilir.)
AWS aşağıdaki işleri sizin yerinize yapar:
İşletim sistemi bakımı
Güvenlik yamaları
Optimizasyonlar
Kurulum ve konfigürasyon
İzleme
Hata kurtarma (failure recovery)
Yedekleme işlemleri
ElastiCache kullanmak, uygulama kodunuzda önemli değişiklikler yapmanızı gerektirebilir. (örn: Redis ya da Memcached kullanacak şekilde kodunuzu yeniden yapılandırmak)
ElastiCache - Çözüm Mimarisi (Veritabanı Önbelleği)
Mimari Akış:
Uygulama ilk olarak ElastiCache’e sorgu gönderir.
Eğer istenen veri ElastiCache’te varsa → Cache hit (önbellek isabeti) → Veri direkt buradan alınır.
Eğer yoksa → Cache miss (önbellek ıskası):
Veri RDS (veritabanı)’nden alınır.
Alınan veri hem uygulamaya döndürülür, hem de önbelleğe yazılır (write to cache).
Neden Kullanılır?
RDS üzerindeki yükü azaltmak için.
Uygulama performansını artırmak için (çünkü önbellek bellek içi çalışır ve çok hızlıdır).
Dikkat Edilmesi Gerekenler:
Cache invalidation (önbellek geçersizleştirme) stratejisi gereklidir. Yani: Veriler güncellendiğinde önbellekteki eski verinin silinmesi ya da güncellenmesi gerekir. Aksi halde kullanıcıya eski veri dönebilir.

Yüksek Erişilebilirlik (HA)
Multi-AZ (çoklu availability zone) desteği vardır. Auto-failover ile desteklenir.
Yüksek erişilebilirlik yoktur, replikasyon desteği sunmaz. Amaa dikey olarak genişleyebilir.
Okuma Ölçeklenebilirliği
Read Replicas ile okuma yükü dağıtılabilir ve yüksek erişilebilirlik sağlanır.
Yok. Okuma yükünü ölçeklemek için replikalar desteklenmez.
Veri Kalıcılığı (Persistence)
AOF (Append-Only File) yöntemi ile kalıcı veri saklama sağlar.
Kalıcı değildir (non-persistent). Bellek kapandığında veri kaybolur.
Yedekleme ve Geri Yükleme
Yedekleme (backup) ve geri yükleme (restore) özellikleri mevcuttur.
Sunucusuz (serverless) ortamda sınırlı yedekleme desteği vardır.
Veri Yapısı Desteği
Set ve Sorted Set gibi gelişmiş veri yapılarını destekler.
Bu veri yapıları desteklenmez. Sadece String Veri Tutar
Sharding / Bölümlendirme
Tek nod üzerinde çoğunlukla çalışır, sharding daha karmaşıktır.
Multi-node sharding varsayılan olarak desteklenir.
Çoklu İş Parçacığı (Multi-threading)
Tek iş parçacıklıdır.
Çoklu iş parçacığı (multi-threaded) mimarisi vardır.
Kullanım
Daha Komplike işleyişe sahip
Basit bir kullanımı var
ElastiCache – Önbellek Güvenliği (Cache Security)
IAM Authentication (Kimlik Doğrulama)
ElastiCache, Redis için IAM kimlik doğrulamayı destekler.
Ancak bu IAM policy'leri yalnızca AWS API seviyesi güvenliği içindir. (Yani Redis'e doğrudan erişim değil, AWS kaynak erişimlerini kontrol etmek içindir.)
Redis AUTH (Parola Tabanlı Güvenlik)
Redis cluster oluştururken şifre/token tanımlanabilir.
Bu şifreleme, security group’lara ek olarak ikinci bir güvenlik katmanı sağlar.
Redis ayrıca "SSL in-flight encryption" desteği sunar: → Veriler ağ üzerinden iletilirken şifrelenir. → EC2 client ↔ Redis arasında güvenli veri iletimi gerçekleşir.

Memcached Güvenliği
SASL tabanlı gelişmiş kimlik doğrulama (SASL = Simple Authentication and Security Layer) desteklenir.
Redis kadar detaylı ve yaygın değildir.
ElastiCache Kullanım Desenleri
1. Lazy Loading (Tembel Yükleme)
Uygulama önce cache’e (ElastiCache) sorgu yapar.
Eğer veri cache’te yoksa:
Veritabanından (RDS) okunur
Aynı zamanda ElastiCache’e de yazılır.
Bu modelde yalnızca okunan veriler cache’e eklenir.
Ancak bu yöntemle önbellekteki veriler zamanla bayatlayabilir (stale data).
2. Write Through (Yazarken Cache'e Yazma)
Veritabanına her yazma işlemi sırasında aynı veri ElastiCache’e de yazılır veya güncellenir.
Bu sayede cache daima güncel veriyi içerir (no stale data).
Okumadan önce yazarken de senkronizasyon yapılır.
3. Session Store (Oturum Saklama)
Kullanıcılara ait geçici session verileri cache içinde tutulur.
Genellikle TTL (Time To Live) ayarı ile verinin süresi belirlenir.
Örnek: Kullanıcı giriş bilgileri, sepet içeriği gibi geçici veriler burada tutulur.
Redis Senaryosu
Redis Kullanım Senaryosu: Oyun Liderlik Tablosu
Sorun:
Oyun liderlik tabloları (leaderboard) hesaplama açısından karmaşık ve gerçek zamanlı sıralama gerektirir.
Sürekli veri girişi ve sıralama yapılması gerekir.
Çözüm: Redis Sorted Sets
Redis Sorted Sets, her öğeyi bir puan (score) ile birlikte tutar.
Hem sıralamayı, hem de benzersizliği (uniqueness) garanti eder.
Her yeni öğe eklendiğinde:
Anında sıralanır
Doğru pozisyona otomatik yerleştirilir

Last updated