Configurations de rapports d'expérimentation pour AWS FIS - AWS Service d'injection de défauts

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.

Configurations de rapports d'expérimentation pour AWS FIS

Vous pouvez activer le service d'injection de AWS défauts (FIS) pour générer des rapports pour les expériences, ce qui facilite la production de preuves des tests de résilience. Le rapport de test est un document PDF qui résume les actions du test et capture éventuellement la réponse de l'application à partir d'un CloudWatch tableau de bord que vous spécifiez. Pour voir un exemple de rapport d'expérience, téléchargez le fichier zip ici.

Pour activer et configurer le contenu du rapport généré pour l'expérience, vous définissez la configuration du rapport d'expérience pour le modèle d'expérience. Lorsque vous spécifiez un CloudWatch tableau de bord, AWS FIS inclut un graphique instantané de tous les widgets du tableau de bord donné, annoté avec les heures de début et de fin de l'expérience sur une durée que vous spécifiez, comme indiqué dans l'exemple ci-dessous.

Cet exemple illustre l'impact d'une expérience de perte de paquets dans une zone de disponibilité (AZ). Lorsque la perte de paquets est introduite dans la zone AZ use1-az6, le trafic passe de use1-az6 à use1-az4, de sorte que le nombre d'octets traités par l'équilibreur de charge dans cette zone de zone diminue.

Two graphs showing contrasting ProcessedBytes trends for load balancers in different availability zones.

À la fin de l'expérience, le rapport peut être téléchargé depuis la console AWS FIS et est également stocké dans un compartiment Amazon S3. Si vous incluez un CloudWatch tableau de bord dans la configuration de votre rapport, des images de chaque widget sont également fournies. Aucun rapport n'est généré pour les tests exécutés cancelled ou exécutés dans le cadre de l'aperçu de la cible (avec ActionsMode défini sur). skip-all Une fois que l'expérience dépasse la limite de conservation des données de l'expérience, le rapport ne sera disponible que depuis le compartiment Amazon S3. AWS Des frais de la FIS s'appliquent pour chaque rapport fourni, à l'exception de ceux qui échouent en raison d'erreurs internes. Pour plus d'informations, consultez les sections Tarification du service d'injection de AWS défauts etQuotas et limites pour le service d'injection de AWS défauts. Des frais d'ingestion et de stockage pour Amazon S3 ainsi que des frais CloudWatch d'API pour GetMetricWidgetImageles GetDashboarddemandes peuvent s'appliquer. Pour plus d'informations, consultez la section Tarification et CloudWatch tarification d'Amazon S3.

Syntaxe de configuration du rapport d'expérimentation

Voici la syntaxe de la configuration du rapport d'expérience, une section facultative du modèle d'expérience.

{ "experimentReportConfiguration": { "outputs": { "s3Configuration": { "bucketName": "my-bucket-name", "prefix": "report-storage-prefix" } }, "dataSources": { "cloudWatchDashboards": [ { "dashboardIdentifier": "arn:aws:cloudwatch::123456789012:dashboard/MyDashboard" } ] }, "preExperimentDuration": "PT20M", "postExperimentDuration": "PT20M" } }

À l'aide duexperimentReportConfiguration, vous pouvez personnaliser la destination de sortie, les données d'entrée et les fenêtres temporelles pour les données à inclure dans le rapport d'expérience, ce qui peut vous aider à mieux comprendre l'impact et les résultats de vos expériences AWS FIS. Lorsque vous définissez la configuration du rapport d'expérimentation, vous fournissez les informations suivantes :

outputs

Section du experimentReportConfiguration qui indique où le rapport d'expérience sera livré. Dansoutputs, vous spécifiez le s3Configuration en fournissant les informations suivantes :

  • bucketName- Le nom du compartiment Amazon S3 dans lequel le rapport sera stocké. Le seau doit se trouver dans la même région que l'expérience.

  • prefix(Facultatif) - Un préfixe dans le compartiment Amazon S3 dans lequel le rapport sera stocké. Ce champ est vivement recommandé afin de limiter l'accès au préfixe uniquement.

Sources de données

Section facultative experimentReportConfiguration qui spécifie les sources de données supplémentaires qui seront incluses dans le rapport d'expérience.

  • cloudWatchDashboards- Un tableau de CloudWatch bord qui sera inclus dans le rapport. Limité à un CloudWatch tableau de bord.

  • dashboardIdentifier- L'ARN du CloudWatch tableau de bord. Des graphiques instantanés de chaque widget du type metric indiqué dans ce tableau de bord seront inclus dans le rapport, à l'exception des statistiques interrégionales.

preExperimentDuration

Section facultative experimentReportConfiguration qui définit la durée préalable à l'expérience pour les mesures du CloudWatch tableau de bord à inclure dans le rapport, jusqu'à 30 minutes. Il doit s'agir d'une période qui représente l'état d'équilibre de votre application. Par exemple, une durée préalable à l'expérience de 5 minutes signifie que les graphiques instantanés incluront des mesures 5 minutes avant le début de l'expérience. Le format de la durée est ISO 8601 et la valeur par défaut est de 20 minutes.

postExperimentDuration

Section facultative experimentReportConfiguration qui définit la durée post-expérience pour les mesures du CloudWatch tableau de bord à inclure dans le rapport, jusqu'à 2 heures. Il doit s'agir d'une durée qui représente l'état d'équilibre ou la période de rétablissement de votre application. Par exemple, si vous spécifiez une durée post-expérience de 5 minutes, les graphiques instantanés incluront des mesures jusqu'à 5 minutes après la fin de l'expérience. Le format de la durée est ISO 8601 et la valeur par défaut est de 20 minutes.

Autorisations relatives aux rapports d'expérimentation

Pour permettre à AWS FIS de générer et de stocker le rapport d'expérience, vous devez autoriser les opérations suivantes à partir de votre rôle IAM d'expérience AWS FIS :

  • cloudwatch:GetDashboard

  • cloudwatch:GetMetricWidgetImage

  • s3:GetObject

  • s3:PutObject

Nous vous recommandons de suivre les meilleures pratiques en matière de AWS sécurité et de limiter le rôle de test au compartiment et au préfixe. Voici un exemple de déclaration de politique qui restreint l'accès au rôle d'essai.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::my-experiment-report-bucket/my-prefix/*", "Effect": "Allow" }, { "Action": [ "cloudwatch:GetDashboard" ], "Resource": "arn:aws:cloudwatch::012345678912:dashboard/my-experiment-report-dashboard", "Effect": "Allow" }, { "Action": [ "cloudwatch:GetMetricWidgetImage" ], "Resource": "*", "Effect": "Allow" } ] }

Autorisations supplémentaires pour les rapports transmis aux compartiments Amazon S3 chiffrés à l'aide de clés gérées par le client (CMK)

Si le compartiment Amazon S3 que vous spécifiez S3Configuration est chiffré avec CMK, vous devez accorder les autorisations supplémentaires suivantes au rôle d'expérience FIS dans votre politique de clés KMS :

  • kms:GenerateDataKey

  • kms:Decrypt

Voici un exemple de déclaration de politique clé KMS qui autorise le rôle d'expérience FIS à écrire des rapports dans des compartiments chiffrés :

{ "Sid": "Allow FIS experiment report", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::012345678912:role/FISExperimentRole", ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Meilleures pratiques en matière de rapports d'expérimentation

Les meilleures pratiques relatives à l'utilisation de la configuration du rapport d'expérimentation AWS FIS sont les suivantes :

  • Avant de commencer une expérience, générez un aperçu de la cible pour vérifier que votre modèle d'expérience est configuré comme prévu. L'aperçu des cibles vous donnera des informations sur les cibles attendues de votre expérience. Pour en savoir plus, consultez Génération d'un aperçu de la cible à partir d'un modèle d'expérience.

  • Le rapport ne doit pas être utilisé pour résoudre les problèmes liés à l'échec des expériences. Utilisez plutôt les journaux d'expériences pour résoudre les erreurs d'expérimentation. Nous vous recommandons de vous fier au rapport uniquement pour les expériences que vous avez déjà effectuées et que vous avez terminées avec succès.

  • Limitez l'attribution du rôle IAM à l'expérience et accédez aux objets au compartiment et au préfixe de destination S3. Nous vous recommandons de dédier le préfixe bucket/uniquement aux rapports d'expérimentation AWS FIS et de ne pas autoriser d'autres AWS services à accéder à ce bucket et à ce préfixe.

  • Utilisez Amazon S3 Object Lock pour empêcher la suppression ou le remplacement du rapport pendant une durée déterminée ou indéfiniment. Pour en savoir plus, consultez la section Verrouillage d'objets avec Object Lock.

  • Si votre CloudWatch tableau de bord se trouve dans un compte distinct au sein de la même région, vous pouvez utiliser CloudWatch l'observabilité entre comptes pour activer votre compte AWS FIS orchestrator en tant que compte de surveillance et le compte distinct en tant que compte source depuis la CloudWatch console ou les commandes Observability Access Manager dans l'API and. AWS CLI Pour en savoir plus, consultez la CloudWatch section Observabilité entre comptes.