Оповещение CloudWatch для RDS по FreeStorageSpace

Коротко о задаче
Мониторинг экземпляров RDS важен для стабильности базы данных. В этой инструкции мы создадим простое оповещение CloudWatch для RDS MySQL, которое проверяет свободное место на диске экземпляра по метрике FreeStorageSpace. Эта метрика возвращает значение в байтах, а не в процентах. При достижении заданного порога оповещение переходит в состояние триггера и отправляет уведомление в выбранную тему SNS.
Вам понадобится рабочий экземпляр RDS в вашем аккаунте и доступ в консоль AWS.
Предпосылки
- Аккаунт AWS. Если его нет, создайте его.
- Экземпляр RDS MySQL, для которого вы будете настраивать оповещение.
- Права на создание оповещений CloudWatch и тем SNS (рекомендуемые IAM действия перечислены ниже).
Что сделаем
- Войдём в AWS Management Console.
- Перейдём в CloudWatch и выберем метрику FreeStorageSpace для нужного экземпляра RDS.
- Настроим условие оповещения и тему SNS для уведомлений.
- Проверим оповещение и при необходимости удалим его.
Вход в AWS
Перейдите на страницу входа в AWS и выполните аутентификацию под своей учётной записью.

После входа вы увидите консоль управления AWS.

Создание оповещения для RDS MySQL
- Введите CloudWatch в поле поиска в верхней части консоли и перейдите в службу CloudWatch.

- В левой панели выберите раздел оповещений.

- Нажмите кнопку создания оповещения.

- Нажмите кнопку выбора метрики.

- В поле поиска введите RDS и отфильтруйте метрики для RDS. Перейдите в группу Across All Databases, чтобы увидеть метрики по всем экземплярам в регионе.

- Выберите метрику FreeStorageSpace для нужного экземпляра RDS и подтвердите выбор.

- В блоке условий укажите порог в байтах и выберите условие менее. Оповещение сработает, если свободное место станет меньше указанного порога. Нажмите Далее, чтобы продолжить.

- На шаге действий выберите существующую тему SNS или создайте новую. Когда оповещение сработает, CloudWatch отправит уведомление в тему SNS, а подписчики темы получат сообщение на выбранные эндпоинты (email, SMS, Lambda и т. п.).

- Задайте имя и описание оповещения и нажмите Далее.

- Проверьте конфигурацию и создайте оповещение.

- После создания оповещение появится на странице оповещений. Если состояние оповещения OK, это значит, что текущая метрика выше порога.

Удаление оповещения
Когда оповещение больше не нужно, его можно удалить. Выберите оповещение и используйте действие удаления.

Подтвердите удаление в появившемся диалоге. Удаление окончательное, восстановить оповещение нельзя.

Практические советы и рекомендации
- Помните, что метрика FreeStorageSpace измеряется в байтах. Для удобства переводите в ГиБ: ГиБ = байты / 1024^3. Пример: 10 ГиБ = 10 × 1024^3 = 10 737 418 240 байт.
- Подумайте о запасе безопасности: задавайте порог выше минимально допустимого размера с учётом пиков роста данных и временных файлов.
- Оценивайте период выборок и количество точек данных при настройке оповещений. Короткий период даёт более оперативные триггеры, но может быть шумнее.
- Выбирайте статистику метрики осознанно. Для свободного места чаще используют Minimum или Average в зависимости от кейса.
- Настройте тему SNS с подписчиками: email для оповещений команды, webhook или Lambda для автоматических действий.
Перечень типичных причин, если оповещение не срабатывает
- Метрика FreeStorageSpace не публикуется для региона или экземпляра.
- Неправильно указан экземпляр RDS или выбрана не та метрика.
- Параметры периода и количества точек данных не соответствуют ожидаемому поведению.
- Условия сравнения и статистика выбраны неверно (например, используете Average вместо Minimum).
- Права IAM не позволяют CloudWatch создавать оповещение или публиковать сообщения в SNS.
Минимальный набор IAM прав для создания и удаления оповещений и работы с SNS
- cloudwatch:PutMetricAlarm — создание/обновление оповещений
- cloudwatch:DescribeAlarms — просмотр оповещений
- cloudwatch:DeleteAlarms — удаление оповещений
- sns:CreateTopic, sns:Subscribe, sns:Publish, sns:DeleteTopic — работа с темами SNS
Разрешения можно ограничить по ресурсам и условиям в зависимости от политики безопасности.
Контрольный список перед включением оповещения
- Экземпляр RDS работает и публикует метрики в CloudWatch.
- Вы выбрали корректный регион в консоли.
- Порог переведён в байты и учитывает запас.
- Тема SNS создана и подписчики подтверждены.
- Проверены IAM права для создания оповещений и публикации в тему SNS.
Критерии приёмки
- Оповещение создано и отображается в списке оповещений.
- Состояние оповещения корректно отражает текущую метрику (OK/ALARM).
- При искусном снижении свободного места до порога в тестовой среде подписчики получают уведомление.
- Удаление оповещения проходит без ошибок и оповещение исчезает из списка.
Как выбрать порог — простая методика
- Оцените текущий средний объём данных и темп роста.
- Определите минимально допустимый объём диска для безопасной работы базы.
- Добавьте запас безопасности (например, объём для временных файлов и логов).
- Переведите итоговый порог в байты и установите оповещение.
Эта методика не универсальна: критичность и политика резервирования данных в вашей организации могут требовать других подходов.
Быстрый план реагирования после получения оповещения
- Проверить текущее состояние метрики в CloudWatch и логи RDS.
- Оценить, какой процесс использует диск (бэкапы, логи, временные таблицы).
- Увеличить объём хранения экземпляра или очистить временные файлы, если это безопасно.
- При необходимости откатить изменения и уведомить команду.
Небольшая диаграмма принятия решения (Mermaid)
flowchart TD
A[Получено оповещение FreeStorageSpace] --> B{Ниже порога?}
B -- Да --> C[Проверить метрику в CloudWatch]
C --> D{Это ложное срабатывание?}
D -- Да --> E[Отменить и настроить порог/период]
D -- Нет --> F[Освободить место или увеличить диск]
F --> G[Проверить восстановление состояния]
B -- Нет --> H[Отслеживать]Частые ошибки и как их избежать
- Ошибка: указан процент вместо байтов. Проверка: переводите проценты в байты заранее.
- Ошибка: подписчики темы SNS не подтвердили подписку. Решение: попросите подписчиков подтвердить письмо-приглашение или используйте другой тип подписки.
- Ошибка: выбран неверный регион. Решение: убедитесь, что CloudWatch и RDS находятся в одном регионе.
Примеры альтернативных подходов
- Использовать агрегирующие метрики и комбинированные оповещения, если нужно учитывать несколько экземпляров одновременно.
- Настроить автоматическое действие через Lambda при пересечении порога, чтобы временно очистить логи или оповестить систему управления инцидентами.
Резюме
Мы создали оповещение CloudWatch для RDS MySQL по метрике FreeStorageSpace, связали его с темой SNS и показали, как удалить оповещение. Привели рекомендации по выбору порога в байтах, проверкам прав и типичным причинам сбоев. Используйте контрольный список и методику выбора порога перед включением оповещений.
Ключевые действия: выбрать метрику FreeStorageSpace, указать условие меньше и порог в байтах, выбрать тему SNS для уведомлений, протестировать и при необходимости удалить оповещение.
Важно: перед удалением убедитесь, что оповещение действительно больше не требуется.
Похожие материалы
Как удалить Fortnite быстро
Увеличить время экрана блокировки — Windows 10
Проверка аппаратного обеспечения Linux — команды
Отключение Google Analytics в Nintendo Switch eShop
Ошибка 500 в Google Drive — как исправить