Como posso configurar instâncias do EC2 em um grupo do Auto Scaling que não tem acesso à Internet para enviar métricas e logs para o CloudWatch?
Eu tenho uma instância do Amazon Elastic Compute Cloud (Amazon EC2) em um grupo do Auto Scaling do Amazon EC2 que não tem acesso à Internet. Quero que a instância envie logs e métricas para o Amazon CloudWatch.
Resolução
1. Instale o agente do CloudWatch na sua instância do Amazon EC2. Essa instância deve ter conectividade com a Internet. Ou você pode escolher uma instância do EC2 que já está enviando os logs e as métricas para o CloudWatch, usando o agente do CloudWatch.
2. Verifique se o agente do CloudWatch está enviando métricas e logs da sua instância do EC2.
3. Crie um modelo de inicialização para o grupo do Auto Scaling. Em seu modelo de inicialização, conclua as seguintes etapas nas configurações avançadas:
Para o perfil de instância do IAM, selecione o perfil correto do AWS Identity and Access Management (IAM) relevante que permite que as instâncias enviem as métricas e os logs para o CloudWatch.
Para dados do usuário, insira um script semelhante ao exemplo a seguir. Use uma versão personalizada desse script para instalar e configurar o agente do CloudWatch com base na configuração JSON da etapa 1**:
Observação: ** o seguinte script de dados do usuário instala o agente CloudWatch em uma instância Linux do EC2. O script configura o agente para monitorar a utilização da memória e do disco e, em seguida, inicia o agente. Você deve usar o link de download para a região específica da AWS do seu grupo do 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. Adicione endpoints de interface de nuvem privada virtual (VPC) para monitoramento do CloudWatch e Amazon CloudWatch Logs à VPC que hospeda as sub-redes privadas. Para encontrar o endpoint correto, consulte Endpoints e cotas do Amazon CloudWatch. Para permitir somente as ações necessárias do CloudWatch nesses endpoints da VPC, atualize as políticas de endpoint com políticas personalizadas.
Veja o exemplo a seguir de uma política para o endpoint da VPC de monitoramento do CloudWatch:
{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
Veja o exemplo a seguir de uma política para o endpoint da VPC do CloudWatch Logs:
{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }
Para obter mais detalhes, consulte a seção Considerações para criar um endpoint da VPC da interface.
5. Adicione um endpoint de gateway de nuvem privada virtual (VPC) para o Amazon Simple Storage Service (Amazon S3) à VPC que hospeda as sub-redes privadas. Isso permite que o script de dados do usuário das instâncias nas sub-redes privadas acesse e baixe o pacote do agente CloudWatch do Amazon S3.
6. Crie um grupo do Auto Scaling (com sub-redes privadas ativadas) usando o modelo de inicialização que você criou na etapa 3. O agente do CloudWatch é executado nas instâncias que você inicia nesse grupo do Auto Scaling. O agente também envia métricas e logs por meio dos endpoints da interface da VPC que você criou na etapa 4.
Considerações para criar um endpoint da VPC da interface
- Certifique-se de usar o endpoint que corresponde à região do seu grupo do Auto Scaling. Por exemplo, se o grupo do Auto Scaling estiver na região de Londres, o endpoint das métricas será monitoring.eu-west-2.amazonaws.com. O endpoint para logs nesse cenário é logs.eu-west-2.amazonaws.com.
- Confirme se você ativou a opção Ativar nome DNS privado. Você pode ativar essa opção somente se os atributos Habilitar nomes de host DNS e Habilitar suporte DNS estiverem definidos como verdadeiro para a VPC. Se essa opção estiver desativada, o endpoint da interface da VPC não será mapeado para o endpoint do serviço. Como resultado, as instâncias não conseguem alcançar o endpoint do serviço público. Ativar essa opção mapeia o endpoint de serviço para o endpoint da interface da VPC e torna a comunicação com o endpoint de serviço privada. Por padrão, o agente do CloudWatch se conecta a esse endpoint. Você pode usar o parâmetro endpoint_override no arquivo de configuração do agente para substituir o endpoint padrão, se necessário.
- Confirme se as regras do grupo de segurança permitem a comunicação entre a interface de rede do endpoint e os recursos em sua VPC que se comunicam com o serviço. As chamadas de API para enviar os logs e as métricas são solicitações GET/POST baseadas em HTTPS. O grupo de segurança da interface de rede do endpoint exige regras de entrada para o protocolo HTTPS dos IPs de origem. Os endereços IP de origem são os endereços IP das instâncias do EC2 que enviam as métricas e os logs, ou o VPC CIDR.
- Quando as instâncias fazem parte de um grupo do Auto Scaling, especifique uma das dimensões como o nome do grupo do Auto Scaling no arquivo de configuração do agente. Para encontrar o nome do grupo do Auto Scaling, o agente obtém as tags associadas à instância do endpoint do Amazon EC2. Você deve adicionar o endpoint da interface da VPC para o serviço Amazon EC2. O agente obtém os valores ImageId, InstanceId e InstanceType dos metadados da instância do EC2.
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 6 meses