Sélection d'une base de données pour une application SaaS - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sélection d'une base de données pour une application SaaS

Pour de nombreuses applications SaaS à locataires multiples, la sélection d'une base de données opérationnelle peut se résumer à un choix entre des bases de données relationnelles et non relationnelles, ou à une combinaison des deux. Pour prendre votre décision, tenez compte de ces exigences et caractéristiques de haut niveau en matière de données d'application :

  • Modèle de données de l'application

  • Modèles d'accès aux données

  • Exigences de latence de la base

  • Exigences relatives à l'intégrité des données et à l'intégrité transactionnelle (atomicité, cohérence, isolation et durabilité, ou ACID)

  • Exigences relatives à la disponibilité et à la restauration entre les régions

Le tableau suivant répertorie les exigences et les caractéristiques des données des applications, et les aborde dans le contexte des offres de AWS base de données : compatible avec Aurora PostgreSQL et Amazon RDS for PostgreSQL (relationnel), et Amazon DynamoDB (non relationnel). Vous pouvez faire référence à cette matrice lorsque vous essayez de choisir entre des offres de bases de données opérationnelles relationnelles et non relationnelles.

Bases de données Exigences et caractéristiques des données des applications SaaS
Modèle de données Modèles d'accès Exigences de latence Intégrité des données et des transactions Disponibilité et restauration entre les régions

Relationnel

(compatible avec Aurora PostgreSQL et Amazon RDS pour PostgreSQL)

Relationnel ou hautement normalisé. Il n'est pas nécessaire de le planifier minutieusement à l'avance. Tolérance de latence de préférence plus élevée ; permet d'obtenir des latences plus faibles par défaut avec Aurora et en implémentant des répliques de lecture, la mise en cache et des fonctionnalités similaires. Intégrité élevée des données et des transactions maintenue par défaut. Dans Amazon RDS, vous pouvez créer une réplique en lecture pour le dimensionnement et le basculement entre régions. Aurora automatise principalement ce processus. Pour les configurations active-active sur plusieurs Régions AWS, vous pouvez utiliser le transfert d'écriture conjointement avec les bases de données globales Aurora.

Non relationnel

(Amazon DynamoDB)

Généralement dénormalisé. Ces bases de données tirent parti des modèles pour modéliser many-to-manyles relations, les éléments volumineux et les données de séries chronologiques. Tous les modèles d'accès (requêtes) aux données doivent être parfaitement compris avant qu'un modèle de données ne soit produit. Très faible latence grâce à des options telles qu'Amazon DynamoDB Accelerator (DAX) capables d'améliorer encore les performances. Intégrité transactionnelle optionnelle au détriment des performances. Les problèmes d'intégrité des données sont transférés à l'application. Restauration facile entre régions et configuration active-active avec des tables globales. (La conformité ACID n'est réalisable que dans une seule AWS région.)

Certaines applications SaaS mutualisées peuvent avoir des modèles de données uniques ou des circonstances particulières qui sont mieux desservies par des bases de données non incluses dans le tableau précédent. Par exemple, les ensembles de données chronologiques, les ensembles de données hautement connectés ou la gestion d'un registre de transactions centralisé peuvent nécessiter l'utilisation d'un autre type de base de données. L'analyse de toutes les possibilités dépasse le cadre de ce guide. Pour obtenir une liste complète des offres de AWS base de données et savoir comment elles peuvent répondre à différents cas d'utilisation à un niveau élevé, consultez la section Base de données du livre blanc Présentation d'Amazon Web Services.

Le reste de ce guide se concentre sur les services de base de données AWS relationnelle compatibles avec PostgreSQL : Amazon RDS et Aurora PostgreSQL compatibles. DynamoDB nécessite une approche différente pour optimiser les applications SaaS, ce qui dépasse le cadre de ce guide. Pour plus d'informations sur DynamoDB, consultez le billet de blog Partitioning Pooled AWS Multi-Tenant SaaS Data with Amazon DynamoDB.

Choisir entre Amazon RDS et Aurora

Dans la plupart des cas, nous recommandons d'utiliser Aurora PostgreSQL compatible plutôt qu'Amazon RDS for PostgreSQL. Le tableau suivant indique les facteurs à prendre en compte au moment de choisir entre ces deux options.

composant DBMS Amazon RDS for PostgreSQL Compatible avec Aurora avec PostgreSQL
Evolutivité Délai de réplication de quelques minutes, maximum de 5 répliques de lecture Retard de réplication inférieur à une minute (généralement inférieur à 1 seconde avec les bases de données globales), maximum de 15 répliques de lecture
Reprise après un crash Les points de contrôle espacés de 5 minutes (par défaut) peuvent ralentir les performances de la base de données Restauration asynchrone avec threads parallèles pour une restauration rapide
Basculement 60 à 120 secondes en plus du temps de récupération en cas de panne Généralement environ 30 secondes (y compris la récupération en cas de panne)
Stockage Nombre maximal d'IOPS de 256 000 Les IOPS sont limitées uniquement par la taille et la capacité de l'instance Aurora
Haute disponibilité et reprise après sinistre Deux zones de disponibilité avec une instance de secours, basculement entre régions pour lire les répliques ou les sauvegardes copiées Trois zones de disponibilité par défaut, basculement entre régions avec les bases de données globales Aurora, transfert d'écriture Régions AWS pour les configurations active-active
Sauvegarde Pendant la fenêtre de sauvegarde, cela peut avoir un impact sur les performances Sauvegardes incrémentielles automatiques, sans impact sur les performances
classes d'instances de base de données Voir la liste des classes d'instances Amazon RDS Voir la liste des classes d'instances Aurora

Dans toutes les catégories décrites dans le tableau précédent, la compatibilité avec Aurora PostgreSQL est généralement la meilleure option. Cependant, Amazon RDS for PostgreSQL peut toujours être utile pour les charges de travail petites et moyennes, car il propose un plus grand choix de classes d'instances, ce qui peut constituer une option plus rentable au détriment de l'ensemble de fonctionnalités plus robustes d'Aurora.