Comment puis-je résoudre des erreurs reçues concernant le canary CloudWatch défaillant que j'ai créé dans mon VPC ?

Lecture de 4 minute(s)
0

Mon canary Amazon CloudWatch dans un cloud privé virtuel (VPC) reçoit une erreur et échoue.

Brève description

La création d'un canary dans un VPC crée également une fonction AWS Lambda avec une interface réseau Elastic dans les sous-réseaux VPC spécifiés. Ces interfaces réseau Elastic ne possèdent pas d'adresse IP publique par défaut, même si elles sont ajoutées à des sous-réseaux publics. Pour pouvoir écrire des journaux sur Amazon Simple Storage Service (Amazon S3) et publier des points de données sur CloudWatch, le canary doit avoir accès aux points de terminaison suivants :

  • Point de terminaison Amazon S3
  • Point de terminaison CloudWatch Monitoring

Si votre canary ne parvient pas à accéder à l'un de ces points de terminaison, l'un des messages d'erreur suivants s'affiche :

  • TimeoutError : délai de navigation dépassé : 30 000 ms dépassés : cette erreur survient lorsqu'une réponse du point de terminaison surveillé dépasse le délai d'expiration configuré pour la méthode page.goto. Supposons, par exemple, que votre configuration soit « const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000}); ». Le délai d'expiration étant de 30 secondes, toute réponse supérieure à 30 secondes déclenchera cette erreur.
    -ou-
    Cette erreur survient lorsqu'un groupe de sécurité, une liste de contrôle d'accès (ACL) réseau ou une table de routage n'autorise pas l'accès au point de terminaison du canary.
  • Aucun résultat de test n'a été renvoyé. Le délai de connexion a expiré après 30 000 ms et aucun artefact n'a été chargé : Ces messages d'erreur surviennent lorsque votre canary n'a accès ni aux points de terminaison CloudWatch Monitoring ni aux points de terminaison Amazon S3. Si les métriques canary n'indiquent aucun point de données, cela signifie que votre canary n'a pas accès à CloudWatch Monitoring. Si les métriques canary indiquent des points de données, votre canary a accès à CloudWatch Monitoring, mais pas à Amazon S3. Il faut noter que la durée de 30 000 ms correspond au délai d'expiration configuré sur le canary.

Vous pouvez tester la connectivité Internet de votre canary à tout moment, grâce à l'analyseur d'accessibilité d'un VPC.

Résolution

Corriger des erreurs de type « délai d'expiration de navigation »

Vous devez vérifier que le groupe de sécurité associé au canary a les propriétés suivantes :

  • Il doit disposer d'une règle sortante qui autorise les connexions entre le port configuré et l'adresse IP du point de terminaison surveillé.
  • Il doit autoriser le trafic sortant vers le port 443. Veuillez noter que les points de terminaison Amazon S3 et CloudWatch Monitoring sont accessibles via HTTPS. Si nécessaire, ajoutez une règle de sortie en utilisant HTTPS (port TCP 443) pour le Type et 0.0.0.0/0 pour la Destination.
  • L'ACL réseau du sous-réseau canary doit autoriser les accès entrants et sortants.
    Pour l'accès entrant : autorisez les ports éphémères à accéder à l'adresse source et au port de l'adresse IP de votre point de terminaison. Autorisez également les ports éphémères à accéder à 0.0.0.0/0 pour le port 443.
    Pour l'accès sortant : autorisez l'accès à l'adresse de destination et au port de l'adresse IP de votre point de terminaison. Autorisez également l'accès de destination à 0.0.0.0/0 pour le port 443.
  • Vérifiez que la réponse de votre point de terminaison respecte le délai d'expiration configuré.

Pour connaître le temps de réponse de votre point de terminaison, exécutez la commande suivante :

time curl http/(s)://[your Endpoint IP/DNS]:Port

Dans le code canary, modifiez le délai d'expiration du signal de présence pour dépasser le temps de réponse de votre point de terminaison :

const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});

Correction des erreurs « Aucun artefact n'a été chargé » ou « Aucun résultat de test renvoyé »

Ajoutez le canary aux sous-réseaux privés avec 0.0.0.0/0 comme passerelle de traduction d'adresses réseau (NAT) ou instance NAT :

1.    Créez une passerelle NAT.

2.    Mettez à jour la table de routage du sous-réseau privé du canary. Pour en savoir plus sur l'utilisation de passerelles NAT comme destination dans une table de routage, reportez-vous à Routage vers un périphérique NAT.

-ou-

Ajoutez le canary à des sous-réseaux privés avec les points de terminaison d'un VPC pour Amazon S3 et CloudWatch Monitoring :

1.    Créez un point de terminaison de passerelle pour le point de terminaison Amazon S3.
Remarque : pour le nom du service, recherchez Amazon S3, puis sélectionnez com.amazonaws.region.s3.

2.    Créez un point de terminaison d'interface pour le point de terminaison CloudWatch Monitoring. Veillez à cocher la case Activer le nom DNS.
Remarque : pour le nom du service, recherchez Surveillance, puis sélectionnez com.amazonaws.[region].monitoring. Veillez à cocher la case Activer le nom DNS.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an