View a markdown version of this page

Pilier d’excellence opérationnelle - 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.

Pilier d’excellence opérationnelle

Le pilier de l'excellence opérationnelle du AWS Well-Architected Framework se concentre sur le fonctionnement et le suivi des systèmes, ainsi que sur l'amélioration continue des processus et des procédures. Cela inclut la capacité de soutenir le développement et d'exécuter efficacement les charges de travail, de mieux comprendre leur fonctionnement et d'améliorer en permanence les processus et procédures de support afin de créer de la valeur commerciale. Vous pouvez réduire la complexité opérationnelle grâce à des charges de travail autoréparables, qui détectent et corrigent la plupart des problèmes sans intervention humaine. Vous pouvez atteindre cet objectif en suivant les meilleures pratiques décrites dans cette section. Utilisez les métriques et les mécanismes Amazon Neptune pour réagir correctement lorsque votre charge de travail s'écarte du comportement attendu. APIs

Cette discussion sur le pilier de l'excellence opérationnelle met l'accent sur les domaines clés suivants :

  • Infrastructure en tant que code (IaC)

  • Gestion des modifications

  • Stratégies de résilience

  • Gestion des incidents

  • Rapports d'audit pour la conformité

  • Journalisation et surveillance

Automatisez le déploiement en utilisant une approche IaC

Les meilleures pratiques pour automatiser le déploiement sur Neptune à l'aide d'IaC sont les suivantes :

  • Appliquez l'infrastructure en tant que code (IaC) pour déployer des clusters Neptune dans la mesure du possible. Pour une configuration cohérente de l'environnement AWS Cloud Development Kit (AWS CDK), utilisez un AWS CloudFormationmodèle ou HashiCorp Terraform pour créer toutes les ressources requises pour votre cluster.

  • Automatisez les procédures opérationnelles de Neptune, telles que le redimensionnement des instances, l'ajout ou la suppression de répliques de lecture ou le basculement manuel sur des tables globales, dans la mesure du possible.

  • Stockez les chaînes de connexion en dehors de votre client. Utilisez des processus d'extraction, de transformation et de chargement (ETL) pour faciliter les stratégies de blue/green déploiement, la reprise après sinistre (DR) et les migrations vers de nouveaux clusters quasiment nuls. Les chaînes de connexion peuvent être stockées dans AWS Secrets ManagerAmazon DynamoDB ou dans n'importe quel emplacement où elles peuvent être modifiées dynamiquement.

  • Utilisez des balises pour ajouter des métadonnées à vos ressources Neptune et suivez leur utilisation en fonction des balises. Pour plus d'informations, consultez la section Marquage des ressources Amazon Neptune.

Effectuez des modifications fréquentes, mineures et réversibles

Les recommandations suivantes se concentrent sur de petites modifications réversibles afin de minimiser la complexité et de réduire le risque d'interruption de la charge de travail :

  • Stockez les modèles et les scripts IaC dans un service de contrôle de source, tel que GitHub ou GitLab.

    Important

    Ne stockez pas les AWS informations d'identification dans le contrôle de source.

  • Exigez que les déploiements iAc utilisent un service d'intégration et de livraison continues (CI/CD), tel que ou. AWS CodePipelineAWS CodeBuild Ces services compilent, testent et déploient du code dans un environnement hors production contenant un cluster Neptune éphémère avant d'avoir un impact sur votre cluster Amazon Neptune de production.

  • Testez les requêtes d'infrastructure et d'application dans un environnement inférieur avant de les déployer en production. Cela minimisera le risque d'interruption et contribuera à garantir qu'ils fonctionnent bien avec votre charge de travail et votre échelle.

Anticipez les défaillances

Une infrastructure autoréparante illustre l'excellence opérationnelle en anticipant les défaillances et en tentant de résoudre les problèmes sans intervention. Les recommandations suivantes vous aideront à atteindre cette maturité avec Neptune :

  • Créez un plan de surveillance qui utilise CloudWatch les métriques Amazon pour surveiller l'utilisation du processeur et de la mémoire de votre instance de base de données et comprendre les modèles d'utilisation. Créez des CloudWatch tableaux de bord et des alarmes pour les indicateurs clés et les réponses des clients Neptune figurant dans les journaux de vos applications. Pour plus d'informations sur les indicateurs d'utilisation élevée ou faible du processeur, consultez la section Utilisation CloudWatch pour surveiller les performances des instances de base de données dans Neptune dans la documentation de Neptune.

    Si vous rencontrez fréquemment out-of-memory des exceptions dans vos requêtes, pensez à réduire le nombre total de nœuds traversés par votre requête ou essayez d'utiliser une instance de la X2 famille, dont le RAM-to-CPU ratio est plus élevé.

  • Définissez des notifications pour surveiller l'état du cluster Neptune. Par exemple, BufferCacheHitRatio il doit être constamment élevé (supérieur à 99,9 %), alors qu'MainRequestQueuePendingRequestsil doit être constamment faible (idéalement 0, mais cela dépend de vos besoins et de votre tolérance de latence).

  • Envisagez d'utiliser des répliques de lecture pour atteindre une haute disponibilité au sein de Neptune. Vous devez disposer d'au moins deux répliques de lecture situées dans des zones de disponibilité différentes de celles de l'instance du rédacteur afin de garantir qu'une instance est toujours disponible pour répondre aux requêtes de lecture lors d'un événement de basculement.

  • Adaptez automatiquement les répliques de lecture en fonction des indicateurs d'utilisation. Pour plus d'informations, consultez Dimensionnement automatique du nombre de répliques dans un cluster de base de données Amazon Neptune.

  • Testez le basculement pour votre instance de base de données afin de connaître la durée du processus pour votre cas d'utilisation.

  • Si votre application doit survivre à une Région AWS panne complète, envisagez d'utiliser des bases de données mondiales dans le cadre de vos plans de reprise après sinistre.

Tirez les leçons de toutes les défaillances opérationnelles

Une infrastructure d'autoréparation est un effort à long terme qui se développe par itérations lorsque de rares problèmes surviennent ou que les réponses ne sont pas aussi efficaces que prévu. L'adoption des pratiques suivantes permet de se concentrer sur cet objectif :

  • Favorisez l'amélioration en tirant les leçons de tous les échecs.

  • Partagez ce que vous avez appris au sein des équipes et de l'organisation. Si plusieurs équipes d'une organisation utilisent Neptune, créez un salon de discussion ou un groupe d'utilisateurs commun pour partager les connaissances et les meilleures pratiques.

Utilisez les fonctionnalités de journalisation pour surveiller les activités non autorisées ou anormales

Pour observer des modèles de performance et d'activité anormaux, stockez les journaux dans Amazon CloudWatch Logs. Tenez compte des bonnes pratiques suivantes :

  • Activez la journalisation lente des requêtes. Consultez régulièrement le journal et déterminez pourquoi certaines requêtes sont lentes. Utilisez les points de terminaison d'explication et de profilage Neptune pour Gremlin, SPARQL ou OpenCypher pour mieux comprendre pourquoi ces requêtes sont lentes.

  • Activez les journaux d'audit Neptune et consultez-les régulièrement pour détecter tout accès non autorisé ou toute anomalie.

  • Si vous utilisez la journalisation lente des requêtes ou la journalisation des audits, activez la publication dans Logs. CloudWatch Cela vous évitera de manquer d'espace disque sur les instances. Les instances Neptune ont une capacité de stockage des journaux limitée et remplacent les anciens fichiers journaux lorsque l'espace des journaux est dépassé. CloudWatch Les journaux permettent de conserver les journaux à long terme. Les fonctionnalités de surveillance améliorées de CloudWatch Logs amélioreront votre capacité à interroger les journaux et à diagnostiquer les problèmes.

  • Pour améliorer les outils d'analyse de vos journaux d'audit, vous pouvez configurer un cluster de base de données Neptune pour publier les données des journaux d'audit dans un groupe de journaux dans CloudWatch Logs. Avec CloudWatch Logs, vous pouvez effectuer une analyse en temps réel des données du journal, l'utiliser CloudWatch pour créer des alarmes et afficher les métriques, et utiliser CloudWatch les journaux pour stocker vos enregistrements de journal dans un stockage hautement durable. Pour plus d'informations, consultez Publier les journaux Neptune sur Amazon CloudWatch Logs.

  • Neptune prend en charge la journalisation des actions du plan de contrôle à l'aide de. AWS CloudTrail Pour plus d'informations, consultez la section Journalisation des appels d'API Amazon Neptune avec. AWS CloudTrail