Passer au contenu

Comment configurer les instances d'un groupe Auto Scaling EC2 qui n'a pas accès à Internet pour envoyer des métriques et des journaux à CloudWatch ?

Lecture de 4 minute(s)
0

Je dispose d’une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un groupe Amazon EC2 Auto Scaling qui n'a pas accès à Internet. Je souhaite que l'instance Amazon EC2 envoie des journaux et des métriques à Amazon CloudWatch.

Résolution

Pour configurer des instances EC2 dans un groupe Auto Scaling EC2 afin d'envoyer des métriques et des journaux à CloudWatch, effectuez les actions suivantes.

Installer l'agent CloudWatch

Installez l'agent CloudWatch sur une instance dotée d'une connexion Internet. Vous pouvez également utiliser une instance existante qui envoie déjà des journaux et des métriques à CloudWatch à l'aide de l'agent CloudWatch.

Remarque : Incluez le nom du groupe Auto Scaling en tant que dimension dans la configuration de votre agent CloudWatch. L'agent extrait ce nom à partir des identifications d'instance et d'autres métadonnées, telles que ImageId, InstanceId et InstanceType.

Vérifiez ensuite que l'agent CloudWatch envoie correctement les métriques et les journaux à CloudWatch.

Créer un modèle de lancement pour votre groupe Auto Scaling EC2

Créer un modèle de lancement pour votre groupe Auto Scaling EC2.

Sélectionnez Détails avancés. Puis, choisissez Profil d’instance IAM et Données utilisateur. Dans Données utilisateur, entrez un script pour installer et configurer l'agent CloudWatch en fonction du fichier JSON que vous avez configuré. Dans Profil d’instance IAM, sélectionnez le rôle Gestion des identités et des accès AWS (AWS IAM) qui permet aux instances EC2 d'envoyer des métriques et des journaux à CloudWatch. Pour plus d'informations sur ces paramètres avancés, consultez la section Paramètres avancés.

Exemple de script de données utilisateur sur une instance :

#!/bin/bashcd /tmp
wget https://s3.REGION.amazonaws.com/amazoncloudwatch-agent-REGION/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
rpm -U ./amazon-cloudwatch-agent.rpm
cat << EOF > /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
  "agent": {
    "metrics_collection_interval": 60
  },
  "metrics": {
    "append_dimensions": {
      "InstanceId": "\${aws:InstanceId}"
    },
    "metrics_collected": {
      "disk": {
        "measurement": [
          "disk_used_percent"
        ],
        "resources": [
          "*"
        ]
      },
      "mem": {
        "measurement": [
          "mem_used_percent"
        ]
      }
    }
  }
}
EOF
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

Remarque : Remplacez REGION par votre région AWS. Pour échapper les caractères spéciaux contenus dans le fichier config.json, utilisez une barre oblique inverse (\). Le script configure l'agent CloudWatch pour surveiller l'utilisation de la mémoire et du disque, puis démarre l'agent. Assurez-vous d'utiliser le lien de téléchargement correspondant à la région de votre groupe Auto Scaling EC2.

Créer des points de terminaison de VPC pour vos métriques et vos journaux

Créez des points de terminaison de cloud privé virtuel (VPC) d'interface pour les métriques CloudWatch et Amazon CloudWatch Logs sur le VPC qui héberge les sous-réseaux privés. Puis, mettez à jour vos politiques de point de terminaison avec des politiques personnalisées pour autoriser les actions CloudWatch requises. Pour plus d'informations sur les points de terminaison de service, consultez la section Points de terminaison et quotas Amazon CloudWatch.

Remarque : Assurez-vous d'utiliser le point de terminaison qui correspond à la région de votre groupe Auto Scaling EC2. Par exemple, si votre groupe Auto Scaling EC2 se trouve dans la région eu-west-2, utilisez monitoring.eu-west-2.amazonaws.com pour les métriques et logs.eu-west-2.amazonaws.com pour les journaux.

Exemple de politique de point de terminaison de VPC CloudWatch :

{  "Statement": [
    {
      "Sid": "PutOnly",
      "Principal": "*",
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Exemple de politique de point de terminaison de VPC CloudWatch Logs :

{  "Statement": [
    {
      "Sid": "PutOnly",
      "Principal": "*",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Puis, créez un point de terminaison de passerelle de VPC pour Amazon Simple Storage Service (Amazon S3) sur le VPC qui héberge vos sous-réseaux privés. Ce point de terminaison permet aux instances des sous-réseaux privés de télécharger le package de l'agent CloudWatch.

Créer un groupe Auto Scaling EC2

Créez un groupe Auto Scaling EC2 avec des sous-réseaux privés activés à partir du modèle de lancement que vous avez créé.

AWS OFFICIELA mis à jour il y a 5 mois