AWS, Azure ve Google Cloud Platform’da Yönetilen Redis Hizmetlerini Karşılaştırma
Oldum olası düzen, disiplin ve hiza’yı sevmişimdir. Aşağıda ki fotoğrafa baktığımda çok rahatlıyorum. Çünkü bir düzen ve hiza var. Yaşantımızda nasıl düzenli ve hizalıysak yaptığımız işlerde de öyle devam ediyoruz. Bir işi özenle yapmak, işin karşılığının hakkı değil, karekterin karşılığı olarak düşünüyorum.
Redis, bir bellek içi veri deposudur. Ağırlıklı olarak Key/Value deposu olduğu için bir çok ilişkisel veritabanı özelliklerine sahip değildir. Basit bir veritabanı, önbellek ve ya bir pub/sub olarak kullanılabilir. Çok hızlıdır çünkü bellektedir. Bu da fazla bellek tüketimi anlamı taşıyor :) Şimdilerde Scale Up/Scale Out kavramları da popüler bir hal almışken Redis’i detaylı incelememiz gereken güzel bir konu olarak görüyorum.
Amazon Web Services, Microsoft Azure, Google Cloud Platform Redis Servisi sunmaktadır. Sürüm ve özellikler değişkenlik gösterebiliyor. Seçim yaparken de bu detaylara önem vermek gerekiyor. Yakından farklılıklarını inceleyelim.
Amazon Web Services
AmazonWS, bu noktada ElastiCache servisi olarak karşımıza çıkmaktadır. Redis’in son sürümlerine kadar destekleri mevcuttur. Redis Cluster seçimi yapılabilmesi artı bir olanak. Yedekleme yardımı sayesinde yeni cluster’lar oluşturarak bunları ayağa kaldırmanız çok hızlı olur.
Microsoft Azure
Microsoft, bu hizmetine Redis için Azure Cache ismini veriyor. Azure şuan için sadece Redis 4.0 sürümünü destekliyor. Amazon gibi Redis Cluster seçimi yine Azure’da da bulunuyor. Azure “Veri Kalıcılığı” seçeneğine sahip fakat bu seçenek Enterprise katmanında kullanılabiliyor.
Google Cloud Platform
Google Cloud Platform Redis hizmetine Cloud Memorystore adını vermektedir. Sadece Redis 4.0 sürümünü desteklemektedir. Çoğaltılmış ve Bağımsız sunucular arasından seçim yapılabilir fakat Cluster bazında çalışmak pek mümkün görünmemektedir. Ayrıca yerel yedekleme seçenekleri de mevcut değil.
Hepsinde de Redis RDB verileri içe ve dışa aktarılabilir özelliğini desteklemektedir.
Versiyon
Bu yazı yazıldığı sırada Redis’in en son sürümü 5.0.8'dir.
AWS, Redis 5.0 sunucularını çalıştırmanıza izin verirken, Azure ve Google Cloud Platform yalnızca Redis 4.0 sunucularına izin verir. Bu önemli bir detay çünkü Redis 4.0 ile Redis 5.0 arasında bazı özellik ve geliştirmeler mevcut.
- Performance and Stability
- Memory Management
- Persistence
- Replication
Aşağıda ki URL’den Redis 5.0'da ne gibi yeni özellikler oldğunu detaylı inceleyebilirsiniz.
https://redislabs.com/community/whats-new-redis-5/
Yüksek Kullanılabilirlik
Redis Cluster’ı şuan Google Cloud Platform desteklemiyor. Bu çok büyük ve önemli bir özellik. Şuan AWS ve Azure bu konuda desteklerini kullanıcılarına sunuyor.
Yedekleme
Tüm sağlayıcılar Redis RDB verilerini aktarmamıza olanak sağlar fakat sadece AWS bu konuda yedeklemeyi destekliyor.
DevOps
Üç bulut sağlayıcısının da kendi altyapı hizmeti bulunuyor. TerraForm gibi 3rd tool’ları da desteklemektedir.
Güvenlik
Redis’in kendisine ait bir UserBased güvenliği bulunmamaktadır. Redis ağ bağlantısı kurulduğunda istemciye güvenir bu nedenle sunucular internet’e açık olmamalıdır.
Bu üç bulut sağlayıcısı kendi özel ağ güvenlik sistemlerini kullanarak Redis sunucunuzu özel bir ağa yerleştirir ve Redis verilerinize yalnızca aynı ağdaki diğer sunucular erişebilir. Güvenlik bu şekilde sağlanmış olur.
Fiyatlandırma
“ABD Doğu” bölgesindeki saatlik maliyeti baz alarak yayınladım. Bu listeye göre AWS bir redis sunucu çalıştırmanın en düşük maliyetli yoludur.
Sonuç
Bir sonuca varmak mümkün görünmüyor. Fakat ihtiyaca göre bir yol çizmek her zaman için en doğru seçim olacaktır. Bu nedenle kişisel olarak düşüncelerim şunlar;
- Fiyat olarak en uygun AWS öne çıkıyor.
- Sürüm farklılıkları sizin için önemliyse, en yeni sürümü kullanmak istiyorsanız Azure ve GCP sağlayıcılarını elemelisiniz ya da ihtiyaçlarınızı bunlara göre şekillendirmelisiniz.
- Redis Cluster ihtiyacınız var ise Google Cloud Platform’dan uzak durun :)
Büyük olasılıkla, seçiminiz mevcut altyapınızın nerede olduğuna da bağlı olacaktır. Bunu da göz ardı etmemek gerekiyor.