Tout ce que vous ne saviez pas sur Amazon Aurora



Les systèmes de bases de données traditionnels sont souvent confrontés à des limitations en termes d’efficacité, de disponibilité et de capacité d’adaptation. Amazon Aurora se présente comme une réponse à ces défis.

Les bases de données sont essentielles pour faire fonctionner les applications qui soutiennent l’activité commerciale. Elles doivent être plus robustes, plus fiables et plus rapides pour fournir des services améliorés. Amazon Web Services permet aux entreprises de gérer facilement leurs données et d’optimiser l’expérience client.

Le service AWS Aurora d’Amazon illustre parfaitement cette approche. Il utilise des clusters de volume pour administrer ses données et les allouer à des fins de sauvegarde et de récupération en cas d’incident.

Qu’est-ce qu’Amazon Aurora ?

Amazon Aurora, une base de données conçue pour le cloud, est pleinement compatible avec les systèmes Open Source MySQL et PostgreSQL. Elle supporte toutes les fonctionnalités de MySQL open source, et assure une compatibilité directe avec les applications qui fonctionnent sur ces bases de données.

Aurora a été développée pour les clients qui exigent un service de base de données entièrement géré, tout en bénéficiant de la rentabilité et de la simplicité des bases de données open source, sans compromettre les performances des bases de données commerciales.

Aurora offre des performances jusqu’à cinq fois supérieures à celles de MySQL traditionnel et trois fois supérieures à PostgreSQL. Amazon RDS prend en charge des tâches telles que le provisionnement, la sauvegarde et la récupération. Il n’y a pas de frais initiaux et vous ne payez que des frais mensuels.

La particularité d’Aurora réside dans son équilibre entre excellence opérationnelle et fonctionnalités d’entreprise, le tout à un coût bien inférieur à celui des bases de données commerciales.

Aurora garantit des niveaux inégalés de performance, de disponibilité, de sécurité et de fiabilité à l’échelle mondiale. Il s’agit du service qui connaît la croissance la plus rapide au sein du portefeuille d’AWS depuis son lancement en 2014.

À quoi sert Amazon Aurora ?

La croissance remarquable d’Aurora a été soutenue par un intérêt marqué de nombreux secteurs. Au cours des douze derniers mois, nous avons observé un fort engouement dans les services financiers, les entreprises de logiciels et internet, ainsi que dans les secteurs du divertissement, des jeux et de la vente au détail.

Les clients migrent vers Aurora MySQL et Aurora PostgreSQL pour consolider leurs bases de données MySQL et PostgreSQL. On constate également une tendance à la migration de bases de données anciennes comme Oracle ou Microsoft SQL Server vers Aurora PostgreSQL.

Ces clients cherchent à s’affranchir des coûts de licences élevés et des contraintes imposées par les bases de données traditionnelles. Les entreprises en pleine croissance souhaitent évoluer rapidement, de manière transparente à travers les différentes régions, tout en bénéficiant d’une intégration aux services AWS.

Avantages d’Amazon Aurora

Voici les avantages d’utiliser Amazon Aurora :

Évolutivité

Vous avez la possibilité d’activer la mise à l’échelle automatique. Cette fonction augmente la capacité de stockage lorsque vos besoins augmentent, et réduit la taille de votre base de données si l’espace de stockage diminue.

Rentabilité

Vous ne payez que pour la puissance de calcul et l’espace de stockage que vous utilisez. Il n’y a pas de coûts initiaux ni de frais cachés. Le système de paiement mensuel est simple et transparent.

Sécurité

Amazon VPC vous permet d’isoler le réseau sur lequel fonctionne votre base de données.

Vous pouvez utiliser AWS Key Management Service pour créer des clés de chiffrement et ainsi protéger vos données.

Haute disponibilité et durabilité

Il est possible de créer des répliques de votre instance Aurora dans de nombreuses zones de disponibilité.

Il s’agit d’une base de données globale qui peut être aisément déployée dans plusieurs régions AWS, ce qui permet de réduire la latence locale en lecture et en écriture.

Prise en charge de la migration

Pour migrer votre base de données locale vers Aurora, vous pouvez utiliser les commandes pg-dump ou MySQL dump.

Entièrement géré

Aurora est très simple à utiliser. Il est facile de configurer une instance en utilisant la console AWS RDS. Aurora propose une surveillance avec Amazon Cloudwatch sans frais supplémentaires.

Vous n’avez pas à vous préoccuper du provisionnement, de la mise à jour ou de la montée de version. Amazon a un contrôle total sur tous les aspects de votre logiciel et effectue les correctifs nécessaires.

Meilleures fonctionnalités d’Amazon Aurora

Voici les principales caractéristiques d’Amazon Aurora :

Évolutivité : c’est l’une des fonctionnalités les plus appréciables d’Amazon Aurora. La taille de la base de données s’adapte automatiquement aux besoins de stockage. Le volume peut croître par incréments de 10 Go, jusqu’à un maximum de 128 To, permettant ainsi un stockage évolutif.

Débit élevé : des tests de référence SysBench ont révélé une amélioration du débit de l’ordre de cinq fois. Amazon Aurora combine diverses techniques logicielles et matérielles afin d’optimiser la gestion de la mémoire, de la puissance de calcul et du réseau. Pour améliorer la cohérence des performances, les opérations d’entrée et de sortie utilisent des techniques de systèmes distribués telles que les quorums.

Surveillance et réparation des instances : Amazon RDS surveille en continu l’état et la performance de la base de données Amazon Aurora ainsi que des instances EC2 sous-jacentes. En cas de défaillance, Amazon RDS redémarre automatiquement la base de données et tous les processus associés.

Chiffrement : Amazon Aurora offre un niveau de sécurité élevé en vous permettant de chiffrer la base de données à l’aide de clés que vous contrôlez et créez via AWS Key Management Service. Amazon Aurora utilise le chiffrement SSL pour protéger les données durant leur transfert.

Facilité d’utilisation : Amazon Aurora est très simple à utiliser. La console de gestion Amazon RDS permet de créer une nouvelle instance de base de données Amazon Aurora. Cette opération peut également être réalisée avec un seul appel d’API. Les instances DB Amazon Aurora sont préconfigurées avec les paramètres et configurations appropriés pour chaque type d’instance DB.

Rentabilité : vous ne payez que ce que vous utilisez. Il n’y a pas de frais initiaux ni de coûts cachés. Le système de paiement mensuel est clair et simple.

Prise en charge de la migration : pour migrer votre base de données locale vers Aurora, vous pouvez utiliser les commandes pg-dump ou MySQL dump.

Aurora est entièrement géré : vous pouvez l’utiliser immédiatement. Il vous suffit de créer une instance via la console AWS RDS ou d’appeler une API depuis votre code. Vous n’avez pas à vous soucier du provisionnement, de la mise à jour ou de la montée de version.

Architecture Amazon Aurora

L’architecture de base d’Aurora repose sur un SGBD traditionnel. Il réutilise la plupart des composants du SGBD, tels que le gestionnaire de transactions, le moteur d’exécution de requêtes et le gestionnaire de récupération.

Amazon Aurora est un nouveau SGBD qui dépasse les limites des systèmes traditionnels. Il apporte de nombreuses améliorations aux SGBD existants pour accroître leur disponibilité, leur fiabilité et leur capacité d’adaptation.

Ces changements comprennent :

  • L’utilisation d’une configuration de réplique principale
  • La possibilité de répliquer le stockage de données à distance
  • L’enregistrement des journaux de modifications uniquement sur le disque distant

L’architecture d’Amazon Aurora permet de faire évoluer les couches de stockage des bases de données relationnelles traditionnelles.

L’instance de base de données principale d’Amazon Aurora transfère le fichier de journalisation vers sa couche de stockage pour traitement. Les journaux sont traités par la couche de stockage, qui crée et stocke de nouvelles versions de page et sauvegarde le tout sur S3.

Crédit d’image : AWS

Lors d’une montée en charge, Amazon Aurora n’a besoin que de créer des instances supplémentaires de moteur de base de données et de les connecter à la couche de stockage existante. Cela évite les goulots d’étranglement dans la réplication des données en déléguant les tâches de traitement parallèle à la couche de stockage.

Cette approche permet la création de nombreuses nouvelles fonctionnalités, telles que :

  • Récupération instantanée après un crash : plus besoin de relire les journaux depuis le dernier point de contrôle
  • Basculement rapide : plus besoin de se préoccuper de la base de données répliquée possédant l’enregistrement de journalisation le plus récent. La couche de stockage gère cette tâche.
  • Retour en arrière : la couche de stockage ayant diffusé des journaux redo, elle peut « rembobiner » les données vers des points spécifiques dans le passé sans avoir à restaurer un point de contrôle depuis la sauvegarde S3

Configuration d’Amazon Aurora

Voici les étapes à suivre pour configurer Amazon Aurora avec succès.

#1. Connectez-vous à la console de gestion AWS et ouvrez RDS.

#2. Cliquez sur Créer une base de données.

#3. Choisissez l’option Moteur « Amazon Aurora ».

#4. Sélectionnez la version d’Aurora MySQL dont vous avez besoin.

#5. Créez un identifiant de cluster de base de données et configurez le nom d’utilisateur et le mot de passe dans les paramètres d’informations d’identification.

#6. Choisissez la configuration de l’instance dans le menu déroulant et sélectionnez l’option pour créer ou non un réplica.

#7. Sélectionnez les options de connectivité comme indiqué ci-dessous.

#8. Choisissez un groupe de sécurité VPC existant ou créez-en un nouveau.

#9. Activez la surveillance améliorée, sélectionnez la granularité et l’option de rôle de surveillance.

#10. Enfin, cliquez sur Créer une base de données.

#11. Vous avez créé votre base de données Amazon Aurora avec succès.

Modèle de tarification : Amazon Aurora

Les ACU sans serveur Aurora v2 coûtent 0,12 $ de l’heure, soit le double du prix des ACU Aurora provisionnées. Ce qui se traduit par :

  • Un coût de fonctionnement minimum actuel de : 4 ACU, soit 0,48 $ de l’heure ou 350 $ par mois
  • Pour les charges de travail qui déclenchent de manière anormale la fonction de mise à l’échelle automatique, il y a une augmentation minimale de la mise à l’échelle de 30 secondes, soit 0,0005 $ pour une demi-UCA.

Le coût mensuel pour Aurora Serverless V2 est de 350 $. Chaque événement de mise à l’échelle automatique sera facturé au minimum 0,0005 USD. Bien que la capacité équivalente d’Aurora soit de 175 $ par mois, celle-ci ne disposerait pas de la mise à l’échelle automatique sans serveur réactive.

Cas d’utilisation : Amazon Aurora

#1. Logiciel en tant que service (SaaS)

Aurora utilise des architectures multi-locataires qui offrent une flexibilité en matière de stockage et de mise à l’échelle des instances. En conséquence, Amazon Aurora permet aux entreprises de se concentrer sur le développement d’applications de haute qualité sans se préoccuper de la base de données.

#2. Secteur des jeux

AWS Aurora fonctionne de la même manière qu’une base de données relationnelle. Elle garantit un débit élevé, une capacité de stockage importante, une disponibilité et une haute disponibilité.

#3. Applications d’entreprise

Amazon Aurora est compatible avec toute entreprise qui utilise déjà une base de données relationnelle. Aurora est rentable, car elle réduit le prix jusqu’à 90 % par rapport à d’autres solutions.

Compatibilité d’Aurora avec MySQL et PostgreSQL

Amazon Aurora est conçu pour offrir des performances élevées, une disponibilité globale et une compatibilité complète avec MySQL/PostgreSQL. Les outils standard facilitent la migration des bases de données MySQL et PostgreSQL depuis Aurora. Il est également possible d’exécuter des applications SQL Server héritées avec Babelfish pour Aurora PostgreSQL, ce qui nécessite un minimum de modifications de code.

Amazon Aurora fonctionne avec les outils d’importation/exportation PostgreSQL standard, tels que pg_dump ou pg_restore. Vous pouvez également créer une nouvelle table Amazon Aurora en utilisant un instantané de base de données Amazon RDS ou MySQL.

La création d’instantanés de base de données est généralement rapide, mais la durée dépend de la quantité et du format des données migrées.

Amazon Aurora contre Amazon RDS

Conception architecturale

L’architecture de RDS est similaire en ce qu’elle vous permet d’installer manuellement un moteur de base de données sur Amazon EC2, mais délègue le provisionnement et la maintenance à AWS. RDS offre de nombreuses fonctionnalités telles que le basculement automatique, les sauvegardes, etc. RDS utilise des volumes Amazon EBS pour stocker les données de journal et de base de données.

Le système de stockage de base de données Aurora est fiable et tolérant aux pannes. Le stockage de la base de données pour Aurora est indépendant des instances. Aurora stocke les données en six copies, chacune comportant des blocs de 10 Go. Ces copies sont distribuées dans trois zones de disponibilité. Même si vous n’avez qu’une seule instance Aurora, il y aura toujours six copies de vos données.

Performance

RDS utilise un stockage SSD pour améliorer les performances de débit d’E/S. Deux options de stockage basées sur SSD sont proposées. L’une est conçue pour les applications OLTP hautes performances, tandis que l’autre est destinée à un usage polyvalent et économique.

Aurora offre des performances deux fois supérieures à celles de PostgreSQL et cinq fois supérieures à celles de MySQL standard sur un matériel comparable. Les performances d’Aurora sont constamment plus élevées et plus cohérentes.

Prise en charge du moteur de base de données

RDS est compatible avec MySQL, PostgreSQL et MariaDB, ainsi qu’avec Microsoft SQL Server et Oracle.

Aurora est compatible avec PostgreSQL et MySQL. Cela signifie que vous pouvez utiliser vos outils et applications de base de données existants sur PostgreSQL et MySQL sans effectuer de modifications.

Durabilité et disponibilité

Aurora utilise un modèle de stockage unique qui permet des sauvegardes et des restaurations continues avec un RPO (objectif de point de récupération) très faible. Cela la rend plus fiable et durable que RDS.

Les données sont conçues pour être durables dans Aurora. Il y a toujours plusieurs copies de vos données. Chaque cluster Aurora comporte six nœuds de stockage répartis sur trois zones de disponibilité. Même si vous n’avez qu’un seul nœud de calcul, il existe plusieurs copies de vos données.

Résilience

Grâce à sa conception architecturale, Aurora est plus résiliente que RDS. Elle se remet rapidement des défaillances. Si un nœud de calcul tombe en panne, Aurora peut récupérer rapidement.

Stockage

La mise à l’échelle automatique du stockage RDS permet d’étendre la capacité de stockage jusqu’à 64 To (à l’exception des 16 To pour SQL Server) afin de s’adapter aux charges de travail croissantes de la base de données. Cette opération n’entraîne aucun temps d’arrêt.

Aurora augmente automatiquement le stockage en incréments d’un minimum de 10 Go jusqu’à un maximum de 128 To. L’extension du stockage se fait par incréments de 10 Go sans impact sur les performances de la base de données.

Évolutivité

Mise à l’échelle verticale : RDS et Aurora permettent tous deux de faire évoluer la mémoire et les ressources de calcul jusqu’à un maximum de 244 Gio de RAM et 32 processeurs virtuels. Il est possible d’adapter les opérations en quelques secondes.

Aurora Auto Scaling Dynamic : Aurora Auto Scaling ajuste dynamiquement le nombre de réplicas Aurora disponibles pour un cluster de base de données Aurora en utilisant la réplication à maître unique. RDS ne prend PAS en charge ce type de mise à l’échelle automatique.

Réplication

RDS peut être utilisé pour fournir jusqu’à cinq réplicas. Le processus de réplication est également plus lent qu’avec Aurora.

Aurora peut provisionner jusqu’à 15 réplicas et la réplication ne prend que quelques secondes. Aurora évolue plus rapidement car elle peut ajouter rapidement de nouveaux réplicas en lecture.

Basculement

Dans RDS, le basculement vers un réplica de lecture se fait manuellement. Cela peut entraîner une perte de données. L’option Multi-AZ (instance de secours) peut être utilisée pour automatiser le basculement et éviter la perte de données.

Pour éviter la perte de données, Aurora utilise le basculement pour lire automatiquement les réplicas. Aurora a un temps de basculement plus rapide.

Points de terminaison de cluster

RDS a un point de terminaison de cluster que vous pouvez utiliser pour exécuter vos requêtes d’écriture. Il s’agit du pointeur DNS vers votre instance de base de données principale actuelle. RDS achemine le point de terminaison vers le nouveau maître via un simple changement DNS lors d’un basculement.

Le point de terminaison du cluster est toujours disponible dans Aurora pour écrire des requêtes. Ce point de terminaison fait également office d’équilibreur de charge pour vos réplicas en lecture. Il peut être utilisé pour répondre à vos requêtes de lecture.

Sauvegarde

RDS crée et enregistre automatiquement des sauvegardes de vos instances de base de données pendant la fenêtre de sauvegarde de votre instance de base de données. RDS prend un instantané de votre instance de base de données en tant que volume de stockage, en sauvegardant toutes les bases de données et pas seulement celles que vous sélectionnez.

Aurora sauvegarde automatiquement les volumes de cluster et continue de restaurer les données pendant toute la période de conservation des sauvegardes. Les sauvegardes Aurora sont continues et incrémentielles, ce qui vous permet de restaurer rapidement n’importe quel point pendant la période de conservation des sauvegardes.

Voici un tableau récapitulatif comparant Amazon Aurora et Amazon RDS :

Amazon AuroraAmazon RDS
StockagePeut étendre le stockage de 10 Go à 64 ToRDS autorise 64 To pour tous les moteurs, mais seulement 16 To pour SQL Server
CalculPeut faire évoluer la mémoire et le calcul jusqu’à un maximum de 32 vCPU et 244 Go de RAMIdentique à Aurora
Moteurs de BDPrend en charge MySQL et PostgreSQLPrend en charge Microsoft SQL Server, MariaDB, Oracle Database, MySQL, PostgreSQL et Amazon Aurora
RéplicasPrend en charge quinze réplicasPrend en charge cinq réplicas
TarificationLe prix dépend des opérations d’E/SVous pouvez l’essayer gratuitement sans frais d’utilisation minimum

Amazon Aurora contre DynamoDB

Durabilité et disponibilité

Chaque élément de données DynamoDB est répliqué sur plusieurs nœuds physiques. Amazon a déployé ces nœuds physiques dans différentes zones (ou zones de disponibilité) pour garantir une durabilité et une disponibilité élevées en cas de catastrophe, comme un incendie ou une panne de courant majeure. L’opération se poursuit même si une copie tombe en panne. Les disques SSD sont également extrêmement fiables et durables.

Sauvegardes et restauration

DynamoDB propose des sauvegardes à la demande, ainsi que des sauvegardes ponctuelles (PITR), qui vous permettent d’accéder à n’importe quel état de la base de données. DynamoDB est en mesure de sauvegarder n’importe quel volume de données. Les performances et la disponibilité ne sont pas affectées. La sauvegarde prend très peu de temps et les utilisateurs n’ont pas à se soucier des calendriers de sauvegarde ou des processus en arrière-plan. AWS permet la récupération des sauvegardes avec un seul appel d’API.

Le processus de sauvegarde d’Amazon Aurora est similaire à celui de DynamoDB. Il a été conçu sans interrompre les performances ni le service de base de données. Les sauvegardes Amazon sont enregistrées dans un compartiment S3. Aurora créera automatiquement une sauvegarde de 30 minutes si aucune fenêtre de sauvegarde n’est spécifiée.

Contrôle d’accès

DynamoDB prend en charge les utilisateurs et les rôles IAM avec des politiques précises qui limitent la création de bases de données et les privilèges de requête. Amazon Aurora a également un système d’autorisations similaire.

Cependant, Aurora fournit également des interfaces de connexion compatibles MySQL et PostgreSQL pour se connecter à la base de données.

DynamoDB, un service régional, n’est pas soumis à la limite VPC. En revanche, les clusters de bases de données Aurora doivent être configurés dans un VPC qui définit clairement ses limites réseau. Vous pouvez également utiliser les groupes de sécurité VPC pour contrôler quels appareils ou instances Amazon EC2 sont autorisés à se connecter à l’instance de base de données.

Voici un tableau récapitulatif comparant Amazon Aurora et DynamoDB :

Amazon AuroraDynamoDB
Type de BDBase de données relationnelle prenant en charge MySQL et PostgreSQLBase de données NoSQL
RéplicationMulti-région, maître uniqueMulti-région, multi-maître
BasculementLa réplique peut être promue primaire en une minuteHaute disponibilité
LatenceLa latence de réplication est inférieure à 1 secondeLa latence de réplication est inférieure à quelques millisecondes

Conclusion

Voilà. Nous entrons dans une nouvelle ère des bases de données relationnelles, et Aurora n’en est que le début. Les clients ont manifesté un accord massif. Des leaders de tous les secteurs, tels que Capital One, Dow Jones, Netflix et Verizon, migrent leurs charges de travail de bases de données relationnelles vers Aurora, y compris les éditions compatibles avec MySQL et PostgreSQL.