Comment obtenir des métriques d'Amazon CloudWatch qui affichent le débit EBS de mon instance EC2, puis configurer une alarme qui m'avertit lorsque l'instance EC2 atteint la limite de débit ?

Lecture de 3 minute(s)
0

Comment obtenir des métriques d'Amazon CloudWatch qui présentent le débit d'agrégation Amazon Elastic Block Store (Amazon EBS) de mon instance Amazon Elastic Compute Cloud (Amazon EC2) ? En outre, comment puis-je alors configurer une alarme qui m'informe lorsque l'instance EC2 atteint la limite de débit ?

Brève description

Il n'y a aucune métrique Amazon EBS native qui suit le débit EBS d'une instance Amazon EC2 basée sur Xen dans CloudWatch. Cependant, vous pouvez utiliser le script EC2EBSThroughput/ebs-stats.sh pour mesurer le débit EBS d'agrégation de votre instance EC2.

Le script récupère le nombre total d'octets en lecture/écriture par seconde pour tous les volumes attachés, puis transmet le débit en tant que métrique à Amazon CloudWatch. Vous pouvez consulter ces métriques dans la console Amazon CloudWatch et définir une alarme qui se déclenche en fonction d'un seuil que vous spécifiez.

Remarque : les instances EC2 basées sur AWS Nitro conçues avec une fonctionnalité de rafale d'instance optimisée pour Amazon EBS incluent les métriques CloudWatch EBSIOBalance% et EBSByteBalance%. Ces métriques sont disponibles pour certaines tailles d'instance qui atteignent leurs performances maximales pendant 30 minutes au moins une fois toutes les 24 heures. Pour obtenir la liste complète des types d'instances applicables, consultez la section Types d'instances pris en charge.

Le script ebs-stats.sh est destiné aux instances EC2 basées sur Xen dans CloudWatch. Il n’est compatible qu’avec les instances Amazon Linux, Red Hat Enterprise Linux et CentOS. Vous pouvez néanmoins le personnaliser pour d'autres distributions Linux.

Remarque : si votre instance dispose d'un volume de stockage d'instance, le script signale le débit agrégé, y compris le débit du volume de stockage d'instance. Vous n'obtiendrez donc peut-être pas une mesure précise du débit EBS à partir de ce script.

Résolution

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

1.    Pour les distributions basés sur RHEL, installez l'interface de ligne de commande AWS (AWS CLI), si vous ne l'avez pas déjà fait.

2.    Téléchargez le script ebs-stats.sh.

3.    Placez le script sur votre instance, puis rendez-le exécutable. Vous devez exécuter le script en tant qu'utilisateur root ou sudo. Sinon, il échoue.

$sudo chmod +x ebs-stats.sh

4.    À partir de l'interface de ligne de commande AWS, définissez la valeur de la fréquence d'exécution ebs-stats.sh en exécutant la commande suivante en arrière-plan :

$sudo nohup ./ebs-stats.sh example-sleep-interval &

Remarque : remplacez example-sleep-interval par le nombre souhaité de secondes entre chaque point de données.

5.    Créez un rôle AWS Identity and Access Management (IAM).

6.    Attachez la stratégie suivante au rôle :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:ListMetrics",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:PutMetricData",
        "autoscaling:DescribeAutoScalingInstances"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

7.    Attachez la politique IAM à votre instance EC2. Cela permet au script de transférer les métriques à Amazon CloudWatch.

8.    Dans la console CloudWatch, définissez une alarme pour EBSThroughoutMB. Pour plus d'informations, consultez la section Création d'une alarme CloudWatch basée sur un seuil statique ou Utilisation d’alarmes Amazon CloudWatch.

Veillez à choisir la bonne période en fonction de l'argument que vous avez utilisé.


Informations connexes

Surveillance de vos instances avec CloudWatch

Répertorier les métriques CloudWatch disponibles pour vos instances

Instances optimisées pour Amazon EBS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans