Fonctionnalités d’Amazon MemoryDB

Pourquoi utiliser MemoryDB ?

Amazon MemoryDB est un service de base de données en mémoire durable et compatible avec Valkey et Redis OSS qui offre des performances ultrarapides. Il est spécialement conçu pour les applications modernes avec des architectures de microservices.

MemoryDB est compatible avec Valkey et Redis OSS, ce qui permet aux clients de créer rapidement des applications en utilisant les mêmes structures de données, API et commandes flexibles et conviviales Valkey et Redis OSS qu’ils utilisent déjà aujourd’hui. Avec MemoryDB, toutes vos données sont stockées en mémoire, ce qui vous permet d’obtenir une latence de lecture de l’ordre de la microseconde et une latence d’écriture de l’ordre de quelques millisecondes, ainsi qu’un débit élevé. MemoryDB stocke également les données de manière durable dans plusieurs zones de disponibilité (AZ) à l’aide d’un journal transactionnel distribué pour permettre un basculement rapide, la récupération de la base de données et le redémarrage des nœuds. En offrant à la fois des performances en mémoire et une durabilité multi-AZ, MemoryDB peut être utilisé comme une base de données primaire haute performance pour vos applications de microservices, éliminant ainsi la nécessité de gérer séparément un cache et une base de données durable.

Compatibilité entre Valkey et Redis OSS

Valkey et Redis OSS sont des magasins de données clé/valeur en mémoire open source rapides. Les développeurs utilisent Valkey et Redis OSS pour atteindre des temps de réponse inférieurs à la milliseconde, permettant des millions de requêtes par seconde pour les applications en temps réel dans des secteurs comme les jeux, la publicité, les services financiers, les soins de santé et l’IoT. 

Valkey et Redis OSS proposent des API, des commandes et des structures de données flexibles, telles que des diffusions, des ensembles et des listes, afin de concevoir des applications agiles et polyvalentes. MemoryDB préserve la compatibilité avec Valkey et Redis OSS et prend en charge le même ensemble de types de données, de paramètres et de commandes Valkey et Redis OSS que vous connaissez. Cela signifie que le code, les applications, les pilotes et les outils que vous utilisez déjà avec Valkey et Redis OSS peuvent être utilisés avec MemoryDB pour concevoir rapidement des applications.

Performances ultra rapides

MemoryDB stocke l'ensemble de votre jeu de données en mémoire, afin de fournir une latence de lecture de l'ordre de la microseconde, une latence d'écriture de l'ordre de quelques millisecondes et un débit élevé. Le service peut traiter plus de 13 milliards de milliards de demandes par jour et prend en charge des pics de 160 millions de demandes par seconde. Les développeurs qui travaillent avec des architectures de microservices ont besoin de performances ultra élevées, car ces applications peuvent impliquer des interactions avec un grand nombre de composants de services par interaction utilisateur ou appel d’API. Grâce à MemoryDB, vous obtenez une latence extrêmement faible pour offrir des performances en temps réel aux utilisateurs finaux.

MemoryDB inclut un multiplexage E/S amélioré, qui permet d’améliorer considérablement le débit et la latence à grande échelle. Le multiplexage E/S amélioré est idéal pour les charges de travail limitées par le débit avec plusieurs connexions client, et ses avantages se mettent à l'échelle au niveau de la simultanéité des charges de travail. À titre d’exemple, en utilisant le nœud r6g.4xlarge et en exécutant 5 200 clients simultanés, vous pouvez obtenir jusqu’à 46 % d’augmentation du débit (opérations de lecture et d’écriture par seconde) et jusqu’à 21 % de réduction de la latence P99, par rapport à la version 6 de MemoryDB compatible avec OSS Redis. Pour ces types de charges de travail, le traitement des E/S réseau d'un nœud peut devenir un facteur limitant la capacité de mise à l'échelle.

Grâce au multiplexage E/S amélioré, chaque thread d’E/S réseau dédié achemine les commandes de plusieurs clients vers les moteurs Valkey et Redis OSS, en tirant parti de la capacité de Valkey et de Redis OSS à traiter efficacement les commandes par lots.

Durabilité multi-AZ

En plus de stocker l’intégralité de votre jeu de données en mémoire, MemoryDB utilise un journal transactionnel distribué pour offrir durabilité, cohérence et récupération des données. MemoryDB stocke les données dans plusieurs zones de disponibilité, afin que vous puissiez atteindre une récupération rapide des données et redémarrer. Vous pouvez utiliser MemoryDB comme service de base de données primaire unique pour vos charges de travail exigeant une faible latence et un débit élevé, plutôt que de gérer de manière séparée un cache pour la vitesse et une base de données relationnelle ou non relationnelle supplémentaire pour la fiabilité.

Capacité de mise à l’échelle

Vous pouvez mettre à l’échelle votre cluster MemoryDB afin de répondre aux exigences changeantes des applications : de manière horizontale, en ajoutant ou en supprimant des nœuds, ou de manière verticale, en passant à des types de nœuds plus grands ou plus petits. MemoryDB prend en charge la mise à l'échelle en écriture avec partition et la mise à l'échelle en lecture par l'ajout de réplicas. Votre cluster reste en ligne et continue à prendre en charge les opérations de lecture et d'écriture durant les opérations de redimensionnement.

Entièrement géré

Il est facile de démarrer avec MemoryDB. Il vous suffit de lancer un nouveau cluster MemoryDB à l'aide de la console de gestion AWS, ou d'utiliser l'AWS CLI ou un kit SDK. Les instances de base de données MemoryDB sont préconfigurées avec un ensemble de paramètres et de réglages appropriés pour le type de nœud sélectionné. Vous pouvez lancer un cluster et connecter votre application en quelques minutes, sans autre configuration.

MemoryDB fournit des métriques Amazon CloudWatch pour vos instances de bases de données. La console vous permet de visualiser plus de 35 métriques opérationnelles clés concernant votre cluster, y compris le calcul, la mémoire, le stockage, le débit, les connexions actives et plus encore.

MemoryDB met automatiquement vos clusters à jour et vous pouvez facilement mettre vos clusters à niveau vers les dernières versions de Valkey et de Redis OSS.

Sécurité

MemoryDB s’exécute dans Amazon Virtual Private Cloud (Amazon VPC), ce qui vous permet d’isoler votre base de données au sein de votre propre réseau virtuel et d’accéder à votre infrastructure informatique sur site à l’aide de connexions VPN IPsec chiffrées standard. De plus, la configuration VPC dans MemoryDB vous permet de configurer les paramètres de pare-feu et de contrôler l’accès réseau à vos instances de bases de données.

Grâce à MemoryDB, les données au repos sont chiffrées à l’aide de clés que vous créez et contrôlez via AWS Key Management Service (AWS KMS). Les clusters créés avec des types de nœuds AWS Graviton2 incluent le chiffrement permanent DRAM 256 bits. MemoryDB prend en charge le chiffrement en transit à l’aide du protocole TLS (Transport Layer Security).

À l’aide des fonctionnalités AWS Identity and Access Management (IAM) intégrées à MemoryDB, vous pouvez contrôler les actions que vos utilisateurs et groupes IAM peuvent réaliser au niveau des ressources MemoryDB. Par exemple, vous pouvez configurer vos règles IAM pour vous assurer que certains utilisateurs bénéficient uniquement d'un accès en lecture seule, tandis qu'un administrateur peut créer, modifier et supprimer des ressources. Pour plus d’informations sur les autorisations au niveau des API, consultez la page relative à l’utilisation des stratégies IAM pour MemoryDB.

MemoryDB utilise des listes de contrôle d’accès (ACL) Redis OSS afin de contrôler l’authentification et l’autorisation dans votre cluster. Les listes de contrôle d’accès (ACL) vous permettent de définir plusieurs autorisations pour plusieurs utilisateurs au sein du même cluster.

Intégration à Kubernetes

AWS Controllers for Kubernetes (ACK) pour MemoryDB vous permet de définir et d’utiliser les ressources MemoryDB directement depuis votre cluster Kubernetes. Ainsi, vous tirez parti de MemoryDB pour subvenir aux besoins de vos applications Kubernetes sans avoir à définir les ressources MemoryDB à l'extérieur du cluster, ou exécuter et gérer les fonctions des bases de données en mémoire dans le cluster. Vous pouvez télécharger l’image de conteneur MemoryDB ACK depuis Amazon Elastic Container Registry (Amazon ECR) et consulter la documentation pour obtenir les instructions d’installation. Vous pouvez également consulter le blog pour des informations plus détaillées.

Remarque : ACK pour MemoryDB est désormais généralement disponible. Faites-nous parvenir vos commentaires sur notre page GitHub.

 

Prise en charge JSON

MemoryDB fournit une prise en charge native des documents JSON (JavaScript Object Notation) en plus des structures de données incluses dans OSS Redis, sans frais supplémentaires. Vous pouvez simplifier le développement des applications à l'aide des commandes intégrées conçues et optimisées pour les documents JSON. MemoryDB prend en charge les mises à jour de documents JSON partielles et permet d'effectuer des recherches et de les filtrer de manière efficace à l'aide du langage de requête JSONPath. La prise en charge JSON est disponible avec Valkey et Redis OSS 6.2 et les versions ultérieures. Pour en savoir plus, veuillez consulter la documentation MemoryDB.

Optimisation des coûts

MemoryDB propose la hiérarchisation des données comme moyen moins coûteux de mettre à l’échelle vos clusters jusqu’à des centaines de téraoctets de capacité. La hiérarchisation des données offre une option de rapport qualité-prix pour MemoryDB en utilisant des disques SSD (Solid State Drive) moins coûteux dans chaque nœud de cluster, en plus du stockage des données en mémoire. Elle est idéale pour les charges de travail qui accèdent régulièrement à 20 % de leur jeu de données et pour les applications qui peuvent tolérer une latence supplémentaire lors de l’accès aux données sur SSD.

Lorsque vous utilisez les clusters avec hiérarchisation des données, MemoryDB permet de déplacer automatiquement et en toute fluidité les moindres éléments utilisés récemment de la mémoire vers les disques SSD NVMe attachés localement. Cela se produit quand la capacité de mémoire disponible est épuisée. Lorsque vous accédez à un élément stocké sur SSD, MemoryDB le déplace à nouveau vers la mémoire avant de répondre à la demande. La hiérarchisation des données MemoryDB est disponible sur les nœuds R6gd basés sur Graviton2. Les nœuds R6gd ont environ 5 fois plus de capacité totale (mémoire + SSD) et peuvent vous aider à réaliser plus de 60 % d'économies sur les coûts de stockage lorsqu'ils fonctionnent à l'utilisation maximale par rapport aux nœuds R6g (mémoire uniquement). En supposant des valeurs de chaîne de 500 octets, la latence supplémentaire s'élève à 450 µs en moyenne pour les demandes de lecture de données stockées sur SSD par rapport aux données en mémoire.

MemoryDB propose des nœuds réservés qui vous permettent d'économiser jusqu'à 55 % par rapport aux prix des nœuds à la demande en échange d'un engagement d'utilisation sur une période d'un ou trois ans. Les nœuds réservés sont complémentaires des nœuds à la demande de MemoryDB et offrent aux entreprises une flexibilité qui permet de réduire les coûts. MemoryDB propose trois options de paiement pour les nœuds réservés (pas d’avance, avance partielle et avance totale) qui vous permettent d’équilibrer le montant que vous payez à l’avance avec votre prix horaire effectif.

Les nœuds réservés MemoryDB offrent une certaine flexibilité en termes de taille au sein d'une famille de nœuds et d'une région AWS. Cela signifie que le tarif réduit pour les nœuds réservés sera appliqué automatiquement à l’utilisation de toutes les tailles dans la même famille de nœuds. La capacité de flexibilité de la taille réduit le temps que vous devez passer à gérer vos nœuds réservés et, comme vous n'êtes plus lié à une taille spécifique de nœud de base de données, vous pouvez tirer le meilleur parti de votre remise même si votre base de données a besoin de mises à jour.