1. Livres & vidéos
  2. AWS
  3. Gestion des bases de données
Extrait - AWS Préparation à la certification Solutions Architect - Associate
Extraits du livre
AWS Préparation à la certification Solutions Architect - Associate Revenir à la page d'achat du livre

Gestion des bases de données

Prérequis et objectifs

1. Prérequis

Pour tirer le meilleur parti de ce chapitre, il est recommandé d’avoir :

Un compte AWS.

Des connaissances de base sur l’utilisation du système d’exploitation Linux, y compris les commandes essentielles pour la gestion des fichiers, des processus, et des permissions.

Une connaissance de base des concepts de base de données relationnelles (comme SQL) et non relationnelles (comme NoSQL).

2. Objectif

Ce chapitre explore les capacités avancées de gestion des bases de données sur AWS, englobant les solutions relationnelles, non relationnelles, et spécialisées, comme les bases de données pour séries temporelles ou graphiques. Vous apprendrez à choisir, configurer et optimiser des bases de données adaptées à vos besoins métier, tout en garantissant des performances élevées et une gestion efficace des coûts. Ce chapitre met également en lumière l’importance de sélectionner les bonnes options en fonction des cas spécifiques, afin de maximiser l’efficacité et la pertinence des solutions choisies.

En vous guidant dans le choix des moteurs, des types d’instances, des modèles de tarification, ou encore des outils d’intégration comme ElastiCache ou DynamoDB Accelerator (DAX), ce chapitre vise à vous fournir une compréhension claire des meilleures pratiques pour répondre aux différents...

Base de données relationnelles

Les bases de données relationnelles sont un pilier fondamental de la gestion des données dans le monde informatique. Elles sont largement utilisées pour stocker, gérer et manipuler des données structurées dans divers secteurs, allant des systèmes d’information des entreprises aux applications web. Sur AWS, les bases de données relationnelles sont prises en charge via des services tels qu’Amazon RDS, qui simplifient la gestion, le déploiement et l’évolutivité des bases de données.

1. Définition et principes

Une base de données relationnelle est un type de base de données qui organise les données en tables interconnectées par des relations définies. Ces tables sont constituées de lignes (ou enregistrements) et de colonnes (ou attributs), où chaque ligne représente une instance unique et chaque colonne correspond à une propriété de cette instance.

Même si nous avons rapidement manipulé des bases de données dans le chapitre Le calcul sur AWS - Passage au site dynamique de l’entreprise French Bakery, nous allons maintenant approfondir leur fonctionnement et leur gestion dans le contexte d’AWS, en explorant les différents services disponibles pour héberger et gérer des bases de données relationnelles dans le cloud, comme Amazon RDS.

Les principales caractéristiques des bases de données relationnelles incluent :

  • Schéma fixe : les données sont structurées selon un schéma rigide, défini à l’avance, qui détermine la structure des tables et les types de données qu’elles peuvent contenir.

images/04CE01.png
  • Intégrité des données : les bases de données relationnelles assurent l’intégrité des données à travers des contraintes comme les clés primaires (qui identifient de manière unique chaque enregistrement) et les clés étrangères (qui définissent les relations entre les tables).

images/04CE02.png
  • Transactions ACID : elles garantissent que les opérations sur les données respectent les propriétés ACID (atomicité, cohérence, isolation, durabilité)...

Amazon RDS

1. Présentation d’Amazon RDS

images/04CE04.png

Amazon Relational Database Service (Amazon RDS) est un service de base de données relationnelle totalement managé de type OLTP. Il simplifie la configuration, l’exploitation et la mise à l’échelle des bases de données relationnelles dans le cloud, en prenant en charge plusieurs moteurs. Amazon RDS automatise les tâches administratives courantes, permettant aux entreprises de se concentrer sur leurs applications plutôt que sur la gestion des bases de données.

2. Moteurs de base de données

Amazon RDS offre une large gamme de moteurs de bases de données relationnelles, permettant aux utilisateurs de choisir celui qui convient le mieux à leurs besoins en termes de performance, de compatibilité et de coût. Parmi les moteurs disponibles, on retrouve des solutions open source comme MySQL, PostgreSQL, et MariaDB, ainsi que des moteurs commerciaux tels qu’Oracle Database, Microsoft SQL Server et IBM Db2. Chacun de ces moteurs est entièrement géré par Amazon RDS, qui prend en charge les mises à jour logicielles, les sauvegardes, et la surveillance des performances, réduisant ainsi la charge administrative pour les utilisateurs.

En plus de ces options, Amazon propose son propre moteur de base de données propriétaire, Amazon Aurora. Aurora est conçu pour offrir une compatibilité complète avec MySQL et PostgreSQL tout en offrant des performances nettement supérieures. Aurora est optimisé et bénéficie de nombreuses améliorations techniques qui permettent d’augmenter le débit et la résilience des bases de données.

En termes de performances, Aurora se distingue particulièrement par son efficacité. Amazon annonce qu’Aurora peut offrir un débit jusqu’à 5 fois supérieur à celui de MySQL et jusqu’à trois fois supérieur à celui de PostgreSQL, tout en maintenant une compatibilité totale avec ces moteurs. Cela fait d’Aurora un choix privilégié pour les applications critiques qui nécessitent à la fois haute performance et fiabilité, tout en bénéficiant de la facilité de gestion d’Amazon RDS.

3. RDS vs base de données...

Amazon Aurora

1. Présentation d’Amazon Aurora

images/04CE26.png

Amazon Aurora est un moteur de base de données relationnelle entièrement managé, conçu par AWS pour offrir des performances élevées, une haute disponibilité et une scalabilité adaptée aux besoins des applications modernes. Compatible avec MySQL et PostgreSQL, Aurora combine la simplicité et les fonctionnalités des bases de données open source avec la robustesse et la sécurité des solutions commerciales. En tant que technologie propriétaire, Aurora est optimisée pour le cloud AWS et se distingue par son architecture avancée et ses performances accrues.

Amazon affirme qu’Aurora est jusqu’à cinq fois plus rapide que MySQL standard sur Amazon RDS et trois fois plus rapide que PostgreSQL, grâce à une architecture optimisée. Cette amélioration significative des performances repose sur un stockage distribué et résilient, qui réplique automatiquement les données sur six copies réparties dans trois zones de disponibilité (AZ). Cette approche garantit des temps de lecture et d’écriture rapides, une haute disponibilité et une tolérance aux pannes native.

De plus, le stockage Aurora croît automatiquement par incréments de 10 Go jusqu’à un maximum de 128 To, éliminant ainsi la nécessité de prévoir la capacité de stockage. Aurora est conçu pour répondre aux besoins des charges de travail critiques, avec un mécanisme de failover presque instantané, des temps de latence réduits et une architecture qui peut accueillir jusqu’à 15 réplicas de lecture. La réplication Aurora offre un décalage inférieur à 10 ms, ce qui en fait une solution idéale pour les applications nécessitant des performances de lecture élevées.

Bien que le coût d’Aurora soit environ 20 % supérieur à celui d’Amazon RDS, il est largement compensé par son efficacité et sa capacité à répondre aux exigences des charges de travail critiques. Aurora inclut également des fonctionnalités avancées comme les sauvegardes automatiques, la restauration à...

Amazon ElastiCache

1. Présentation d’Amazon ElastiCache

images/04CE29.png

Amazon ElastiCache est un service managé d’AWS permettant de déployer, d’exploiter et de mettre à l’échelle des caches en mémoire compatibles avec Redis et Memcached. Ce service est principalement utilisé pour améliorer les performances des applications en mettant en cache les données souvent consultées, réduisant ainsi les temps de réponse et la charge sur les bases de données. ElastiCache offre un accès rapide aux données à partir d’une mémoire en RAM, avec des latences à un chiffre de milliseconde, ce qui rend ce service utile pour les applications nécessitant une grande réactivité. Tout comme Amazon RDS est conçu pour gérer des bases de données relationnelles managées, ElastiCache permet de bénéficier de Redis ou Memcached entièrement gérés, apportant des performances élevées et une faible latence pour les charges de travail intensives en lecture. L’utilisation d’ElastiCache aide à réduire la charge des bases de données en déportant les lectures intensives. Tout comme le service RDS, AWS se charge de la maintenance du système d’exploitation, des correctifs, des optimisations, de l’installation, de la configuration, de la surveillance, de la récupération après panne et des sauvegardes, permettant ainsi aux développeurs de se concentrer sur le développement de l’application. Enfin, il est important de noter que l’intégration d’ElastiCache nécessite des modifications du code de l’application pour gérer efficacement le cache, comme l’ajout de logique afin de vérifier si une donnée est déjà présente dans le cache avant d’effectuer une requête à la base de données principale.

2. Architecture ElastiCache

ElastiCache est conçue pour s’intégrer aux applications et aux bases de données, optimisant ainsi les performances et la gestion des charges de travail. ElastiCache peut être mis en œuvre dans diverses solutions architecturales pour répondre aux besoins spécifiques des applications en matière...

Amazon Redshift

1. Présentation d’Amazon Redshift

images/04CE33.png

Amazon Redshift est un service de data warehouse (entrepôt de données) managé par AWS, conçu pour exécuter des requêtes analytiques sur de grandes quantités de données. Il est optimisé pour des opérations analytiques complexes (OLAP), où les données doivent être traitées de manière efficace pour répondre à des besoins de Business Intelligence (BI), de reporting, et d’analyse de données massives. Redshift est basé sur PostgreSQL, mais avec des optimisations pour la performance et la scalabilité.

Un data warehouse est un système de stockage conçu spécifiquement pour centraliser et analyser des volumes massifs de données provenant de différentes sources. Contrairement aux bases de données transactionnelles (OLTP), qui gèrent des transactions fréquentes, un data warehouse est optimisé pour des requêtes complexes et des analyses à grande échelle. Il permet de stocker et d’agréger des données historiques pour faciliter la prise de décision stratégique. Les data warehouses sont souvent utilisés pour l’analyse des performances d’une entreprise, les rapports financiers, ou encore par exemple les tendances de marché.

Amazon Redshift permet aux entreprises d’analyser des pétaoctets de données à haute vitesse. De plus, il permet une facturation à l’usage basée sur la capacité de calcul provisionnée et propose des optimisations spécifiques comme...

Base de données non relationnelles

Les bases de données non relationnelles (ou NoSQL pour Not Only SQL) offrent une approche différente de la gestion des données par rapport aux bases de données relationnelles traditionnelles. Elles sont particulièrement adaptées aux applications modernes qui nécessitent une grande flexibilité, des performances élevées, et la capacité de traiter des volumes massifs de données non structurées ou semi-structurées.

1. Définition et principes

Contrairement aux bases de données relationnelles, qui reposent sur des tables interconnectées, les bases de données non relationnelles ne suivent pas un schéma de données fixe. Elles sont conçues pour être plus flexibles et permettent de gérer divers types de données comme des documents, des paires clé-valeur, des colonnes ou des graphes.

Les bases de données non relationnelles sont scalables horizontalement, c’est-à-dire qu’elles peuvent être étendues en ajoutant des serveurs supplémentaires pour distribuer la charge. Ce type de base de données est largement utilisé pour des applications nécessitant une grande disponibilité, des performances rapides sur de grands ensembles de données, et la flexibilité d’évolution en fonction des besoins. 

2. Modélisation des données NoSQL

Les bases de données NoSQL se distinguent des bases de données relationnelles par leur capacité à gérer des données de manière flexible et évolutive. Contrairement aux bases relationnelles, où les données sont organisées en tables interconnectées par des relations rigides, les bases NoSQL permettent de gérer des volumes massifs de données non structurées ou semi-structurées, souvent distribuées sur plusieurs serveurs. Cette flexibilité s’exprime à travers plusieurs modèles de données, chacun conçu pour répondre à des besoins spécifiques en matière de performances, d’évolutivité et de gestion des données. Voici les différents types de bases de données NoSQL.

a. Bases de données clé-valeur...

DynamoDB

1. Présentation d’AWS DynamoDB

images/04CE36.png

Amazon DynamoDB est un service de base de données NoSQL entièrement managé, conçu pour offrir une haute disponibilité, une scalabilité quasi infinie et des performances rapides avec une latence en millisecondes. Ce service est idéal pour les applications nécessitant un grand volume de transactions ou des données non structurées, tout en garantissant une résilience élevée grâce à la réplication des données sur plusieurs zones de disponibilité dans une région AWS. DynamoDB est également un service de type serverless, éliminant ainsi la gestion des infrastructures et permettant aux utilisateurs de se concentrer sur le développement de leurs applications.

DynamoDB, contrairement aux autres bases de données NoSQL, peut prendre en charge les transactions ACID, assurant l’intégrité des données même dans des environnements hautement distribués. Il est conçu pour être massivement évolutif, capable de gérer des millions de requêtes par seconde et des centaines de téraoctets de données tout en maintenant des performances constantes. Ce service est particulièrement adapté aux charges de travail à grande échelle, telles que les jeux en ligne, les applications mobiles, l’Internet des objets (IoT, Internet of Things) et les réseaux sociaux, où la gestion de données non structurées ou semi-structurées est essentielle. Grâce à ses capacités avancées, DynamoDB répond parfaitement aux besoins des applications modernes nécessitant rapidité, flexibilité et haute disponibilité. De plus, les permissions de DynamoDB sont gérées via IAM (cf. chapitre La sécurité et la surveillance sur AWS - IAM).

Les points clés de DynamoDB incluent :

  • Scalabilité automatique : DynamoDB s’adapte automatiquement aux changements de charge de travail, avec des options de mode « Provisionné » ou « On-Demand » pour ajuster la capacité. De plus, DynamoDB peut supporter des pics d’activité de plus de 20 millions de requêtes...

Autre type de base de données AWS

1. Amazon DocumentDB

images/04CE44.png

Amazon DocumentDB est un service de base de données NoSQL entièrement managé et optimisé pour les applications qui utilisent des documents au format JSON. Le service est conçu pour stocker, interroger et indexer ces documents tout en étant compatible avec l’API MongoDB. Cela signifie que les développeurs peuvent migrer leurs applications MongoDB existantes vers DocumentDB sans avoir à réécrire leur code, bénéficiant ainsi d’une gestion simplifiée et managée via AWS.

Amazon DocumentDB repose sur une architecture de réplication multi-AZ, avec six copies des données réparties sur trois zones de disponibilité différentes. Cette réplication permet de garantir une haute disponibilité ainsi qu’une tolérance aux pannes, assurant ainsi la continuité du service même en cas de défaillance d’une zone de disponibilité. Lors de la création d’un cluster DocumentDB, il est obligatoire de spécifier le nombre d’instances, y compris un nœud principal dédié aux écritures et des réplicas pour les lectures. Ces réplicas facilitent également le basculement automatique en cas de panne du nœud principal tout comme les read replicas sur Amazon RDS. Bien que DocumentDB soit capable d’ajuster dynamiquement certaines ressources comme le stockage, le nombre d’instances quant à lui doit être défini au préalable. Cela diffère de DynamoDB, où la scalabilité se gère de manière totalement automatique sans intervention nécessaire pour gérer des nœuds ou instances.

En comparaison avec DynamoDB, ce service-là se distingue par son modèle de données orienté clé-valeur et document. Contrairement à DocumentDB, DynamoDB est conçu pour des charges de travail avec des lectures et des écritures à haute fréquence, tout en maintenant une latence ultra-faible. De plus, la scalibilité de DynamoDB est automatique et serverless. De plus, tandis que l’authentification sur DocumentDB se fait via un système d’utilisateur et mot de passe, DynamoDB utilise AWS IAM pour la gestion...

Migration de bases de données

1. Présentation d’Amazon DMS

images/04CE51.png

Amazon DMS (Database Migration Service) est un service géré par AWS qui permet de migrer rapidement et en toute sécurité des bases de données vers AWS. Il offre la possibilité de réaliser des migrations homogènes (par exemple, MySQL vers Amazon Aurora MySQL) ou hétérogènes (par exemple, Oracle vers PostgreSQL). Pendant la migration, la base source reste pleinement disponible, minimisant ainsi les interruptions pour les applications en production.

Une des grandes capacités d’Amazon DMS est sa capacité à réaliser des réplications continues grâce au mécanisme de Change Data Capture (CDC), qui synchronise les bases de données en temps quasi réel. Cela permet d’assurer une continuité des opérations même lors de migrations complexes.

DMS prend en charge une grande variété de sources et de cibles, notamment des bases relationnelles comme Oracle, SQL Server, MySQL et PostgreSQL, mais aussi des solutions NoSQL comme MongoDB ou DynamoDB, ainsi que des entrepôts de données comme Amazon Redshift. En outre, DMS s’intègre avec d’autres services AWS, comme Amazon S3 ou OpenSearch Service, pour répondre à des cas d’utilisation variés.

Pour exécuter les tâches de migration, Amazon DMS utilise une instance de réplication, généralement déployée sur une instance EC2. Cette infrastructure permet de se connecter à la base source et à la base cible pour exécuter les transferts de données, qu’il s’agisse d’une migration ponctuelle ou d’une synchronisation continue.

Enfin, Amazon DMS est conçu pour offrir une grande fiabilité. Il gère automatiquement les pannes potentielles, garantissant une migration résiliente et sans interruption. Ce service constitue une solution idéale pour les entreprises souhaitant moderniser leurs bases de données, optimiser leurs coûts ou améliorer la continuité de leurs opérations.

images/04CE52.png

Ce schéma montre une instance EC2 exécutant Amazon DMS pour migrer les données d’une base de données source vers une base de données...

Cas pratiques French Bakery avec bases de données AWS

1. Passage de la base de données PostgreSQL sur l’instance EC2 à AWS Aurora MySQL

Au fur et à mesure que le volume des commandes augmentait, la gestion de la base de données PostgreSQL hébergée sur l’instance EC2 est devenue de plus en plus complexe. Avec l’accord du gérant, il a été décidé d’externaliser la gestion de la base de données afin de simplifier les opérations et d’améliorer les performances. De plus, l’entreprise a récemment recruté un expert MySQL pour optimiser les futures opérations, ce qui a conduit le gérant à demander une migration de la base de données vers MySQL.

Après avoir étudié les différentes options, l’équipe a choisi Amazon Aurora MySQL pour ses performances supérieures par rapport à Amazon RDS standard, particulièrement adaptées aux charges de travail intensives et aux besoins de scalabilité. Ce chapitre détaille le processus de migration de PostgreSQL vers Amazon Aurora MySQL, en utilisant les outils Amazon DMS et Aurora. Amazon DMS sera utilisé pour transférer les données de manière fluide et sécurisée, tandis qu’Aurora MySQL deviendra la nouvelle solution gérée pour répondre aux besoins critiques de l’entreprise. Ce chapitre expliquera chaque étape pour effectuer cette transition de manière efficace et sans interruption majeure.

Aurora n’est pas inclus dans l’offre Free tier d’AWS. En revanche, vous pouvez opter pour le déploiement d’une instance RDS MySQL, car le principe de fonctionnement est similaire.

Les schémas suivants illustrent le processus de migration de la base de données PostgreSQL hébergée sur une instance EC2 vers Amazon Aurora MySQL, ainsi que l’architecture finale de l’application, intégrant le backend connecté à la nouvelle base de données gérée par AWS.

images/04CE55.png
images/04CE56.png

Ce schéma présente l’architecture finale après la migration de la base de données PostgreSQL vers Amazon RDS MySQL. Contrairement à l’ancien modèle décrit au chapitre...

Validation des acquis : questions/réponses

Si l’état de vos connaissances sur ce chapitre vous semble suffisant, répondez aux questions ci-après.

1. Questions

1 Une entreprise utilise Amazon DynamoDB pour stocker des données critiques de session utilisateur, mais observe une augmentation significative du trafic qui ralentit certaines requêtes de lecture fréquentes. L’entreprise souhaite améliorer les performances des lectures tout en minimisant les modifications nécessaires à l’architecture existante. Quelle solution recommanderiez-vous et pourquoi ?

2 Une entreprise utilise Amazon RDS pour gérer une base de données relationnelle et observe une latence accrue lors de requêtes fréquentes ou répétitives. Elle souhaite améliorer les performances globales de son application en réduisant le temps de réponse pour ces requêtes, tout en minimisant la charge sur la base de données. Quelle solution AWS recommanderiez-vous et pourquoi ?

3 Une entreprise souhaite développer une application de gestion des commandes pour son activité de commerce en ligne. L’application doit gérer des relations complexes entre les clients, les produits, et les commandes, tout en offrant la possibilité d’effectuer des requêtes complexes comme des jointures, des agrégats, ou des analyses historiques. La base de données doit être robuste, prendre en charge les transactions ACID, et permettre une évolutivité pour gérer des pics de trafic pendant les périodes de soldes. Faut-il privilégier une base NoSQL comme Amazon DynamoDB ou une base relationnelle comme Amazon RDS ou Aurora ?

4 Une entreprise souhaite mettre en place une base de données pour son application et se demande comment gérer les permissions et la sécurité des utilisateurs. Elle veut comprendre les différences dans la gestion des permissions entre Amazon RDS ou Aurora (bases relationnelles) et Amazon DynamoDB (base NoSQL). Quels sont les mécanismes de sécurité et de gestion des permissions spécifiques à chaque service, et dans quels cas l’un est plus adapté que l’autre ?

5 Une entreprise exécute une base de données relationnelle critique...