2023-04-11 06:26 Temps de lecture : 22 min

Comment comparer les bases de données relationnelles AWS

Comparaison des bases de données relationnelles AWS

Pendant longtemps, les bases de données relationnelles ont été la solution de référence pour presque tous les types d'applications logicielles, que ce soit pour les grandes ou petites entreprises.

Aujourd'hui, le paysage est beaucoup plus diversifié grâce à l'émergence des bases de données NoSQL, des bases de données en mémoire et des data lakes. Néanmoins, lorsque l'on envisage de migrer des bases de données sur site vers le cloud, la base de données relationnelle reste souvent le choix le plus direct pour cette transition.

Nous allons examiner de plus près les bases de données suivantes qui pourraient faire partie d'une telle démarche :

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL et PostgreSQL
  • MariaDB

Je vais détailler leurs différences, ce qui les distingue, ainsi que leurs inconvénients. Ensuite, je les replacerai dans un contexte en illustrant un exemple d'utilisation typique. Enfin, je partagerai mon point de vue sur le choix à faire en fonction de votre situation.

Base de données AWS Oracle

Source : aws.amazon.com

La base de données Oracle a incontestablement dominé le marché des bases de données commerciales au cours des dernières décennies. Lorsqu'une entreprise recherchait une solution de base de données robuste et performante, Oracle DB était souvent le premier choix, et ce pour de nombreuses raisons valables.

En quoi elle diffère

Oracle est une plateforme puissante et riche en fonctionnalités, capable de répondre à une multitude de configurations et d'exigences, même très disparates. Au fil du temps, cette base de données s'est imposée comme la solution de référence pour ceux qui avaient besoin d'une fiabilité, d'une évolutivité et d'une maintenabilité de pointe sur une infrastructure matérielle sur site.

Principaux avantages

Voici quelques-uns des principaux avantages que vous obtenez en optant pour un système de base de données aussi mature qu'Oracle :

✅ Excellente prise en charge et options pour des opérations de sauvegarde et de restauration efficaces.

✅ Vaste éventail de possibilités pour ajuster les performances de la base de données directement au sein du système, même longtemps après la mise en production. La mise en place des activités de support et de maintenance est simple et très efficace.

✅ Personnalisation poussée de la solution DB. Oracle DB prend en charge de nombreuses fonctionnalités parmi lesquelles choisir, ce qui permet à un intégrateur système de construire un système robuste avec précisément les fonctionnalités nécessaires (triggers, partitions, sous-partitions, séquences de clés primaires automatisées, vues, instantanés, contraintes de données, clés uniques, clés composites, clés étrangères, index composites, etc.). La prise en charge est complète.

✅ Administration aisée des activités et des processus de la base de données. Des consoles d'administration, des tableaux de bord dédiés et de nombreux outils créés par Oracle sont disponibles pour les administrateurs.

✅ Prise en charge des environnements multi-utilisateurs. Si la nécessité est de gérer des milliers d'utilisateurs actifs simultanément, Oracle est une solution idéale.

Principaux inconvénients

Oracle DB est très flexible en ce qui concerne l'augmentation verticale des performances, c'est-à-dire la mise à niveau du processeur, de la mémoire ou du stockage au sein d'un même cluster. Cependant, l'extension horizontale s'avère plus difficile.

Si le volume de données augmente rapidement, ce qui est fréquent dans le cloud, les goulets d'étranglement en termes de performances deviendront plus visibles et difficiles à résoudre. La répartition des données sur plusieurs clusters avec une croissance dynamique sera une exigence essentielle à l'avenir. Dans ce contexte, Oracle DB peut devenir plus contraignant qu'une solution adaptée à vos besoins futurs.

Le coût peut être un autre inconvénient potentiel. Oracle DB prend en charge de nombreuses fonctionnalités, mais beaucoup d'entre elles ont un prix. D'autant plus si plusieurs clusters sont en place et que des mises à niveau de performances matérielles sont nécessaires. Cela signifie que l'ajustement du modèle de données seul ne suffit plus. L'acquisition d'une licence d'entreprise est nécessaire pour bénéficier de tous les outils et fonctionnalités d'administration, ce qui augmente encore les coûts déjà élevés.

Enfin, Oracle DB n'est pas un service de base de données AWS natif. Il ne faut donc pas s'attendre à une prise en charge complète d'AWS. Il est préférable de se tourner vers le support Oracle, et de traiter les problèmes d'Oracle et d'AWS en parallèle avec deux équipes de support différentes.

Quand la choisir

Opter pour la version cloud de la base de données Oracle est une décision naturelle si votre solution sur site utilise déjà cette base de données. Cela simplifiera la migration et la transition vers une solution cloud.

Par conséquent, choisissez la base de données AWS Oracle si :

  • Vous vous attendez à ce que la base de données cloud prenne en charge les mêmes processus et fonctionnalités que la variante sur site dans un futur proche.
  • Vous n'envisagez pas d'intégrer rapidement la base de données à de nombreux services natifs AWS.
  • Vous n'anticipez pas une augmentation significative du volume de données actuel dans un court laps de temps.
  • Vous avez besoin d'un grand nombre de fonctionnalités. Autrement dit, perdre certaines fonctionnalités lors de la migration vers le cloud serait problématique.
  • Votre système doit prendre en charge des centaines d'utilisateurs actifs simultanément (ou plus).

Exemples d'utilisation

  • Grands systèmes de télécommunications pour les données de facturation, CRM et middleware.
  • Implémentations de bases de données personnalisées pour les systèmes automobiles, intégrant différents outils de fournisseurs personnalisés ou tiers.
  • Solutions de systèmes packagées pour le secteur bancaire, où Oracle fait partie intégrante de la solution packagée du fournisseur et intègre des composants de base de données personnalisés supplémentaires dans une implémentation complexe.

Base de données AWS Aurora

Source : aws.amazon.com

À bien des égards, Aurora est l'opposé direct d'Oracle, bien qu'il s'agisse toujours d'une base de données relationnelle.

En quoi elle diffère

Aurora DB est un service de base de données natif d'AWS. AWS offre un support complet, un développement continu et une intégration poussée avec le reste de l'écosystème de services AWS.

Aurora DB n'atteint pas le même niveau de diversité fonctionnelle qu'Oracle. Cependant, Aurora a été conçue pour le cloud (contrairement à Oracle). AWS continuant de développer Aurora, l'écart fonctionnel pourrait se réduire à l'avenir.

À bien des égards, Aurora est déjà en avance sur Oracle, notamment en matière d'intégration avec d'autres services cloud AWS. De plus, Aurora ayant été conçue par Amazon pour un écosystème cloud, elle est prête pour une croissance massive des données, et la mise à l'échelle horizontale est l'un de ses points forts.

Principaux avantages

Les principaux avantages d'Aurora DB sont :

✅ Extension très flexible des instances de réplication en lecture seule, que vous pouvez créer en quelques secondes. Ces instances partagent les mêmes journaux de base de données que la base de données principale. Ainsi, la création d'une nouvelle base de données en lecture seule ne nécessite pas la synchronisation de toutes les données, car cela se fait automatiquement en partageant les données existantes.

✅ Prête pour la croissance massive des données. La mise à l'échelle horizontale est une fonctionnalité importante d'Aurora DB. L'ajout de nouveaux clusters et l'extension de l'évolutivité à différentes zones de disponibilité sont simples. Aurora est très efficace pour interroger rapidement de grandes quantités de données.

✅ Possibilité de choisir entre le mode serveur et sans serveur. Certaines fonctionnalités sont absentes en mode sans serveur, mais vous bénéficiez d'une grande flexibilité et d'optimisations de coûts.

✅ Sauvegardes automatisées et restauration facile à un point donné dans le temps. Un autre point fort est la simplicité des sauvegardes quotidiennes et de la restauration complète de la base de données à tout moment. Tous les avantages de l'environnement cloud (espace disponible, opérations internes AWS rapides et fonctionnalités Aurora DB dédiées) sont exploités pour des temps de récupération rapides et des temps d'arrêt réduits.

✅ Prise en charge des moteurs de base de données MySQL ou PostgreSQL, ce qui vous permet de choisir celui qui convient le mieux à vos besoins.

Principaux inconvénients

  • Bien qu'Aurora soit probablement la base de données relationnelle native la plus riche en fonctionnalités d'AWS, elle reste derrière Oracle. Cela est compréhensible, car Oracle a eu plus de temps pour développer ces fonctionnalités. Néanmoins, Aurora DB s'améliore à chaque version.
  • Il n'existe pas d'équivalent à Aurora DB dans l'environnement sur site. On pourrait considérer que les anciennes bases de données construites avec MySQL ou PostgreSQL s'en rapprochent, et du point de vue de la compatibilité, c'est le cas. Cependant, ce n'est pas un équivalent exact. La migration n'est donc pas si simple. Vous devrez personnaliser et mettre en place des processus de migration pour transférer les données sur site et les stocker dans Aurora DB dans le bon format de modèle de données.
  • Diverses limitations d'AWS, parfois strictes, peuvent empêcher le choix de cette base de données. Bien qu'il soit généralement possible de les contourner, certaines nécessitent des investissements plus importants en refactorisation, ce qui peut augmenter les coûts globaux de migration par rapport à une autre base de données cible.

Quand la choisir

Opter pour Aurora DB comme base de données relationnelle par défaut sur la plateforme AWS n'est jamais une mauvaise décision, mais cela est particulièrement indiqué si :

  • Vous construisez un système cloud à partir de zéro avec une base de données relationnelle.
  • Vous recherchez une compatibilité maximale et une intégration complète avec de nombreux services natifs AWS.
  • Vous prévoyez une augmentation considérable de votre volume de données dans un court laps de temps.
  • Vous envisagez de lancer plusieurs projets de validation de concept (POC) où vous pouvez tirer parti des avantages du mode sans serveur d'une base de données relationnelle.

Exemples d'utilisation

  • Une plateforme sans serveur pour analyser de grandes quantités de données d'images d'infrastructure.
  • Utilisation de modèles d'apprentissage automatique pour traiter les informations de votre data lake et générer des prévisions commerciales.
  • Netflix utilise Aurora DB pour exécuter rapidement des requêtes parallèles sur ses données de catalogue.

Base de données AWS Microsoft SQL

Source : aws.amazon.com

Cette base de données est comparable à Oracle à certains égards. Elle a également été créée bien avant l'émergence du cloud, et de nombreux utilisateurs sur site envisagent de migrer vers le cloud en utilisant MS SQL comme source.

En quoi elle diffère

Malgré ces similitudes, MS SQL DB a toujours été beaucoup moins utilisée qu'Oracle DB.

Du moins, d'après mon expérience personnelle. J'ai participé à de nombreux projets Oracle au cours des deux dernières décennies, mais seulement à quelques projets utilisant MS SQL DB. Et je dois dire que je n'aimais pas autant travailler avec MS SQL DB qu'avec Oracle DB.

Cela dit, je reconnais qu'un grand nombre d'entreprises utilisent MS SQL comme base de données principale, source unique de vérité pour toutes les données.

Principaux avantages

Les principaux avantages de MS SQL DB sont :

✅ Bonne intégration avec d'autres services et logiciels Microsoft, ce qui peut être un avantage dans certains cas.

✅ Personnalisation facile avec des extensions de code personnalisé, principalement sous forme de modules Javascript. Cela peut être utile pour les processus métier plus complexes et les tâches à planifier dans la base de données.

✅ Assez simple du point de vue de l'administration (du moins par rapport à Oracle DB).

✅ Plus pertinente dans l'écosystème cloud Azure, où elle est considérée comme une base de données relationnelle native, plus compatible avec les autres services cloud.

Principaux inconvénients

  • Comme pour Oracle DB, MS SQL n'étant pas une base de données native d'AWS, le support et la résolution des problèmes doivent être gérés par des équipes de support MS SQL dédiées.
  • Moins de diversité dans la prise en charge des fonctionnalités en comparaison avec Oracle DB ou Aurora DB.
  • Ne convient pas à un grand nombre d'utilisateurs actifs.
  • L'évolutivité horizontale est plus problématique que dans le cas d'Oracle DB.

Quand la choisir

MS SQL DB est plus adaptée si vous souhaitez migrer une base de données MS SQL existante vers le cloud avec le moins de perturbations possible. De plus, si l'intégration avec d'autres services cloud AWS n'est pas une priorité.

Ainsi, la base de données MS SQL vivra dans le cloud AWS comme une base de données entièrement gérée, avec un stockage illimité et des options d'évolutivité horizontale et de haute disponibilité améliorées par rapport à l'alternative sur site.

Exemples d'utilisation

  • Plateforme intermédiaire pour l'intégration personnalisée de divers systèmes de base de données (y compris des systèmes de types différents, par exemple Oracle DB).
  • Divers projets à plus petite échelle où le coût de la solution de base de données est un facteur important, et où le budget est limité (et ne permet pas de choisir une solution Oracle complète).

Bases de données AWS MySQL et PostgreSQL

Source : aws.amazon.com

Ces bases de données sont toutes deux open source à l'origine (bien que maintenant détenues par de grandes entreprises), ce qui leur confère des avantages et des inconvénients.

Elles ne sont pas aussi riches en fonctionnalités que d'autres alternatives, surtout sous leur forme native. Bien que vous puissiez les utiliser dans l'infrastructure AWS sous cette forme, cela n'a pas toujours beaucoup de sens pratique.

En quoi elles diffèrent

Lors de la migration d'une base de données sur site (MySQL ou PostgreSQL) vers le cloud AWS, vous pouvez simplement utiliser Aurora directement avec le moteur MySQL ou PostgreSQL comme cible, et profiter ainsi de tous les avantages supplémentaires qu'Aurora DB a à offrir.

Bien sûr, cela demande un effort supplémentaire pendant la phase de migration par rapport au choix d'une alternative native. Mais cet effort supplémentaire reste marginal.

Leur principal avantage réside dans le coût et le fait qu'elles conviennent mieux aux petits projets, où la robustesse n'est pas une priorité.

Principaux inconvénients

  • Les deux sont assez limitées en termes de fonctionnalités, avec des options limitées pour la maintenance et l'administration.
  • Ne conviennent pas aux grands projets avec de nombreux utilisateurs actifs.
  • Pas idéales pour les solutions haute performance où un ajustement constant des performances est nécessaire.

Quand les choisir

  • Si le coût est le principal facteur et que le budget est très limité.
  • Si le projet est de petite envergure.
  • Si le volume de données est faible et qu'il n'y a pas de plan de croissance important.

Exemples d'utilisation

  • Projets personnels où le coût de l'infrastructure doit être aussi bas que possible.
  • Petits POC pour prouver qu'un concept est réalisable.
  • Projets de petites entreprises avec de faibles volumes de données.
  • Petits projets SaaS qui ne nécessitent pas une grande charge de base de données, mais seulement le stockage de données dans un modèle de données relationnel.

AWS MariaDB

Source : aws.amazon.com

MariaDB est une base de données entièrement open source créée par d'anciens développeurs MySQL (après l'acquisition de MySQL par Oracle).

En termes de compatibilité, toute base de données MySQL fonctionnera parfaitement dans MariaDB.

En quoi elle diffère

D'un point de vue fonctionnel, il n'y a pas de grandes différences par rapport à MySQL, mais la propriété open source est un point important.

Techniquement, MariaDB offre quelques fonctionnalités utiles qui ne sont pas disponibles dans MySQL.

Principaux inconvénients

Similaires à ceux de MySQL.

Quand la choisir

  • Si vous êtes satisfait de votre implémentation actuelle de MariaDB sur site et que vous ne souhaitez pas migrer vers Aurora DB, pour une raison ou une autre.
  • Si vous souhaitez une solution de base de données véritablement open source dans l'écosystème cloud AWS.

Exemples d'utilisation

Similaires à ceux de MySQL.

Conclusion

De même qu'Oracle DB était la solution de référence dans le monde sur site, il semble qu'Aurora DB prenne cette place dans le monde du cloud AWS. Du moins, en termes de fonctionnalités, c'est ce qui s'en rapproche le plus.

Et même si vous ne recherchez pas les fonctionnalités les plus avancées, il est bon de savoir qu'il existe des options simples pour migrer votre base de données existante vers le cloud AWS.

De plus, cette transition vous apportera automatiquement des fonctionnalités qui vous manquaient jusqu'à présent. L'évolutivité du stockage, la haute disponibilité et l'évolutivité horizontale sont des fonctionnalités natives de l'environnement cloud.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.