PERF03-BP01 Utilisation d’un magasin de données dédié particulièrement adapté à vos besoins en matière de stockage des données et d’accès aux données - Framework AWS Well-Architected

PERF03-BP01 Utilisation d’un magasin de données dédié particulièrement adapté à vos besoins en matière de stockage des données et d’accès aux données

Comprenez les caractéristiques des données (telles que la possibilité de partage, la taille, la taille du cache, les modèles d’accès, la latence, le débit et la persistance des données) afin de sélectionner les magasins de données dédiés (stockage ou base de données) adaptés à votre charge de travail.

Anti-modèles courants :

  • Vous vous en tenez à un magasin de données, car l’équipe interne sait comment tirer parti de ce type de solution en particulier.

  • Vous partez du principe que toutes les charges de travail ont des exigences similaires en termes de stockage de données et d’accès aux données.

  • Vous n’avez pas implémenté de catalogue de données pour inventorier vos ressources de données.

Avantages liés au respect de cette bonne pratique : en comprenant l’importance des caractéristiques et des exigences des données, vous pouvez déterminer la technologie de stockage la plus efficace et la plus performante adaptée à vos besoins en matière de charge de travail.

Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : élevé

Directives d’implémentation

Lors de la sélection et de la mise en œuvre du stockage des données, assurez-vous que les caractéristiques d’interrogation, de mise à l’échelle et de stockage répondent aux exigences en matière de données de charge de travail. AWS fournit de nombreuses technologies de stockage de données et de base de données, notamment le stockage par blocs, le stockage d’objets, le stockage en continu, le système de fichiers et les bases de données relationnelles, clé-valeur, document, en mémoire, orientées graphe, 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. En comprenant les caractéristiques et les exigences des données, vous pouvez vous affranchir de la technologie de stockage monolithique et des approches restrictives et universelles pour vous concentrer sur la gestion appropriée des données.

Étapes d’implémentation

  • Procédez à l’inventaire des différents types de données qui existent dans votre charge de travail.

  • Comprenez et documentez les caractéristiques et les exigences des données, notamment :

    • Type de données (non structurées, semi-structurées, relationnelles)

    • Volume et croissance des données

    • Durabilité des données : persistantes, éphémères, temporaires

    • Exigences ACID (atomicité, cohérence, isolement, durabilité)

    • Modèles d’accès aux données (à lecture intensive ou à écriture intensive)

    • Latence

    • Débit

    • IOPS (opérations d’entrée/sortie par seconde)

    • Période de conservation des données

  • Découvrez les différents magasins de données (services de stockage et de base de données) disponibles pour votre charge de travail sur AWS qui peuvent répondre à vos caractéristiques de données, comme indiqué dans PERF01-BP01 Découverte et compréhension des services et fonctionnalités cloud disponibles. Voici quelques exemples de technologies de stockage AWS et leurs principales caractéristiques :

    Type Services AWS Principales caractéristiques
    Stockage d’objets Amazon S3 Capacité de mise à l’échelle illimitée, haute disponibilité et plusieurs options d’accessibilité. Le transfert et l’accès à des objets à l’intérieur et à l’extérieur d’Amazon S3 peuvent utiliser un service, tel que Transfer Acceleration ou Access Points (points d’accès), pour répondre à votre localisation, à vos besoins en matière de sécurité et à vos modèles d’accès.
    Archivage et stockage Amazon S3 Glacier Conçu pour l’archivage des données.
    Stockage en streaming

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    Ingestion et stockage efficaces des données de streaming.
    Système de fichiers partagé

    Amazon Elastic File System (Amazon EFS)

    Système de fichiers montable auquel plusieurs types de solutions informatiques peuvent accéder.

    Système de fichiers partagé Amazon FSx Créé sur les dernières solutions de calcul AWS pour prendre en charge quatre systèmes de fichiers fréquemment utilisés : NetApp ONTAP, OpenZFS, Windows File Serve et Lustre. La latence, le débit et l’IOPS d’Amazon FSx varient par système de fichiers et doivent être pris en compte lorsque vous sélectionnez le système de fichiers adapté aux besoins de vos charges de travail.
    Stockage en mode bloc Amazon Elastic Block Store (Amazon EBS) Service de stockage en blocs évolutif et à hautes performances conçu pour Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS inclut un stockage SSD pour les charges de travail transactionnelles intensives en IOPS et un stockage sur disque dur pour les charges de travail gourmandes en débit.
    Base de données relationnelle Amazon Aurora, Amazon RDS, Amazon Redshift 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.
    Base de données clé-valeur Amazon DynamoDB 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. 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.
    Base de données documentaire Amazon DocumentDB 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. 
    Base de données en mémoire Amazon ElastiCache, Amazon MemoryDB for Redis 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é. Vous pouvez utiliser des bases de données en mémoire pour la mise en cache des applications, la gestion des sessions, les classements des jeux, le magasin de fonctionnalités ML à faible latence, le système de messagerie à microservices et un mécanisme de streaming à haut débit
    Base de données orientée graphe Amazon Neptune Destinées aux applications qui doivent parcourir et interroger des millions de relations entre des jeux 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.
    Base de données de séries temporelles Amazon Timestream Utilisées pour collecter, synthétiser et extraire 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 de séries temporelles.
    Larges colonnes Amazon Keyspaces (pour Apache Cassandra) 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. 
    Registre Amazon Quantum Ledger Database (Amazon QLDB) Fournit 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.  
  • Si vous construisez une plateforme de données, tirez parti d’une architecture de données moderne sur AWS pour intégrer votre lac de données, votre entrepôt de données et vos magasins de données spécifiques.

  • Les principales questions que vous devez vous poser lors du choix d’un magasin de données pour votre charge de travail sont les suivantes :

    Question Éléments à prendre en compte
    Comment sont structurées les données ?
    Quel niveau d’intégrité référentielle est requis ?
    • En ce qui concerne les contraintes liées aux clés étrangères, les bases de données relationnelles telles qu’Amazon RDS et Aurora peuvent fournir ce niveau d’intégrité.

    • 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. 

    La conformité ACID (atomicité, cohérence, isolement, durabilité) est-elle requise ?
    • 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.

    • Si une cohérence forte est requise pour une base de données NoSQL, vous pouvez utiliser des lectures fortement cohérentes avec DynamoDB.

    Comment les exigences de stockage vont-elles évoluer au fil du temps ? Comment cela affectera-t-il la capacité de mise à l’échelle ?
    • Les bases de données sans serveur telles que DynamoDB et Amazon Quantum Ledger Database (Amazon QLDB) se mettront à l’échelle de manière dynamique.

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

    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 ?
    • Les charges de travail lourdes en lecture peuvent bénéficier d’une couche de mise en cache, comme ElastiCache ou DAX si la base de données est DynamoDB.

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

    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 ?
    Quel est le niveau de durabilité requis pour les données ?
    • 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.

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

    • Amazon S3 offre une durabilité de 99,999999999 %. De nombreux services de base de données, tels que Amazon RDS et DynamoDB, prennent en charge l’exportation des données vers Amazon S3 pour une conservation et un archivage à long terme.

    Souhaitez-vous vous éloigner des moteurs de base de données commerciaux ou des coûts de licence ?
    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 ?
    • L’utilisation d’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.

    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 ?
    • Si vous dépendez d’outils externes, vous devrez peut-être maintenir la compatibilité avec les bases de données qu’ils prennent en charge. Amazon RDS est entièrement compatible avec les différentes versions du moteur qu’il prend en charge, notamment Microsoft SQL Server, Oracle, MySQL et PostgreSQL.

  • Réalisez des tests et procédez au benchmarking dans un environnement hors production afin d’identifier le magasin de données qui peut répondre à vos exigences en termes de charge de travail.

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :