Logo

dev-resources.site

for different kinds of informations.

Gerenciamento de alta latência com AWS CloudWatch e AWS Systems Manager

Published at
8/6/2024
Categories
ssm
cloudwatch
aws
highlatency
Author
carlosfilho
Categories
4 categories in total
ssm
open
cloudwatch
open
aws
open
highlatency
open
Author
11 person written this
carlosfilho
open
Gerenciamento de alta latência com AWS CloudWatch e AWS Systems Manager

Em ambientes de produção, a alta latência nas instâncias EC2 pode afetar drasticamente a experiência do usuário e a performance da aplicação. Detectar e remediar essas questões rapidamente para manter a qualidade do serviço. Neste post, vamos abordar como utilizar o AWS CloudWatch e o AWS Systems Manager para monitorar e automatizar a resposta a problemas de latência.

Problema

Imagine que você é responsável por gerenciar um ambiente de produção que sofre intermitentemente com alta latência nas instâncias EC2, impactando a performance da aplicação e a experiência do usuário. O desafio é detectar essas situações rapidamente e aplicar ações corretivas automaticamente.

Ponto de partida

Vamos identificar o ponto central da problemática: alta latência nas instâncias EC2, afetando a performance da aplicação.

Objetivo final

O nosso objetivo é automatizar a detecção e correção de alta latência nas instâncias EC2, garantindo uma resposta rápida para minimizar o impacto na aplicação.

Táticas

Vamos dividir o problema em táticas que usaremos para alcançar o objetivo:

  • Monitoramento de latência para configurar monitoramento para detectar alta latência.

  • Alertas automáticos para criar alertas que notificam quando a latência ultrapassa um limite aceitável.

  • Remediação automatizada para implementar ações automatizadas para corrigir problemas de latência.

Ação

Para cada tática, implementaremos uma solução usando o AWS CloudWatch e o AWS Systems Manager.

Monitoramento de Latência:

O AWS CloudWatch pode monitorar métricas de latência de suas instâncias EC2.

  • Configurar métricas customizadas com o dever de enviar métricas de latência para o CloudWatch.
  • Criar alarmes para definir alarmes para notificar quando a latência ultrapassar um limite definido.

Image description

Alertas Automáticos:

  • Configurar o alerta no CloudWatch e criar um alarme que envia uma notificação para o SNS quando a latência estiver alta.

json:

{
  "AlarmName": "HighLatencyAlarm",
  "ComparisonOperator": "GreaterThanThreshold",
  "EvaluationPeriods": 1,
  "MetricName": "Latency",
  "Namespace": "AWS/EC2",
  "Period": 60,
  "Statistic": "Average",
  "Threshold": 100,
  "ActionsEnabled": true,
  "AlarmActions": ["arn:aws:sns:us-east-1:123456789012:HighLatencyTopic"]
}

Enter fullscreen mode Exit fullscreen mode

Remediação automatizada:
O AWS Systems Manager Automation pode executar runbooks para corrigir problemas automaticamente.

  • Vamos criar documentos de automação para definir runbooks que executem ações corretivas, como reiniciar a instância ou ajustar parâmetros de configuração.

json:

{
  "content": {
    "description": "Runbook to mitigate high latency by restarting EC2 instance",
    "schemaVersion": "0.3",
    "assumeRole": "arn:aws:iam::123456789012:role/AutomationRole",
    "mainSteps": [
      {
        "name": "restartInstance",
        "action": "aws:restartInstance",
        "inputs": {
          "InstanceId": "i-1234567890abcdef0"
        }
      }
    ]
  }
}

Enter fullscreen mode Exit fullscreen mode
  • Configurar associação de alarmes ao Runbook para vincular o alarme do CloudWatch ao runbook de automação para que ele seja executado automaticamente quando o alarme for acionado.

json:

{
  "Rule": {
    "Name": "HighLatencyAutoRemediation",
    "State": "ENABLED",
    "EventPattern": {
      "source": ["aws.cloudwatch"],
      "detail-type": ["CloudWatch Alarm State Change"],
      "detail": {
        "state": {
          "value": ["ALARM"]
        },
        "alarmName": ["HighLatencyAlarm"]
      }
    },
    "Targets": [
      {
        "Arn": "arn:aws:ssm:us-east-1:123456789012:automation-definition/restartInstance:1",
        "Id": "Target0"
      }
    ]
  }
}

Enter fullscreen mode Exit fullscreen mode

Solução

Deixarei aqui um exemplo de como configurar essas funcionalidades no AWS CloudWatch e AWS Systems Manager.

Configurar métricas customizadas:

bash:

aws cloudwatch put-metric-data --metric-name Latency --namespace "AWS/EC2" --value 120 --unit Milliseconds --dimensions InstanceId=i-1234567890abcdef0

Enter fullscreen mode Exit fullscreen mode

Configurar alerta no CloudWatch:

bash:

aws cloudwatch put-metric-alarm --alarm-name "HighLatencyAlarm" --metric-name "Latency" --namespace "AWS/EC2" --statistic "Average" --period 60 --threshold 100 --comparison-operator "GreaterThanThreshold" --evaluation-periods 1 --alarm-actions "arn:aws:sns:us-east-1:123456789012:HighLatencyTopic"

Enter fullscreen mode Exit fullscreen mode

Criar documento de automação:

bash:

aws ssm create-document --name "restartInstance" --document-type "Automation" --content file://restartInstance.json

Enter fullscreen mode Exit fullscreen mode

Configurar associação de alarmes ao Runbook

bash:

aws events put-rule --name "HighLatencyAutoRemediation" --event-pattern file://eventPattern.json
aws events put-targets --rule "HighLatencyAutoRemediation" --targets file://targets.json

Enter fullscreen mode Exit fullscreen mode

Para finalizar

Ao utilizar o AWS CloudWatch e o AWS Systems Manager, você pode monitorar e remediar automaticamente problemas de alta latência em suas instâncias EC2. Essa automação não só melhora a performance e a experiência do usuário, mas também libera sua equipe para focar em tarefas mais estratégicas para o negócio.

cloudwatch Article's
30 articles in total
Favicon
Monitoring AWS Infrastructure: Building a Real-Time Observability Dashboard with Amazon CloudWatch and Prometheus
Favicon
A Simple Guide to AWS Monitoring Tools
Favicon
Config AWS Cloudwatch Application Signals Transaction Search with CDK
Favicon
Quickly and easily filter your Amazon CloudWatch logs using Logs Insights
Favicon
Forward logs to Cloudwatch for an EC2 instance running a custom Linux AMI
Favicon
AWS CloudWatch: Implementing Data Protection Policy for Sensitive Log Data!
Favicon
Config AWS Cloudwatch Application Signals for NodeJs Lambda with CDK
Favicon
AWS CloudWatch Logging and Live Tail using AWS CLI!
Favicon
AWS CloudWatch Logging and Live Tail using Python/Boto3 SDK!
Favicon
A Beginner’s Guide to Amazon CloudWatch: Monitoring Your Cloud Like a Pro
Favicon
Automatização de Reboots de Instâncias EC2 com CloudWatch, EventBridge e Lambda
Favicon
Streaming of Desktop Applications Securely on Web Browser Using Amazon AppStream 2.0
Favicon
How to Use Send AWS CloudWatch Metrics to GreptimeCloud by Grafana Alloy
Favicon
AWS CloudWatch Logging and Live Tail!
Favicon
Understanding Logging in Kubernetes - From Containers to Nodes
Favicon
AWS CloudWatch Observability Solutions: Game-Changer or Just a Glossy Wrapper? Honest First Impressions!
Favicon
AWS Lambda Log Aggregation Using CloudWatch Custom Log Group & Logs Insights!
Favicon
AWS Logging, Monitoring & Auditing with AWS CloudWatch and CloudTrail!
Favicon
Amazon CloudWatch Internet Monitor from Amazon Network Load balancer
Favicon
AWS Monitoring - Part 1: AWS CloudWatch
Favicon
AWS Database Migration Service now includes enhanced monitoring dashboard for your DMS tasks
Favicon
CloudWatch CPU Utilization Monitoring with SNS Alert
Favicon
VPC Flow Logs Setup
Favicon
Transfer of Data Across Accounts from S3 to S3 Using AWS DataSync
Favicon
Real-Time Incident Recovery with Event-Driven Microservices Architecture and Early Monitoring
Favicon
Implementing SLO Error Budget Monitoring with AWS Services Only
Favicon
Gerenciamento de alta latência com AWS CloudWatch e AWS Systems Manager
Favicon
Creating Recommended Alarms for Amazon OpenSearch Service with Terraform
Favicon
Automate EC2 Instance Management with AWS Lambda
Favicon
Deep Dive on AWS Clean Rooms with Integration to AWS Glue

Featured ones: