Como posso obter métricas do Amazon CloudWatch que mostram o throughput do EBS da minha instância do EC2 e, em seguida, configurar um alarme que me notifique quando a instância do EC2 atingir o limite de throughput?

4 minuto de leitura
0

Como posso obter métricas do Amazon CloudWatch que mostram o throughput agregado do Amazon Elastic Block Store (Amazon EBS) da minha instância do Amazon Elastic Compute Cloud (Amazon EC2)? Além disso, como posso configurar um alarme que me notifique quando a instância do EC2 atingir o limite de throughput?

Breve descrição

Não há uma métrica nativa do Amazon EBS que rastreie o throughput do EBS de uma instância do Amazon EC2 baseada em Xen no CloudWatch. No entanto, você pode usar o script EC2EBSThroughput/ebs-stats.sh para medir o throughput agregado do EBS da sua instância do EC2.

O script coleta o total de bytes de leitura/gravação por segundo em todos os volumes anexados e, em seguida, envia o throughput como uma métrica para o Amazon CloudWatch. Você pode visualizar essas métricas no console do Amazon CloudWatch e definir um alarme que é acionado com base em um limite especificado por você.

Observação: as instâncias do EC2 baseadas no AWS Nitro criadas com a capacidade de expansão de instância otimizada para o Amazon EBS incluem as métricas EBSIOBalance% e EBSByteBalance% do CloudWatch. Essas métricas estão disponíveis para alguns tamanhos de instância que atingem seu desempenho máximo por 30 minutos, pelo menos uma vez a cada 24 horas. Para ver uma lista completa dos tipos de instância aplicáveis, consulte Supported instance types (Tipos de instâncias compatíveis).

O script ebs-stats.sh é para instâncias do EC2 baseadas em Xen no CloudWatch. O script é compatível somente com instâncias do Amazon Linux, Red Hat Enterprise Linux e CentOS. No entanto, você pode personalizar o script para outras distribuições Linux.

Observação: se sua instância tiver um volume de armazenamento de instância, o script reportará o throughput agregado, incluindo o throughput do volume de armazenamento de instância. Isso significa que você pode não obter uma medição precisa do throughput do EBS a partir desse script.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

1.    Para distribuições baseadas em RHEL, instale a AWS CLI, caso ainda não tenha feito isso.

2.    Baixe o script ebs-stats.sh.

3.    Coloque o script em sua instância e torne-o executável. Execute o script como usuário raiz ou sudo. Caso contrário, ele falhará.

$sudo chmod +x ebs-stats.sh

4.    Na AWS CLI, defina a frequência de tempo de execução desejada de ebs-stats.sh executando o seguinte comando em segundo plano:

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

Observação: substitua example-sleep-interval pelo número desejado de segundos entre cada ponto de dados.

5.    Crie um perfil do AWS Identity and Access Management (IAM).

6.    Anexe a seguinte política ao perfil:

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

7.    Anexe a política do IAM à sua instância do EC2. Isso permite que o script envie as métricas para o Amazon CloudWatch.

8.    No console do CloudWatch, defina um alarme para EBSThroughoutMB. Para mais informações, consulte Create a CloudWatch alarm based on a static threshold (Criar um alarme do CloudWatch com base em um limite estático) ou Using Amazon CloudWatch alarms (Uso de alarmes do Amazon CloudWatch).

Certifique-se de escolher o período correto com base no argumento que você usou.


Informações relacionadas

Como monitorar suas instâncias usando o CloudWatch

Liste as métricas disponíveis do CloudWatch para suas instâncias

Instâncias otimizadas para o Amazon EBS

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos