PERF04-BP01 Comprendre les caractéristiques des données - AWS Well-Architected Framework

PERF04-BP01 Comprendre les caractéristiques des données

Choisissez vos solutions de gestion des données pour qu'elles correspondent de manière optimale aux caractéristiques, aux modèles d'accès et aux exigences des jeux de données de votre charge de travail. Lors de la sélection et de la mise en œuvre d'une solution de gestion des données, vous devez vous assurer que les caractéristiques d'interrogation, de mise à l'échelle et de stockage prennent en charge les exigences de données de votre charge de travail. Découvrez dans quelle mesure les différentes options de base de données correspondent à vos modèles de données et quelles options de configuration conviennent le mieux à votre cas d'utilisation. 

AWS fournit de nombreux moteurs de base de données dédiés, y compris des bases de données relationnelles, de valeurs-clés, de documents, en mémoire, graphiques, de séries chronologiques et de registre. Chaque solution de gestion de données propose des options et des configurations pour prendre en charge vos cas d'utilisation et vos modèles de données. Il se peut que votre charge de travail fonctionne avec plusieurs solutions de base de données différentes, selon les caractéristiques des données. En sélectionnant les solutions de base de données les plus adaptées à un problème spécifique, vous vous éloignez des bases de données monolithiques qui offrent une approche universelle restrictive et se concentrent sur la gestion des données pour répondre aux besoins de votre client.

Résultat souhaité : Les caractéristiques des données de charge de travail sont documentées avec suffisamment de détails pour permettre la sélection et la configuration des solutions de base de données sous-jacentes et fournir un aperçu des alternatives potentielles.

Anti-modèles courants :

  • Ne pas envisager des moyens de segmenter les grands jeux de données en plus petites collections de données ayant des caractéristiques similaires, ce qui empêche d'utiliser des bases de données plus spécialisées qui correspondent mieux aux caractéristiques des données et à leur croissance.

  • Ne pas identifier les modèles d'accès aux données à l'avance, ce qui entraîne des retouches coûteuses et complexes par la suite.

  • Limiter la croissance en utilisant des stratégies de stockage de données qui ne s'adaptent pas assez rapidement.

  • Choisir un seul type de base de données et un seul fournisseur pour toutes les charges de travail.

  • S'en tenir à une solution de base de données, car l'équipe interne sait comment tirer parti de ce type particulier de solution.

  • Conserver une solution de base de données, car elle fonctionnait bien dans un environnement sur site.

Avantages liés au respect de cette bonne pratique : Connaître toutes les solutions de base de données AWS afin de pouvoir identifier celle qui est adéquate pour vos différentes charges de travail. Une fois que vous avez sélectionné la solution de base de données appropriée pour votre charge de travail, vous pouvez tester rapidement chacune de ces offres de base de données pour savoir si elles demeurent pertinentes pour vos besoins en matière de charge de travail.

Niveau de risque exposé si cette bonne pratique n'est pas respectée : Débit

  • Les économies de coûts potentielles peuvent ne pas être identifiées.

  • Les données peuvent ne pas être sécurisées au niveau requis.

  • L'accès aux données et les performances de stockage peuvent ne pas être optimaux.

Directives d'implémentation

Définissez les caractéristiques des données et les modèles d'accès de votre charge de travail. Passez en revue toutes les solutions de base de données disponibles pour identifier celle qui répond à vos besoins en matière de données. Plusieurs bases de données peuvent être sélectionnées pour une charge de travail spécifique. Évaluez chaque service ou groupe de services individuellement. Si d'autres solutions potentielles de gestion des données sont identifiées pour une partie ou la totalité des données, expérimentez d'autres implémentations susceptibles de vous faire bénéficier d'avantages supplémentaires en termes de coût, de sécurité, de performances et de fiabilité. Mettez à jour la documentation existante, si une nouvelle approche de gestion des données est adoptée.

Type Services AWS Caractéristiques clés Cas d'utilisation courants
Relationnel Amazon RDS, Amazon Aurora Intégrité référentielle, transactions ACID, Schema-On-Write ERP, CRM, logiciels commerciaux prêts à l'emploi
Clé-valeur Amazon DynamoDB Haut débit, faible latence, évolutivité quasi infinie Paniers d'achat (commerce électronique), catalogues de produits, applications de chat
Documents Amazon DocumentDB Stockage de documents JSON et requêtes portant sur n'importe quel attribut Gestion de contenu (CMS), profils clients, applications mobiles
En mémoire Amazon ElastiCache, Amazon MemoryDB Latence de l'ordre de la microseconde Mise en cache, classements de joueurs en ligne
Graphes Amazon Neptune Données hautement relationnelles où les relations entre les données ont un sens Réseaux sociaux, moteurs de personnalisation, détection des fraudes
Série chronologique Amazon Timestream Données dont la dimension principale est le temps DevOps, IoT, surveillance
Larges colonnes Amazon Keyspaces Charges de travail Cassandra Maintenance des équipements industriels, optimisation des itinéraires
Registre Amazon QLDB Registre des changements immuable et cryptographiquement vérifiable Systèmes d'enregistrement, santé, chaînes d'approvisionnement, institutions financières

Étapes d'implémentation

  1. Comment les données sont-elles structurées (par exemple, non structurées, clé-valeur, semi-structurées, relationnelles) ?

    1. Si les données ne sont pas structurées, envisagez un stockage d'objets comme Amazon S3 ou une base de données NoSQL telle qu' Amazon DocumentDB.

    2. Pour les données clé-valeur, envisagez DynamoDB, ElastiCache for Redis ou MemoryDB.

    3. Si les données ont une structure relationnelle, quel niveau d'intégrité référentielle est requis ?

      1. Pour les contraintes de clé étrangère, les bases de données relationnelles comme Amazon RDS et Aurora peuvent fournir ce niveau d'intégrité.

      2. En règle générale, dans un modèle de données NoSQL, vous dénormalisez les données en un seul document ou en une collection de documents à récupérer en une seule requête au lieu de joindre des documents ou des tables. 

  2. La conformité ACID (atomicité, cohérence, isolement, durabilité) est-elle requise ?

    1. Si les propriétés ACID associées aux bases de données relationnelles sont requises, envisagez une base de données relationnelle comme Amazon RDS et Aurora.

  3. Quel modèle de cohérence est requis ?

    1. Si votre application peut tolérer une cohérence éventuelle, envisagez une implémentation NoSQL. Passez en revue les autres caractéristiques pour choisir la base de données NoSQL la plus appropriée.

    2. Si une cohérence forte est requise, vous pouvez utiliser des lectures fortement cohérentes avec DynamoDB ou une base de données relationnelle comme Amazon RDS.

  4. Quels formats de requête et de résultat doivent être pris en charge (par exemple, SQL, CSV, Parque, Avro, JSON, etc.) ?

  5. Quels types de données, tailles de champ et quantités globales sont présents (par exemple, texte, numérique, spatial, série temporelle calculée, binaire ou blob, document) ?

  6. Comment les exigences de stockage vont-elles évoluer au fil du temps ? Comment cela affectera-t-il l'évolutivité ?

    1. Les bases de données sans serveur comme DynamoDB et Amazon Quantum Ledger Database évoluent dynamiquement jusqu'à un stockage quasi illimité.

    2. Les bases de données relationnelles ont des limites supérieures sur le stockage alloué et doivent souvent être partitionnées horizontalement via des mécanismes tels que le partitionnement une fois qu'elles atteignent ces limites.

  7. Quelle est la proportion de requêtes en lecture par rapport aux requêtes en écriture ? La mise en cache pourrait-elle améliorer les performances ?

    1. Les charges de travail à lecture intensive peuvent bénéficier d'une couche de mise en cache, comme ElastiCache ou DAX, si la base de données est DynamoDB.

    2. Les lectures peuvent également être déchargées pour lire des réplicas avec des bases de données relationnelles comme Amazon RDS.

  8. Le stockage et la modification (OLTP - Online Transaction Processing) ou la récupération et le reporting (OLAP - Online Analytical Processing) ont-ils une priorité plus élevée ?

    1. Pour un traitement transactionnel à haut débit, envisagez une base de données NoSQL comme DynamoDB ou Amazon DocumentDB.

    2. Pour les requêtes analytiques, envisagez une base de données en colonnes comme Amazon Redshift ou exportez les données vers Amazon S3 et effectuez des analyses à l'aide d' Athena ou QuickSight.

  9. Ces données sont-elles sensibles et quel niveau de protection et de chiffrement nécessitent-elles ?

    1. Tous les moteurs Amazon RDS et Aurora prennent en charge le chiffrement des données au repos via AWS KMS. Microsoft SQL Server et Oracle prennent également en charge le chiffrement de données transparent (TDE) natif lors de l'utilisation de Amazon RDS.

    2. Pour DynamoDB, vous pouvez utiliser un contrôle d'accès précis avec IAM pour contrôler qui a accès à quelles données au niveau de la clé.

  10. Quel est le niveau de durabilité requis pour les données ?

    1. Aurora réplique automatiquement vos données sur trois zones de disponibilité au sein d'une région. Autrement dit, vos données sont très durables avec moins de risque de perte de données.

    2. DynamoDB est automatiquement répliqué sur plusieurs zones de disponibilité, assurant ainsi la haute disponibilité et la durabilité des données.

    3. Amazon S3 fournit une durabilité de 99,999999999 %. De nombreux services de base de données comme Amazon RDS et DynamoDB prennent en charge l'exportation de données vers Amazon S3 pour une conservation et un archivage à long terme.

  11. Les exigences d'objectif de temps de récupération (RTO) ou d'objectifs de point de récupération (RPO) ont-elles une incidence sur la solution ?

    1. Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB, et Neptune prennent tous en charge la récupération ponctuelle, ainsi que la sauvegarde et la restauration à la demande. 

    2. Pour les exigences de haute disponibilité, les tables DynamoDB peuvent être répliquées globalement à l'aide de la fonction de tables globales, et les clusters Aurora les clusters peuvent être répliqués sur plusieurs régions à l'aide de la fonction de base de données globale. De plus, les compartiments S3 peuvent être répliqués dans les Régions AWS à l'aide de la réplication entre régions. 

  12. Souhaitez-vous vous éloigner des moteurs de base de données commerciaux/des coûts de licence ?

    1. Envisagez des moteurs open source tels que PostgreSQL et MySQL sur Amazon RDS ou Aurora.

    2. Exploitez AWS DMS et AWS SCT pour passer des moteurs de bases de données commerciaux vers des moteurs open source.

  13. Qu'attendez-vous de la base de données du point de vue opérationnel ? Le passage aux services gérés est-il une préoccupation majeure ?

    1. L'utilisation de Amazon RDS au lieu d'Amazon EC2 et de DynamoDB ou d'Amazon DocumentDB au lieu de l'auto-hébergement d'une base de données NoSQL contribue à réduire les frais généraux opérationnels.

  14. Comment accédez-vous actuellement à la base de données ? S'agit-il uniquement d'un accès via une application, ou y a-t-il des utilisateurs BI et d'autres applications prêtes à l'emploi qui y sont connectées ?

    1. Si vous dépendez d'outils externes, vous devrez peut-être préserver la compatibilité avec les bases de données qu'ils prennent en charge. Amazon RDS est entièrement compatible avec les différentes versions de moteur qu'il prend en charge, notamment Microsoft SQL Server, Oracle, MySQL et PostgreSQL.

  15. Voici une liste de services de gestion de données potentiels et des cas d'utilisation les plus adaptés :

    1. Les bases de données relationnelles stockent des données avec des schémas prédéfinis et des relations mutuelles. Ces bases de données sont conçues pour prendre en charge les transactions ACID (atomicité, cohérence, isolation et durabilité) et maintenir l'intégrité référentielle et la cohérence des données. De nombreuses applications traditionnelles, la planification des ressources d'entreprise (ERP), la gestion de la relation client (CRM) et l'e-commerce utilisent des bases de données relationnelles pour stocker leurs données. Vous pouvez exécuter un grand nombre de ces moteurs de base de données sur Amazon EC2 ou choisir parmi l'un des services de base de données gérés par AWS : Amazon AuroraAmazon RDSet Amazon Redshift.

    2. Les bases de données de valeurs-clés sont optimisées pour les modèles d'accès courants, généralement pour stocker et récupérer de gros volumes de données. Ces bases de données fournissent des temps de réponse rapides, même en cas de volumes extrêmes de demandes simultanées. Les applications Web à trafic élevé, les systèmes d'e-commerce et les applications de jeu sont des cas d'utilisation typiques pour les bases de données de valeurs-clés. Dans AWS, vous pouvez utiliser Amazon DynamoDB, une base de données durable, multi-région et multi-maître entièrement gérée, dotée d'une sécurité intégrée, d'une sauvegarde et d'une restauration, ainsi que d'une mise en cache en mémoire pour les applications à l'échelle d'Internet.

    3. Les bases de données en mémoire sont utilisées pour les applications qui nécessitent un accès en temps réel aux données, la latence la plus faible et le débit le plus élevé. En stockant les données directement dans la mémoire, ces bases de données fournissent une latence en microsecondes aux applications pour lesquelles une latence en millisecondes n'est pas suffisante. Vous pouvez utiliser des bases de données en mémoire pour la mise en cache des applications, la gestion des sessions, les classements de jeux et les applications géospatiales. Amazon ElastiCache est un magasin de données en mémoire entièrement géré, compatible avec Redis ou Memcached. Dans le cas où les applications ont également des exigences de durabilité plus élevées, Amazon MemoryDB for Redis offre cela en combinaison avec un service de base de données en mémoire durable pour des performances ultra-rapides.

    4. Les bases de données de documents sont conçues pour stocker des données semi-structurées sous forme de documents de type JSON. Ces bases de données aident les développeurs à créer et mettre à jour rapidement des applications telles que la gestion de contenu, les catalogues et les profils utilisateur. Amazon DocumentDB est un service de base de données de documents rapide, évolutif, hautement disponible et entièrement géré, qui prend en charge les charges de travail MongoDB.

    5. Un magasin à colonnes larges est un type de base de données NoSQL. Il utilise des tables, des lignes et des colonnes, mais contrairement à une base de données relationnelle, les noms et le format des colonnes peuvent varier d'une ligne à l'autre dans la même table. Généralement, vous voyez un magasin de colonnes larges dans les applications industrielles à grande échelle pour la maintenance des équipements, la gestion des parcs et l'optimisation des itinéraires. Amazon Keyspaces (pour Apache Cassandra) est un service de base de données évolutif, hautement disponible et géré, compatible avec Apache Cassandra.

    6. Les bases de données de graphiques sont destinées aux applications qui doivent parcourir et interroger des millions de relations entre des ensembles de données graphiques hautement connectés avec une latence de millisecondes à grande échelle. De nombreuses entreprises utilisent des bases de données de graphiques pour la détection des fraudes, les réseaux sociaux et les moteurs de recommandation. Amazon Neptune est un service de base de données de graphiques rapide, fiable et entièrement géré qui facilite la création et l'exécution d'applications fonctionnant avec des ensembles de données hautement connectés.

    7. Les bases de données chronologiques collectent, synthétisent et extraient efficacement des informations à partir de données qui changent au fil du temps. Les applications IoT, les DevOps et la télémétrie industrielle peuvent utiliser des bases de données en séries chronologiques. Amazon Timestream est un service de base de données en séries chronologiques rapide, évolutif et entièrement géré pour l'IoT et les applications opérationnelles, qui facilite le stockage et l'analyse de milliards d'événements par jour.

    8. Les bases de données de registre fournissent une autorité centralisée et fiable pour conserver un enregistrement évolutif, immuable et vérifiable grâce au chiffrement des transactions pour chaque application. Il n'est pas rare de voir des bases de données de registre utilisées pour les systèmes d'enregistrement, la chaîne d'approvisionnement, les inscriptions et même les transactions bancaires. Amazon Quantum Ledger Database (Amazon QLDB) est une base de données de registre entièrement gérée qui fournit un journal des transactions transparent, immuable et vérifiable grâce au chiffrement appartenant à une autorité centrale de confiance. Amazon QLDB suit chaque modification des données d'application et tient à jour un historique complet et vérifiable des modifications au fil du temps.

Niveau d'effort du plan d'implémentation : Si une charge de travail passe d'une solution de de base de données à une autre, il peut y avoir un niveau d'effort élevé lors de la refactorisation des données et de l'application.  

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :