Назовите основные сценарии использования AWS CloudWatch

Ответ

AWS CloudWatch — это основной сервис мониторинга и observability в экосистеме AWS. Ключевые сценарии его использования включают:

  1. Мониторинг метрик ресурсов (CloudWatch Metrics).

    • Что это: Сбор и отслеживание стандартных и кастомных метрик производительности. Например, CPUUtilization для EC2, InvocationCount и Errors для Lambda, QueueSize для SQS.
    • Зачем: Позволяет понимать нагрузку на инфраструктуру и выявлять узкие места.
  2. Централизованный сбор и анализ логов (CloudWatch Logs).

    • Что это: Агрегация логов от различных сервисов (EC2, Lambda, ECS, Route 53) в одном месте. Позволяет выполнять поиск и фильтрацию по логам с помощью CloudWatch Logs Insights.
    • Зачем: Упрощает отладку, аудит безопасности и анализ поведения приложений.
  3. Создание оповещений (CloudWatch Alarms).

    • Что это: Настройка автоматических оповещений при превышении пороговых значений метрик. Например, если загрузка CPU держится выше 80% в течение 5 минут.
    • Зачем: Позволяет проактивно реагировать на проблемы. Алармы могут отправлять уведомления в SNS, запускать действия Auto Scaling или останавливать инстансы.
  4. Визуализация (CloudWatch Dashboards).

    • Что это: Создание кастомизируемых дашбордов для наглядного отображения ключевых метрик и графиков логов в одном месте.
    • Зачем: Обеспечивает единую точку обзора состояния системы для всей команды.

Пример: создание Alarms с помощью Boto3

import boto3

cloudwatch = boto3.client('cloudwatch')

# Создать оповещение, которое сработает,
# если средняя загрузка CPU на инстансе будет > 75% 
# в течение двух последовательных 5-минутных периодов.
cloudwatch.put_metric_alarm(
    AlarmName='EC2_High_CPU_Utilization',
    MetricName='CPUUtilization',
    Namespace='AWS/EC2',
    Statistic='Average',
    ComparisonOperator='GreaterThanThreshold',
    Threshold=75.0,
    Period=300, # 5 минут
    EvaluationPeriods=2,
    Dimensions=[{'Name': 'InstanceId', 'Value': 'i-1234567890abcdef0'}],
    AlarmActions=['arn:aws:sns:us-east-1:111222333444:MyAlertsTopic']
)

Ответ 18+ 🔞

А, CloudWatch, блядь! Ну это же, ёпта, главный смотрящий за всей твоей амазоновской лабудой! Сервис, который знает про твои ресурсы всё, а иногда даже больше, чем ты сам, сука.

Смотри, что он умеет, этот хитрожопый наблюдатель:

  1. Метрики (CloudWatch Metrics).

    • Что это такое: Он собирает все эти циферки и графики. Сколько там у тебя CPU жрёт твой EC2, сколько раз твоя лямбда дернулась, и не сдохла ли она при этом, сколько сообщений в очереди SQS висит, как будто в пробке.
    • Зачем: Чтобы понимать, не ебёт ли твою инфраструктуру кто-то левый, и где у тебя самое узкое, прости господи, место. Без этого ты как слепой котёнок — только догадываешься, почему всё встало.
  2. Логи (CloudWatch Logs).

    • Что это: Это такая помойка, но очень умная. Сюда стекаются все сопли от всех твоих сервисов: что EC2 блевал, что Lambda писала в консоль, какие DNS-запросы Route 53 обрабатывал. А потом ты можешь через Logs Insights в этой помойке покопаться, как заправский детектив.
    • Зачем: Когда что-то сломалось, а ты нихуя не понимаешь почему, ты идёшь сюда. Ищешь по ключевым словам, фильтруешь, и иногда находишь ту самую строчку, после которой хочется крикнуть: «Да ядрёна вошь, так вот кто тут насрал в коде!».
  3. Тревоги (CloudWatch Alarms).

    • Что это: Автоматическая сигнализация. Настроил — и спи спокойно. «Если процессор этого инстанса будет пыхтеть выше 80% дольше пяти минут — дай мне знать, я приду и наведу шороху».
    • Зачем: Чтобы не сидеть и не пялиться в графики 24/7. Ты можешь спать, а он будет дежурить. А когда что-то пойдёт не так, он тебе письмецо пришлёт (в SNS), или сам автоматом инстансы по масштабирует, или вообще проблемный сервак прибьёт. Красота!
  4. Дашборды (CloudWatch Dashboards).

    • Что это: Это как командный пункт. Ты на одной большой ху*дожественной панели слепишь все важные графики и цифры, которые тебе нужны.
    • Зачем: Чтобы вся твоя команда, зайдя утром, одним глазком глянула на экран и сразу поняла: «О, ёпта, у нас сегодня всё зелёное и красивое» или «Пиздец, ребята, всё в огне, бежим тушить!».

Вот, смотри, как на Python через boto3 такую тревогу на грабли поставить:

import boto3

cloudwatch = boto3.client('cloudwatch')

# Делаем сигнализацию на инстанс, который слишком много думает.
# Если его мозги (CPU) загружены больше 75% два раза подряд по 5 минут — орем.
cloudwatch.put_metric_alarm(
    AlarmName='EC2_High_CPU_Utilization',
    MetricName='CPUUtilization',
    Namespace='AWS/EC2',
    Statistic='Average',
    ComparisonOperator='GreaterThanThreshold',
    Threshold=75.0,
    Period=300, # 5 минут
    EvaluationPeriods=2,
    Dimensions=[{'Name': 'InstanceId', 'Value': 'i-1234567890abcdef0'}],
    AlarmActions=['arn:aws:sns:us-east-1:111222333444:MyAlertsTopic']
)

Вот и весь сказ, блядь. Поставил такие штуки — и спишь чуть спокойнее. Хотя, кто его знает, что этой ночью выкинут твои сервисы...