Avec Amazon MemoryDB, AWS s’attaque à Redis dans le cloud
Le géant du cloud propose à ses clients une nouvelle plateforme de base de données en mémoire managée et compatible avec Redis, qui doit concurrencer les services de Redis, Google et Microsoft.
AWS a encore élargi son portefeuille DbaaS avec un nouveau service dédié à Redis.
Amazon MemoryDB for Redis est passé en disponibilité générale le 19 août. Il fournit un service de base de données en cloud compatible avec Redis, un SGBD NoSQL et in-memory open source (sous licence BSD-3).
Le développement de Redis a été mené par une entité commerciale connue sous le nom de Redis Labs jusqu’au 11 août, date à laquelle l’éditeur s’est rebaptisé simplement Redis.
Avec son service Amazon MemoryDB for Redis, AWS entend proposer à ses clients une base de données Redis entièrement managée qui viserait comme à l’accoutumée à offrir des performances élevées et une faible latence.
AWS a initialement mis MemoryDB à disposition dans les régions cloud US Est (Virginie du Nord), Europe (Irlande), Asie Pacifique (Mumbai) et Amérique du Sud (Sao Paulo). Il espère attirer les organisations qui emploient la version open source de ce middleware.
Selon Merv Adrian, analyste chez Gartner, AWS continue de remplir son portfolio avec des offres telles que MemoryDB parce que cette technologie est largement diffusée auprès de la communauté IT et que les cas d’usage impliquent des traitements fréquents et conséquents.
Habituellement, Redis est utilisée comme une couche de cache en mémoire pour des sessions Web, des workloads transactionnels et analytiques en temps réel. La base de données peut également servir dans une architecture de messagerie ou de streaming vidéo.
« Redis dispose d’une communauté importante et motivée qui connaît sa valeur et trouvera ce service attractif », anticipe Merv Adrian. « Comme pour d’autres entrées sur le marché, AWS va bousculer les choses, augmenter la visibilité et défier les éditeurs existants – mais ouvrira aussi plus d’opportunités pour eux. »
Redis ne s’inquiète pas de l’arrivée d’Amazon MemoryDB
AWS n’est pas le premier fournisseur de services cloud à proposer son propre service géré pour Redis. Microsoft a lancé le service Azure Cache for Redis, et Google a créé Memorystore for Redis, un service entièrement managé.
Mike Anand, directeur du marketing chez Redis, affirme que, depuis la création de l’entreprise il y a plus de dix ans, Redis est à la fois en concurrence et en partenariat avec AWS, ainsi qu’avec d’autres fournisseurs qui ont lancé leurs propres services open source basés sur le SGBD in-memory.
Mike AnandDirecteur marketing, Redis
« Cette réalité nous a poussés à offrir des fonctionnalités d’entreprise réellement différenciées dans nos offres commerciales, tout en conduisant le développement de Redis open source pour qu’elle soit reconnue comme une base de données généraliste sur le marché », déclare Mike Anand.
C’est la stratégie de l’éditeur qui mise depuis 2019 sur une approche Open Core, en modifiant la licence BSD pour éviter la reprise de fonctionnalités entreprise par ses concurrents, rendant plus difficiles la survenue de conflits comme ceux entre Elasticsearch et AWS.
Lors de l’événement virtuel RedisConf en avril, Redis a présenté une série de nouvelles fonctionnalités, comprenant le support des données en temps réel et de capacités de machine learning, dont le déploiement de feature stores.
Mike Anand rappelle que Redis offre de nombreuses possibilités aux clients pour acheter et déployer Redis Enterprise Cloud sur AWS. Il ajoute que l’éditeur propose des déploiements de sa technologie sur site et dans des architectures multicloud.
Des différences subtiles avec la version open source
Bien qu’AWS affirme que sa solution MemoryDB for Redis est compatible avec la base de données open source, il existe quelques différences subtiles.
Dans une FAQ sur MemoryDB, AWS indique que son service utilise une approche distincte de celle du projet open source Redis pour garantir la durabilité des données.
« La solution Open Source Redis comprend une fonction optionnelle d’append-only file (AOF), qui permet de conserver les données dans un fichier sur le disque d’un nœud primaire pour en assurer la durabilité. Cependant, comme AOF stocke les données localement sur les nœuds primaires dans une seule zone de disponibilité, il existe des risques de perte de données. De plus, en cas de défaillance d’un nœud, cela peut engendrer des problèmes de cohérence avec les répliques », écrivent les ingénieurs du géant du cloud.
À la place, AWS assure « exploiter un système de log transactionnel distribué pour stocker durablement les données ». Les données seraient stockées sur plusieurs zones de disponibilités afin de permettre des restaurations et des redémarrages plus rapides qu’avec la version BSD-3 de Redis. De la sorte, les données ne seraient pas perdues pendant un failover et les snapshots eux-mêmes disposent d’un SLA de 99, 999999999 %.
Mais les performances d’un service in-memory dépendent majoritairement des ressources allouées.
Le mode de facturation implique l’achat d’instances à la demande nommée db.r6g. L’appellation r6g indique que le service repose sur l’architecture Graviton2. La première instance, 16xlarge, est dotée de 2vCPU associé à 13 Go de RAM avec un port réseau de 10 Gb/s. La dernière propose 64 vCPU, 419 Go de RAM et supporte un débit réseau jusqu’à 25 Gb/s. Les tarifs vont de 0,309 dollar à 9,851 dollars par heure, ce à quoi il faut ajouter 20 centimes de dollar par Gigaoctet de données écrites, en sus du coût des snapshots fixé à 0,021 dollar par Go par mois.
Amazon MemoryDB pourrait prendre en charge 500 nœuds par clusters, permettant de « stocker » 100 To de données en mémoire. Selon la FAQ du fournisseur, cela correspond en réalité à 250 nœuds primaires associés à une réplique pour chacun d’entre eux à des fins de haute disponibilité. Ce scénario hypothétique dépasse les limites par défaut arboré par AWS de 300 nœuds par région et de 90 nœuds par cluster et par instance.
Comme à son habitude, AWS affiche des performances théoriques sans pour autant partager de benchmark, même maison. Selon la page Web principale, MemoryDB permettrait de traiter jusqu’à 13 billions de requêtes par jour et plus de 160 millions de requêtes par seconde. Dans la FAQ, les données semblent plus réalistes : « MemoryDB peut prendre en charge jusqu’à 470 000 requêtes de lecture et 100 000 requêtes d’écriture par seconde et jusqu’à 1 Go/s en lecture et 100 Mo/s en écriture ».