Guide d'introduction à AWS DocumentDB
Face à un nombre croissant d'utilisateurs rencontrant des difficultés à déployer MongoDB à grande échelle, Amazon a introduit DocumentDB comme solution alternative.
DocumentDB offre une mise à l'échelle automatisée des données, permettant de passer facilement de 10 Go à 64 To. Examinons ensemble comment cette prouesse est réalisée.
Qu'est-ce que DocumentDB ?
Amazon DocumentDB est une version évolutive basée sur l'ancienne version 3.6 de MongoDB. Amazon a reconnu le besoin d'une solution adaptée aux grands volumes de données et aux charges de travail critiques. Il est crucial de noter que DocumentDB n'utilise pas le code source de MongoDB ; il s'agit donc d'une implémentation propriétaire d'Amazon.
À l'instar de MongoDB, DocumentDB est un moteur de stockage de documents. Cette base de données NoSQL d'AWS indexe les structures de données au format JSON. En résumé, Amazon DocumentDB est une solution de dépôt MongoDB distincte, propre à AWS.
Avant d'explorer plus en profondeur Amazon DocumentDB, il est essentiel de comprendre ce qu'est une base de données NoSQL et pourquoi cette technologie est si en vogue actuellement.
Qu'est-ce qu'une base de données NoSQL ?
Contrairement aux bases de données relationnelles, les bases de données NoSQL n'utilisent pas de tables liées entre elles. Elles se concentrent sur le stockage de documents et de graphes. Elles excellent dans la gestion de gros volumes de données et de nombreuses requêtes simultanées.
Les développeurs adoptent les bases de données NoSQL avant tout pour leurs performances, et non pour le stockage. Les données NoSQL sont semi-structurées et polymorphes, capables d'accueillir facilement d'importantes quantités de données non structurées.
Les bases de données NoSQL se distinguent par leur cohérence accrue par rapport aux bases de données relationnelles. Elles sont également plus simples à mettre à l'échelle et moins gourmandes en ressources. Contrairement aux bases de données SQL, les bases de données NoSQL peuvent être empilées. Enfin, leur absence de schéma permet une grande variété de structures de données.
De plus en plus de développeurs privilégient l'hébergement de programmes et de données sur des clouds publics. La mise à l'échelle horizontale et la géolocalisation intelligente des données sont devenues des impératifs, des fonctionnalités que l'on retrouve chez MongoDB.
Les entreprises du monde entier exploitent les bases de données NoSQL dans divers domaines, notamment pour les données financières, de santé, et le stockage des données IoT (comme les informations issues d'un bac à litière connecté pour chat).
Qu'est-ce qui a motivé la création de DocumentDB ?
Amazon a constaté que de nombreux utilisateurs peinaient à faire fonctionner MongoDB à grande échelle. Estimant qu'aucune des solutions existantes, y compris MongoDB Atlas, ne répondait de manière adéquate aux besoins de ses clients, Amazon a développé sa propre solution.
Par exemple, DocumentDB permet d'étendre automatiquement une base de données de 10 Go à 64 To, sans intervention de l'utilisateur. Auparavant, une telle mise à l'échelle était complexe.
La solution d'Amazon intègre également une tolérance aux pannes. L'espace de stockage est automatiquement divisé en segments de 10 Go, répartis sur plusieurs disques. Chaque segment est répliqué six fois sur trois zones de disponibilité pour assurer la sauvegarde.
Jusqu'à deux copies de données peuvent être perdues sans impacter la disponibilité en écriture, et trois copies peuvent être perdues sans affecter la disponibilité en lecture. DocumentDB propose également une capacité de stockage auto-régénératrice. Les blocs de données et les disques sont contrôlés et corrigés automatiquement en cas d'erreur.
L'hébergement étant géré par Amazon, la conformité aux normes est assurée. DocumentDB respecte plusieurs standards, tels que PCI DSS et ISO 9001, ainsi que SOC 1, SOC 2, SOC 3 et HIPAA.

Avantages de DocumentDB
#1. Compatibilité avec MongoDB
Amazon DocumentDB est compatible avec les pilotes MongoDB 3.6 et 4.0. Les utilisateurs peuvent ainsi continuer à utiliser leurs applications, pilotes et outils existants avec DocumentDB.
En simulant un serveur MongoDB grâce aux API open source Apache 2.0 de MongoDB 3.6 et 4.0, Amazon DocumentDB offre les performances, l'évolutivité et la disponibilité requises par les applications critiques MongoDB.
#2. Surveillance
Amazon DocumentDB propose des outils d'analyse CloudWatch pour les serveurs de base de données cloud. L'AWS Management Console permet de surveiller les performances d'un cluster, en termes de calcul, de mémoire, de débit des requêtes, du nombre d'opérations MongoDB et de connexions actives.
#3. Latence
Amazon DocumentDB gère efficacement les documents JSON, de multiples types de données et l'indexation rapide. Une architecture en mémoire permet au service d'évaluer rapidement les requêtes sur de volumineux documents.
#4. Contrôle d'accès
Amazon DocumentDB prend en charge le contrôle d'accès basé sur les rôles (RBAC), avec des rôles intégrés et définis par l'utilisateur. Le RBAC permet de limiter les privilèges des utilisateurs et d'appliquer le principe du moindre privilège.
Dans le cadre d'AWS Identity and Access Management (IAM), il est possible de gérer les actions que les utilisateurs et groupes IAM peuvent effectuer sur les ressources Amazon DocumentDB (clusters, instances, instantanés et groupes de paramètres). Le balisage des ressources et le contrôle des accès utilisateurs et groupes sont également possibles.
#5. Chiffrement
Amazon DocumentDB permet de chiffrer les bases de données via AWS Key Management Service (KMS).
Les données du stockage sous-jacent sont protégées, tout comme les sauvegardes automatisées, les instantanés et les répliques au sein d'un cluster, grâce au chiffrement Amazon DocumentDB. Les connexions entre le client et Amazon DocumentDB sont automatiquement chiffrées via TLS.
#6. Certifications de conformité
Amazon DocumentDB a été conçu selon les normes de sécurité les plus strictes pour répondre aux exigences réglementaires et de conformité. Le service est conforme aux normes PCI DSS, ISO 9001, 27001, 27017 et 27018, SOC 1, 2 et 3, ainsi qu'à HIPAA.
#7. Clusters mondiaux à haute disponibilité
Les clusters mondiaux Amazon DocumentDB permettent une lecture globale et la reprise après sinistre. Les données sont répliquées sur jusqu'à cinq sites AWS avec un impact minimal sur les performances.
#8. Déploiements multi-AZ avec répliques
Amazon DocumentDB prend en charge jusqu'à 15 répliques dans trois zones de disponibilité (AZ). En cas de défaillance d'une instance, Amazon DocumentDB tente automatiquement de la remplacer.
#9. Stockage tolérant aux pannes et auto-réparateur
Le volume de stockage est répliqué six fois sur trois AZ. Amazon DocumentDB offre ainsi une grande tolérance aux pannes, permettant de supporter la perte de deux copies de données sans impacter la disponibilité en écriture. Le stockage d'Amazon DocumentDB est également auto-réparateur, remplaçant automatiquement les blocs de données et les disques défaillants.
Questions fréquentes sur AWS DocumentDB
AWS DocumentDB est-il identique à MongoDB ?
Amazon DocumentDB, avec sa compatibilité MongoDB, est un service de base de données de documents rapide, évolutif et entièrement géré. Il est adapté aux charges de travail MongoDB.
DocumentDB permet de stocker des données JSON de manière simple, avec des fonctionnalités de recherche et d'indexation performantes.
Le service AWS Database Migration Service (DMS) est gratuit pendant six mois, pour faciliter la migration de bases de données non relationnelles sur site ou d'Amazon Elastic Cloud (EC2) MongoDB vers DMS, avec un temps d'arrêt minimal.
Comment fonctionne Amazon DocumentDB ?
Amazon DocumentDB interagit avec les API open source Apache 2.0 de MongoDB 3.6 et 4.0, agissant comme une base de données de documents. L'utilisation des pilotes, applications et outils MongoDB existants est ainsi possible, avec peu ou pas de modifications.
Comment Amazon DocumentDB est-il mis à l'échelle ?
Amazon DocumentDB est une base de données conçue pour le web, capable de passer de 10 Go à 64 To par incréments de 10 Go. La capacité de stockage et de calcul peut être augmentée verticalement et horizontalement (pour améliorer le débit de lecture), en ajoutant des instances de réplica (jusqu'à 15) au cluster.
En termes de conception, quelles sont les caractéristiques principales d'Amazon DocumentDB ?
Amazon DocumentDB a été conçu de A à Z pour le cloud, optimisant la mise à l'échelle des charges de travail JSON.
La séparation du stockage et du traitement est une caractéristique importante de DocumentDB, permettant à chaque composant d'évoluer indépendamment. DocumentDB s'appuie sur un système de stockage distribué, tolérant aux pannes et auto-réparateur. Un cluster peut stocker jusqu'à 64 To de données sans nécessiter de partitionnement.
Conclusion
DocumentDB est le seul service géré et compatible avec MongoDB d'Amazon. Selon Amazon, DocumentDB offre un débit deux fois supérieur aux solutions MongoDB disponibles actuellement. L'alternative serait de gérer les bases de données sur EC2/EBS, ce qui est plus complexe.
Si vous avez besoin de ces garanties, vous pouvez choisir DocumentDB ou rester avec MongoDB. Un autre avantage de DocumentDB est de centraliser l'ensemble de vos services sur AWS.