AWS Well-Architected
L'AWS Well-Architected Framework fournit des conseils pour construire des systèmes sur AWS. Il repose sur des piliers de conception pour évaluer et améliorer vos architectures cloud. Son objectif est d'aider à déployer des charges de travail fiables, sécurisées, efficaces et économiques.
Le Well-Architected Framework s'articule autour de plusieurs piliers fondamentaux. Ces piliers fournissent un ensemble de bonnes pratiques pour concevoir et opérer des systèmes fiables et efficaces sur AWS.
Excellence opérationnelle
Qu'est-ce que le pilier de l'excellence opérationnelle ?
Le pilier de l'excellence opérationnelle inclut la manière dont votre organisation soutient vos objectifs commerciaux, votre capacité à exécuter efficacement les charges de travail, à obtenir des informations sur leurs opérations et à améliorer en continu les processus et les procédures de support pour fournir de la valeur commerciale.
L'excellence opérationnelle est un engagement à construire correctement les logiciels tout en fournissant une excellente expérience client. Ce pilier se concentre sur l'organisation de votre équipe, la conception de votre charge de travail, son exploitation à grande échelle et son évolution au fil du temps.
Principes de conception
- Exécuter les opérations sous la forme de code : Appliquez la même discipline d'ingénierie que celle utilisée pour le code d'application à l'ensemble de l'environnement.
- Effectuer des modifications fréquentes, mineures et réversibles : Concevez des charges de travail évolutives et couplées faiblement pour permettre des mises à jour régulières des composants.
- Affiner régulièrement les procédures opérationnelles : Évaluez et améliorez les procédures opérationnelles en conséquence avec l'évolution des charges de travail.
- Anticiper les pannes : Effectuez des exercices « pre-mortem » pour identifier les causes possibles de défaillances et atténuez-les.
- Tirer des leçons de toutes les pannes opérationnelles : Apprenez des événements et pannes liés aux opérations et communiquez ce qui a été appris.
- Utiliser des services gérés : Réduisez la charge opérationnelle en utilisant des services AWS gérés.
- Mettre en œuvre l'observabilité pour obtenir des informations exploitables : Établissez des indicateurs de performance clés (KPI) et tirez parti de la télémétrie de l'observabilité.
Bonnes pratiques
- Organisation : Définissez clairement les responsabilités et les propriétaires des processus et des procédures.
- Préparation : Évaluez les besoins des clients externes et internes, ainsi que les exigences de gouvernance et de conformité.
- Exploitation : Automatisez les changements et répondez rapidement aux événements.
- Évolution : Encouragez l'expérimentation et maintenez les compétences des équipes.
Ces principes et pratiques aident à garantir que les opérations sont efficaces, fiables et peuvent s'adapter rapidement aux changements.
Fiabilité
Qu'est-ce que le pilier de la fiabilité ?
Le pilier de la fiabilité se concentre sur la performance des charges de travail pour réaliser leurs fonctions prévues et sur la manière de récupérer rapidement après une défaillance pour répondre aux demandes. Les sujets clés incluent la conception de systèmes distribués, la planification de la récupération et l'adaptation aux exigences changeantes.
Principes de conception pour la fiabilité
AWS Regions et Zones de Disponibilité
Lors de la conception d'une solution de base de données Amazon Relational Database Service (Amazon RDS), vous pouvez utiliser les Régions et Zones de Disponibilité AWS pour promouvoir la fiabilité. L'infrastructure mondiale AWS est construite autour des Régions et Zones de Disponibilité AWS. Au sein d'une Région, il y a plusieurs Zones de Disponibilité physiquement séparées et isolées. Vous pouvez concevoir votre base de données pour basculer automatiquement entre les Zones de Disponibilité sans interruption.
- Réplique synchrone d'une instance de base de données principale à une réplique de secours dans deux Zones de Disponibilité différentes.
Multi-AZ
Avec certains services de base de données AWS, comme Amazon RDS, vous pouvez déployer une base de données Multi-AZ. Dans ce cas, votre base de données principale sera synchronisée dans une autre Zone de Disponibilité au sein de la même Région. AWS choisira les Zones de Disponibilité pour vous. En cas d'échec de votre base de données principale, vous pouvez automatiquement basculer vers la base de données secondaire pour assurer la disponibilité de votre base de données.
Répliques de lecture
Un autre exemple de fiabilité dans l'architecture de base de données est la fonctionnalité de réplication intégrée pour créer une instance de base de données appelée réplique de lecture. Les répliques de lecture sont un excellent moyen de se dimensionner horizontalement pour une haute disponibilité dans les charges de travail à forte lecture. Les répliques de lecture sont copiées de manière asynchrone à partir de votre base de données principale. Vous pouvez diriger les requêtes de lecture vers la réplique de lecture pour alléger la charge sur une seule base de données.
- Réplication asynchrone d'une réplique de lecture dans deux Zones de Disponibilité différentes.
- Réplication asynchrone d'une réplique de lecture dans une autre Région.
Répliques interrégionales
Avec Amazon RDS, vous pouvez créer une réplique de lecture MariaDB, Aurora MySQL, MySQL, Oracle, ou PostgreSQL dans une Région différente de l'instance de base de données source. La création d'une réplique de lecture interrégionale n'est pas prise en charge pour SQL Server sur Amazon RDS. Cela garantit une haute disponibilité car, même si une Région entière subit une défaillance, vos clients auront toujours accès à votre base de données.
Tables globales
Une table globale est un ensemble de tables répliquées, toutes détenues par un seul compte AWS. Lorsque vous créez une table globale DynamoDB, elle se compose de plusieurs tables répliquées (une par Région) que DynamoDB traite comme une seule unité. Chaque réplique a le même nom de table et le même schéma de clé primaire. Lorsqu'une application écrite des données dans une table répliquée dans une Région, DynamoDB propage l'écriture aux autres tables répliquées dans les autres Régions automatiquement.
Les tables globales éliminent le travail difficile de la réplication des données entre les Régions et la résolution des conflits de mise à jour. De cette manière, vous pouvez vous concentrer sur la logique métier de votre application. De plus, avec les tables globales, vos applications restent hautement disponibles même en cas d'isolement ou de dégradation d'une Région entière.
Fenêtres de maintenance
Par défaut, AWS planifie la maintenance de vos bases de données à des moments prédéterminés. La maintenance peut concerner de nombreuses choses, mais elle est généralement liée à la réalisation des mises à jour des systèmes d'exploitation, des mises à jour des moteurs et des mises à niveau. Pendant ces périodes, votre base de données sera indisponible. Sachant cela, il est important de mettre à jour la fenêtre de maintenance de vos bases de données à un moment où elles peuvent être indisponibles, comme un point de ralentissement connu dans les affaires. Vous pouvez également empiler vos fenêtres de maintenance si vous avez plus d'une instance de base de données dans votre charge de travail, afin que les deux bases de données ne soient pas indisponibles en même temps.
Reprise après sinistre
Qu'est-ce qu'un sinistre ?
Dans le cadre de votre plan de continuité des activités, votre entreprise aide à définir des stratégies de reprise après sinistre, y compris un plan pour l'objectif de temps de récupération (RTO) et l'objectif de point de récupération (RPO). Cela s'appelle votre plan de continuité des activités (BCP) et devrait être le début de votre planification.
Les stratégies de récupération après sinistre disponibles dans AWS peuvent être largement catégorisées en quatre approches, allant du faible coût et de la faible complexité de la sauvegarde à des stratégies plus complexes utilisant plusieurs Régions actives. Il est essentiel de tester régulièrement votre stratégie de récupération après sinistre afin d'avoir confiance en son invocation, si cela devient nécessaire.
Stratégies de reprise après sinistre
Backup and Restore
Description : Cette méthode consiste à effectuer des sauvegardes régulières de vos données et configurations et à les restaurer en cas de sinistre.
Avantages : Faible coût et complexité.
Inconvénients : Temps de récupération plus long car les données doivent être restaurées.
Pilot Light
Description : Une version minimale des services essentiels est en veille dans une autre région AWS. En cas de sinistre, ces services peuvent être rapidement augmentés pour reprendre l'activité.
Avantages : Coût intermédiaire et capacité de redémarrage rapide.
Inconvénients : Nécessite une certaine gestion continue des services en veille.
Warm Standby
Description : Une version réduite mais pleinement fonctionnelle de votre environnement est maintenue et prête à être rapidement redimensionnée en cas de sinistre.
Avantages : Temps de récupération plus rapide qu'avec la méthode Pilot Light.
Inconvénients : Coût plus élevé dû à la maintenance d'un environnement semi-actif.
Multi-Site (Active/Active)
Description : Plusieurs environnements actifs sont maintenus dans différentes régions. Si un site tombe en panne, les autres prennent le relais sans interruption de service.
Avantages : Temps de récupération quasi nul car tous les sites sont actifs.
Inconvénients : Coût élevé et complexité de gestion accrue.
Chacune de ces méthodes a ses propres avantages et inconvénients en fonction de vos besoins et de votre budget.
Backup and Restore :
Vos données de charge de travail nécessiteront une stratégie de sauvegarde qui s'exécute périodiquement ou en continu. La fréquence de vos sauvegardes déterminera votre point de récupération réalisable (qui doit correspondre à votre objectif de point de récupération - RPO). La sauvegarde doit également offrir un moyen de la restaurer à l'état où elle a été effectuée. La sauvegarde avec récupération à un point dans le temps (PITR) est disponible via les services et ressources de base de données suivants :
- Sauvegarde DynamoDB
- Snapshot Amazon RDS
- Snapshot Aurora DB
- Snapshot Amazon Redshift
- Snapshot Amazon Neptune
Pilot Light :
Pour le pilot light, la réplication continue des données vers des bases de données en direct et des magasins de données dans la région de récupération après sinistre est la meilleure approche pour un faible RPO. AWS fournit une réplication continue et asynchrone des données entre régions pour les données en utilisant les services et ressources suivants :
- Réplicas de lecture Amazon RDS
- Tables globales Aurora
- Tables globales DynamoDB
Warm Standby :
Tous les services AWS couverts par les stratégies de sauvegarde et de restauration et par le pilot light sont également utilisés dans le warm standby pour la sauvegarde des données, la réplication des données, le routage du trafic actif/veille et le déploiement de l'infrastructure, y compris les instances Amazon Elastic Compute Cloud (Amazon EC2). AWS Auto Scaling est utilisé pour mettre à l'échelle les ressources, y compris les instances EC2, les tâches Amazon Elastic Container Service (Amazon ECS), le débit de DynamoDB et les réplicas Aurora au sein d'une région AWS. Amazon EC2 Auto Scaling met à l'échelle le déploiement des instances EC2 dans les zones de disponibilité d'une région, offrant ainsi une résilience au sein de cette région. Utilisez l'auto scaling pour étendre votre région de récupération après sinistre à une capacité de production complète, dans le cadre d'une stratégie de pilot light ou de warm standby.
Multi-Site (Active/Active) :
Tous les services AWS couverts par les stratégies de sauvegarde et de restauration, pilot light et warm standby sont également utilisés pour le multi-site actif/actif pour la sauvegarde des données à un instant donné, la réplication des données, le routage du trafic actif/actif, ainsi que le déploiement et la mise à l'échelle de l'infrastructure, y compris les instances EC2.
Performance Efficiency
Le pilier de l'efficacité de la performance
Le pilier de l'efficacité de la performance dans le cadre AWS Well-Architected se concentre sur l'allocation efficace et l'utilisation des ressources informatiques pour répondre aux besoins de votre charge de travail. Il s'agit de choisir les bonnes ressources, de surveiller leur performance et de s'adapter aux besoins changeants de l'entreprise pour maintenir l'efficacité.
Sujets clés :
- Optimisation des ressources : Sélection des types et tailles de ressources appropriés en fonction des besoins de la charge de travail.
- Surveillance de la performance : Surveillance continue de la performance de vos ressources.
- Scalabilité : Assurer que votre architecture peut gérer la croissance et les variations de la demande.
- Adaptabilité : Garantir que votre système peut s'adapter aux exigences changeantes sans compromettre l'efficacité.
Principes de conception de l'efficacité de la performance :
- Démocratiser les technologies avancées : Faciliter l'adoption des technologies complexes.
- Aller global en quelques minutes : Utiliser les régions AWS pour distribuer rapidement les ressources à l'échelle mondiale.
- Utiliser des architectures sans serveur : Tirer parti des solutions sans serveur pour éliminer la gestion de l'infrastructure.
- Expérimenter plus souvent : Utiliser la flexibilité d'AWS pour essayer de nouvelles fonctionnalités et améliorations.
- Sympathie mécanique : Utiliser les technologies et architectures qui correspondent le mieux à votre charge de travail.
Concevoir des solutions de bases de données pour l'efficacité de la performance
Comprendre les caractéristiques des données
Déterminez si votre charge de travail nécessite des transactions, comment elle interagit avec les données et quelles sont ses exigences en matière de performance. Utilisez ces données pour sélectionner l'approche de base de données offrant les meilleures performances pour votre charge de travail.
Vous pouvez choisir parmi de nombreux moteurs de base de données spécialisés, notamment les bases de données relationnelles, clé-valeur, document, en mémoire, graphique, en série temporelle et de grand livre. En choisissant la meilleure base de données pour résoudre un problème spécifique (ou un groupe de problèmes), vous pouvez vous libérer des bases de données monolithiques restrictives à taille unique et vous concentrer sur la création d'applications répondant aux besoins de vos clients.
Évaluer les offres spécifiques de bases de données
Prenez des décisions éclairées lors de la conception et de la planification de vos solutions de bases de données. Prenez le temps d'évaluer les services et les options de stockage disponibles. Explorez les options de configuration disponibles pour optimiser les performances de votre base de données. Cela inclut des stratégies pour mettre en œuvre des IOPS provisionnés, des ressources mémoire et de calcul, la scalabilité et la mise en cache.
Collecter et enregistrer les métriques de performance des bases de données
Utilisez des outils tels que CloudWatch Logs et d'autres qui enregistrent les mesures de performance liées aux bases de données. Par exemple, mesurez les transactions par seconde, les requêtes lentes ou la latence du système introduite lors de l'accès à la base de données. Utilisez ces données pour comprendre la performance de vos systèmes de bases de données.
Choisir le stockage des données en fonction des schémas d'accès
Utilisez les schémas d'accès de votre charge de travail pour sélectionner les services et technologies appropriés. Par exemple, utilisez une base de données relationnelle pour les charges de travail nécessitant des transactions. La mise en œuvre d'un magasin clé-valeur offrira un débit plus élevé avec une cohérence éventuelle.
Optimiser le stockage des données en fonction des schémas d'accès
Vos schémas d'accès et métriques guideront également les décisions de performance pour optimiser la façon dont les données sont stockées ou interrogées. Mesurez comment les optimisations telles que l'indexation, la distribution des clés, la conception de l'entrepôt de données ou les stratégies de mise en cache impactent la performance du système et l'efficacité globale.
Pilier de l'optimisation des coûts
Le pilier de l'optimisation des coûts se concentre sur l'évitement des coûts inutiles. Les sujets clés incluent la compréhension des dépenses au fil du temps et le contrôle de l'allocation des fonds, la sélection des ressources du bon type et en quantité adéquate, et la mise à l'échelle pour répondre aux besoins de l'entreprise sans dépasser les dépenses.
Mettre en œuvre la gestion financière du Cloud
Pour réussir financièrement et accélérer la réalisation de la valeur commerciale dans le cloud, vous devez investir dans la gestion financière du cloud. Votre organisation doit consacrer le temps et les ressources nécessaires à la construction de capacités dans ce nouveau domaine de la technologie et de la gestion de l'utilisation. Comme pour vos capacités de sécurité ou d'opérations, vous devez développer des compétences par le biais de la formation, des programmes, des ressources et des processus pour vous aider à devenir une organisation efficiente en termes de coûts.
Adopter un modèle de consommation
Payez uniquement pour les ressources informatiques que vous consommez et augmentez ou diminuez leur utilisation en fonction des besoins de l'entreprise. Par exemple, les environnements de développement et de test sont généralement utilisés seulement 8 heures par jour pendant la semaine de travail. Vous pouvez arrêter ces ressources lorsqu'elles ne sont pas utilisées pour réaliser des économies potentielles de 75 % (40 heures comparées à 168 heures).
Mesurer l'efficacité globale
Mesurez le résultat commercial de la charge de travail et les coûts associés à sa livraison. Utilisez ces données pour comprendre les gains que vous réalisez en augmentant la production, en augmentant les fonctionnalités et en réduisant les coûts.
Éliminer les dépenses superflues liées aux opérations de base non différenciées
AWS s'occupe des opérations lourdes des centres de données, telles que le montage en rack, l'empilage et l'alimentation des serveurs. Il élimine également la charge opérationnelle de la gestion des systèmes d'exploitation et des applications grâce à des services gérés. Cela vous permet de vous concentrer sur vos clients et vos projets commerciaux au lieu de vous occuper de l'infrastructure informatique.
Le pilier de durabilité
Le pilier de durabilité se concentre sur la minimisation des impacts environnementaux de l'exécution des charges de travail dans le cloud. Les sujets clés incluent un modèle de responsabilité partagée pour la durabilité, la compréhension des impacts et la maximisation de l'utilisation pour minimiser les ressources nécessaires et réduire les impacts en aval.
Principes de conception de durabilité
Comprendre votre impact
Mesurez l'impact de votre charge de travail cloud et modélisez l'impact futur de votre charge de travail. Incluez toutes les sources d'impact, y compris celles résultant de l'utilisation de vos produits par les clients et celles résultant de leur éventuel déclassement et retrait. Comparez la production productive avec l'impact total de vos charges de travail cloud en examinant les ressources et les émissions nécessaires par unité de travail. Utilisez ces données pour établir des indicateurs clés de performance (KPI), évaluer les moyens d'améliorer la productivité tout en réduisant l'impact, et estimer l'impact des changements proposés au fil du temps.
Établir des objectifs de durabilité
Pour chaque charge de travail cloud, établissez des objectifs de durabilité à long terme tels que la réduction des ressources de calcul et de stockage requises par transaction. Modélisez le retour sur investissement des améliorations de durabilité pour les charges de travail existantes et donnez aux propriétaires les ressources dont ils ont besoin pour investir dans les objectifs de durabilité. Planifiez la croissance et concevez vos charges de travail de manière à ce que la croissance entraîne une réduction de l'intensité de l'impact mesurée par unité appropriée, telle que par utilisateur ou par transaction. Les objectifs vous aident à soutenir les objectifs de durabilité plus larges de votre entreprise ou organisation, à identifier les régressions et à prioriser les domaines potentiels d'amélioration.
Optimiser l'utilisation
Ajustez les charges de travail à la bonne taille et mettez en œuvre une conception efficace pour garantir une haute utilisation et maximiser l'efficacité énergétique du matériel sous-jacent. Deux hôtes fonctionnant à 30 % d'utilisation sont moins efficaces qu'un hôte fonctionnant à 60 %, en raison de la consommation d'énergie de base par hôte. En même temps, éliminez ou minimisez les ressources, les traitements et le stockage inactifs pour réduire l'énergie totale nécessaire à l'alimentation de votre charge de travail.
Anticiper et adopter les nouvelles offres matérielles et logicielles plus efficaces
Soutenez les améliorations en amont que vos partenaires et fournisseurs apportent pour vous aider à réduire l'impact de vos charges de travail cloud. Surveillez et évaluez continuellement les nouvelles offres matérielles et logicielles plus efficaces. Concevez pour la flexibilité afin de permettre une adoption rapide des nouvelles technologies efficaces.
Utiliser des services gérés
Partager des services sur une large base de clients permet de maximiser l'utilisation des ressources, ce qui réduit la quantité d'infrastructure nécessaire pour prendre en charge les charges de travail cloud. Par exemple, les clients peuvent partager l'impact des composants courants des centres de données tels que l'alimentation et le réseau en migrant les charges de travail vers le cloud AWS et en adoptant des services gérés.
Security
Qu'est-ce que le pilier de la sécurité ?
Le pilier de la sécurité se concentre sur la protection des informations et des systèmes. Les sujets clés comprennent la confidentialité et l'intégrité des données, la gestion des permissions des utilisateurs, et l'établissement de contrôles pour détecter les événements de sécurité.
Implement a strong identity foundation
Implémentez le principe du moindre privilège et appliquez la séparation des tâches avec des autorisations appropriées pour chaque interaction avec vos ressources AWS. Centralisez la gestion des identités et visez à éliminer la dépendance aux informations d'identification statiques à long terme.
Modèle de responsabilité partagée
La sécurité fait partie du modèle de responsabilité partagée. En tant que client, vous êtes responsable de la sécurité dans le cloud, tandis qu'AWS est responsable de la sécurité du cloud. Le service cloud sélectionné par le client détermine les options de configuration requises. Lors de la sécurisation de votre solution de base de données ou de tout service AWS, AWS Identity and Access Management (IAM) est une fonctionnalité disponible dans votre compte