Comment puis-je configurer des instances EC2 dans un groupe Auto Scaling qui n'a pas accès à Internet pour envoyer des mesures et des journaux à CloudWatch ?

Lecture de 5 minute(s)
0

Je possède 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 envoie des journaux et des mesures à Amazon CloudWatch.

Résolution

1.    Installez l'agent CloudWatch dans votre instance Amazon EC2. Cette instance doit disposer d'une connectivité Internet. Vous pouvez également choisir une instance EC2 qui envoie déjà les journaux et les mesures vers CloudWatch à l'aide de l'agent CloudWatch.

2.    Vérifiez que l'agent CloudWatch envoie des mesures et des journaux à partir de votre instance EC2.

3.    Créez un modèle de lancement pour le groupe Auto Scaling. Dans votre modèle de lancement, réalisez les étapes suivantes dans les paramètres avancés :
Pour IAM instance profile (Profil d'instance IAM), sélectionnez le rôle AWS Identity and Access Management (IAM) approprié pertinent qui permet aux instances d'envoyer les mesures et les journaux à CloudWatch.
Pour User data (Données utilisateur), saisissez un script semblable à l'exemple suivant. Utilisez une version personnalisée de ce script pour installer et configurer l'agent CloudWatch selon la configuration JSON de l'étape 1 :
Remarque :
le script de données utilisateur suivant installe l'agent CloudWatch dans une instance Linux EC2. Le script configure l'agent pour surveiller l'utilisation de la mémoire et du disque, puis démarre l'agent. Vous devez utiliser le lien de téléchargement associé à la région AW spécifique de votre groupe Auto Scaling.

#!/bin/bash
cd /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

4.    Ajoutez des points de terminaison de cloud privé virtuel (VPC) d'interface, pour la surveillance CloudWatch et pour Amazon CloudWatch Logs, au VPC qui héberge les sous-réseaux privés. Pour trouver le point de terminaison approprié, consultez Points de terminaison et quotas Amazon CloudWatch. Pour autoriser uniquement les actions CloudWatch requises dans ces points de terminaison de VPC, mettez à jour les politiques de point de terminaison avec des politiques personnalisées.

Consultez l'exemple suivant d'une politique pour le point de terminaison de VPC de surveillance CloudWatch :

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

Consultez l'exemple suivant d'une politique pour le point de terminaison de VPC CloudWatch Logs :

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

Pour plus de détails, reportez-vous à la section Considérations relatives à la création d'un point de terminaison de VPC d'interface.

5.    Ajoutez un point de terminaison de passerelle de cloud privé virtuel (VPC), pour Amazon Simple Storage Service (Amazon S3), au VPC qui héberge les sous-réseaux privés. Cela permet au script de données utilisateur des instances se trouvant dans les sous-réseaux privés d'accéder au package de l'agent CloudWatch et de le télécharger à partir d'Amazon S3.

6.    Créez un groupe Auto Scaling (avec les sous-réseaux privés activés) à l'aide du modèle de lancement que vous avez créé à l'étape 3. L'agent CloudWatch s'exécute dans les instances que vous lancez dans ce groupe Auto Scaling. L'agent envoie également des métriques et des journaux via les points de terminaison d'interface VPC que vous avez créés à l'étape 4.

Considérations relatives à la création d'un point de terminaison de VPC d'interface

  • Assurez-vous d'utiliser le point de terminaison correspondant à la région de votre groupe Auto Scaling. Par exemple, si le groupe Auto Scaling se trouve dans la région Londres, le point de terminaison des mesures est monitoring.eu-west-2.amazonaws.com. Le point de terminaison des journaux dans ce scénario est logs.eu-west-2.amazonaws.com.
  • Assurez-vous d'avoir activé l'option Enable Private DNS name (Activer le nom DNS privé). Vous pouvez activer cette option uniquement si les attributs Enable DNS hostnames (Activer les noms d'hôte DNS) et Enable DNS Support (Activer le support DNS) sont définis sur true (vrai) pour le VPC. Si cette option est désactivée, le point de terminaison d'interface de VPC n'est pas mappé au point de terminaison de service. Par conséquent, les instances ne peuvent pas accéder au point de terminaison de service public. L'activation de cette option permet de mapper le point de terminaison de service au point de terminaison d'interface de VPC et rend la communication avec le point de terminaison de service privée. Par défaut, l'agent CloudWatch se connecte à ce point de terminaison. Vous pouvez utiliser le paramètre endpoint_override dans le fichier de configuration de l'agent pour remplacer le point de terminaison par défaut, si nécessaire.
  • Vérifiez que les règles du groupe de sécurité autorisent la communication entre l'interface réseau du point de terminaison et les ressources de votre VPC qui communiquent avec le service. Les appels d'API pour transmettre les journaux et les métriques sont des demandes GET/POST basées sur HTTPS. Le groupe de sécurité de l'interface réseau du point de terminaison nécessite des règles entrantes pour le protocole HTTPS à partir des adresses IP source. Les adresses IP source sont les adresses IP des instances EC2 transmettant les métriques et les journaux, ou le CIDR VPC.
  • Lorsque des instances font partie d'un groupe Auto Scaling, spécifiez l'une des dimensions en tant que nom du groupe Auto Scaling dans le fichier de configuration de l'agent. Pour trouver le nom du groupe Auto Scaling, l'agent obtient les balises associées à l'instance du point de terminaison Amazon EC2. Vous devez ajouter le point de terminaison d'interface de VPC pour le service Amazon EC2. L'agent obtient les valeurs ImageId, InstanceId et InstanceType des métadonnées de l'instance Amazon EC2.

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