Omotayo Akinbode
Après l’obtention de ma certification AWS Certified Database, j’ai jugé le moment opportun pour partager mes réflexions sur les services de bases de données AWS. Ce billet présente non seulement une liste des principales caractéristiques de chaque base de données, mais aussi des exemples concrets pour guider votre prochain projet infonuagique. AWS propose deux types de solutions : les bases de données relationnelles et non relationnelles. Nous nous concentrerons ici sur les premières.
Les bases de données relationnelles
Ce type de bases de données organise les données en colonnes et en rangées avec des relations prédéfinies entre les tables, et utilise une clé pour identifier chaque ligne de manière unique. Exemples : PostgreSQL, MySQL, Microsoft SQL Server, IBM DB2, Oracle, etc.
Voici les bases de données relationnelles proposées par AWS.
A) Amazon RDS (Relational Database Service)
Amazon RDS est une collection de services gérés par AWS qui permet d’interroger des données avec SQL (langage de requête structuré). Il est compatible avec PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server et Aurora. Ces bases de données peuvent également être hébergées sur une instance EC2, ce qui signifie qu’elles seraient gérées par le client et non par AWS. Voici les principales fonctionnalités d’Amazon RDS :
- Exécuté dans un VPC (Virtual Private Cloud, soit un cloud privé virtuel), généralement dans un sous-réseau privé, il contrôle l’accès réseau à l’aide de groupes de sécurité
- Utilise le stockage EBS (gp2 ou io1)
- Supporte les déploiements multi-AZ
- Permet la sauvegarde et la restauration d’un instantané
- Offre la possibilité de créer des instantanés manuels
- Propose des notifications SNS pour les événements RDS
Exemple pratique
Une entreprise qui rencontre des problèmes de disponibilité ou de gestion des données avec une base de données relationnelle de petite ou moyenne taille (ex. : MySQL) hébergée dans leurs locaux pourrait envisager de migrer vers une instance Amazon RDS pour MySQL pour bénéficier de répliques en lecture. La transition est facilitée par le transfert d’une sauvegarde MySQL vers S3 avec mysqldump, qui est ensuite restaurée sur la nouvelle instance. Toutefois, cette approche entraîne un temps d’arrêt non négligeable.
B) Amazon Aurora
Amazon Aurora est uniquement compatible avec les moteurs MySQL et PostgreSQL, et fonctionne donc comme une base de données Postgres ou MySQL standard. Voici quelques-unes de ses caractéristiques :
- Performances cinq fois supérieures à celles des BD MySQL standard et trois fois supérieures à celles des BD PostgreSQL standard
- Possibilité d’avoir jusqu’à 15 répliques en lecture (multi-AZ, mise à l’échelle automatique)
- Option Aurora Serverless pour un démarrage, un arrêt et une mise à l’échelle automatiques avec stockage autoréparable
- Aurora Global DB prend en charge la réplication en lecture multirégions
- Six copies réparties sur trois zones de disponibilité
- Sauvegardes stockées sur S3 avec option de restauration rapide (PITR)
Exemple pratique
Une société logicielle est confrontée à des problèmes de stockage et de disponibilité des données sur sa base de données relationnelle (PostgreSQL ou MySQL), en raison de nombreux tests simultanés effectués par une équipe de sept développeurs. Cette société pourrait envisager d’utiliser Aurora. En effet, Aurora permet de cloner la base de données (jusqu’à 15 clones) ou d’utiliser jusqu’à 15 répliques en lecture. Une fois les tests terminés, ces copies peuvent être supprimées.
C) Amazon Redshift
Amazon Redshift est une base de données OLAP basée sur PostgreSQL qui permet d’effectuer des requêtes sur des pétaoctets de données structurées et semi-structurées avec SQL standard. Elle repose sur un nœud principal responsable de la planification des requêtes et de l’agrégation des résultats, ainsi que sur plusieurs nœuds de calcul qui exécutent les requêtes avant de transmettre les résultats au nœud principal. Voici quelques-unes de ses fonctionnalités :
- Performances analytiques élevées grâce au stockage en colonnes (et non en rangées)
- Traitement massivement parallèle (MPP) et disponibilité élevée
- Capacité d’interroger des données externes stockées sur Amazon
Exemple pratique
Amazon Redshift est particulièrement adapté aux entreprises qui doivent gérer une charge de travail importante ainsi que des analyses en temps réel sur des pétaoctets de données structurées ou semi-structurées à l’aide d’outils d’informatique décisionnelle comme AWS Quicksight, Tableau, etc.
Voici un tableau comparatif des bases de données :
Amazon RDS | Amazon Aurora | Amazon Redshift | |
Type de données | Structurées | Structurées | Semi-structurées |
Réplication | 5 répliques en lecture | Jusqu’à 15 répliques en lecture | Pas de réplication. Restauration d’instantanés sur un nouveau cluster. |
Volume | Plage de To inférieure | Plage de To moyenne | Plage de Po |
Charge de travail | (OLTP) Objectif transactionnel et analyse simple | (OLTP) Objectif transactionnel et analyse simple (Requêtes parallèles Aurora pour des analyses plus rapides) | (OLAP) Objectif analytique |
Performance | Débit moyen à élevé, faible latence | Débit élevé, faible latence | Latence moyenne à élevée |
Conclusion
Dans ce billet, nous avons passé en revue les options qui s’offrent à vous en matière de bases de données relationnelles AWS en mettant l’accent sur des situations concrètes. N’hésitez pas à nous joindre si vous envisagez de migrer vers le nuage AWS et cherchez la solution la mieux adaptée à vos besoins.