Saltar al contenido

¿Cómo configuro las instancias de un grupo de EC2 Auto Scaling que no tiene acceso a Internet para enviar métricas y registros a CloudWatch?

4 minutos de lectura
0

Tengo una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en un grupo de Amazon EC2 Auto Scaling que no tiene acceso a Internet. Quiero que la instancia de Amazon EC2 envíe registros y métricas a Amazon CloudWatch.

Resolución

Para configurar las instancias de EC2 en un grupo de EC2 Auto Scaling para enviar métricas y registros a CloudWatch, lleva a cabo las siguientes acciones.

Instalación del agente de CloudWatch

Instala el agente de CloudWatch en una instancia que tenga conectividad a Internet. O bien, utiliza una instancia existente que ya envíe registros y métricas a CloudWatch con el agente de CloudWatch.

Nota: Incluye el nombre del grupo de escalamiento automático como dimensión en la configuración del agente de CloudWatch. El agente recupera este nombre de las etiquetas de instancia y otros metadatos, como ImageId, InstanceId e InstanceType.

A continuación, comprueba que el agente de CloudWatch envía correctamente las métricas y los registros a CloudWatch.

Creación de una plantilla de inicio para el grupo de EC2 Auto Scaling

Crea una plantilla de inicio para el grupo de EC2 Auto Scaling.

Selecciona Detalles avanzados. A continuación, elige Perfil de instancia de IAM y Datos de usuario. En Datos de usuario, introduce un script para instalar y configurar el agente de CloudWatch en función del JSON que has configurado. En Perfil de instancia de IAM, selecciona el rol de AWS Identity and Access Management (IAM) que permita a las instancias de EC2 enviar las métricas y los registros a CloudWatch. Para obtener información sobre esta configuración avanzada, consulta Configuración avanzada.

Ejemplo de script de datos de usuario en una instancia:

#!/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

Nota: Sustituye REGION por tu región de AWS. Para escapar los caracteres especiales dentro del archivo config.json, utiliza la barra invertida (\). El script configura el agente de CloudWatch para supervisar la utilización de la memoria y el disco y, a continuación, inicia el agente. Asegúrate de utilizar el enlace de descarga de la región de tu grupo de EC2 Auto Scaling.

Creación de puntos de enlace de VPC para las métricas y registros

Crea puntos de enlace de nube virtual privada (VPC) de interfaz para las métricas de CloudWatch y los registros de Amazon CloudWatch a la VPC que aloja las subredes privadas. A continuación, actualiza tus políticas de punto de enlace con políticas personalizadas para permitir las acciones de CloudWatch necesarias. Para obtener información sobre los puntos de enlace de servicio, consulta Puntos de enlace y cuotas de Amazon CloudWatch.

Nota: Asegúrate de utilizar el punto de enlace que corresponda a la región de tu grupo de EC2 Auto Scaling. Por ejemplo, si tu grupo de EC2 Auto Scaling se encuentra en la región eu-west-2, utiliza monitoring.eu-west-2.amazonaws.com para las métricas y logs.eu-west-2.amazonaws.com para los registros.

Ejemplo de política de punto de enlace de VPC de CloudWatch:

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

Ejemplo de política de punto de enlace de VPC de Registros de CloudWatch:

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

A continuación, crea un punto de enlace de puerta de enlace de VPC para Amazon Simple Storage Service (Amazon S3) a la VPC que aloja las subredes privadas. Este punto de enlace permite que las instancias de las subredes privadas descarguen el paquete de agentes de CloudWatch.

Creación de un grupo de EC2 Auto Scaling

Crea un grupo de EC2 Auto Scaling con las subredes privadas activadas desde la plantilla de inicio que has creado.