Etiket arşivi: elasticache

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.

parked trucks
Bu Resim Unsplash.com’dan Marcin Jozwiak galerisinden alınmıştır. Resim Polonya’dan bir kareyi yansıtıyor.

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.

AWSAZUREGCP
Standalone EvetEvetEvet
Highly-Available EvetEvetEvet
Redis Cluster SupportedEvetEvetHayır

Yedekleme

Tüm sağlayıcılar Redis RDB verilerini aktarmamıza olanak sağlar fakat sadece AWS bu konuda yedeklemeyi destekliyor.

 AWSAzureGCP
Native BackupsElastiCache snapshotsData Persistence (Enterprise tier only)No
Import/ExportExport snapshot (RDB) to S3 bucketRDB snapshot to page blobRDB snapshot to Cloud Storage bucket

DevOps

Üç bulut sağlayıcısının da kendi altyapı hizmeti bulunuyor. TerraForm gibi 3rd tool’ları da desteklemektedir.

 AWSAzureGCP
Native Infrastructure-as-code supportSupported in AWS CloudFormationSupported in Azure Resource ManagerSupported by Google Cloud Deployment Manager
TerraFormYesYesYes

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.

 AWSAzureGCP
Data protectionPrivate VPCPrivate networkPrivate network
Infrastruture protectionYesYesYes

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 maliyetli yoludur.

 AWSAzureGCP
Cheapest Hourly Cost$0.017$0.022$0.049
Machine Typecache.t3.microBasic C0Basic M1

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.