Кратко

  • Уже выделенное хранилище RDS нельзя уменьшить на том же экземпляре базы. Снижение занятого места само по себе не снижает плату за предоставленную ёмкость.
  • Поддерживаемая схема blue/green позволяет подготовить меньшую замену. Пока идут перенос, переключение и необходимое хранение старой среды, экономия сопровождается переходными расходами.

У свободного места хорошая память

Большая разовая загрузка закончилась, ненужные данные убраны, график заполнения успокоился. Для эксплуатации это приятный результат. Для оплаты хранилища история может закончиться иначе: свободного места стало больше, а оплачиваемая ёмкость осталась на прежней отметке.

В RDS for MySQL AWS считает стоимость хранения по предоставленной ёмкости. Изменения её размера внутри месяца учитываются пропорционально времени. Поэтому даже очистка, которая действительно освобождает место в файловой системе, не меняет размер приобретённого хранилища. Пустые гигабайты тоже входят в выделенный объём.

Автоматическое масштабирование RDS умеет увеличивать этот объём. Уменьшать уже выделенное хранилище на том же экземпляре нельзя ни автоматически, ни обычным ручным изменением экземпляра. Отключение автоматики оставляет прежние расширения на месте.

Это полезная, но односторонняя операция. Когда пространство заканчивается, своевременная прибавка помогает сохранить работу базы и избавляет инженеров от срочного вмешательства. После исчезновения пикового спроса возникает другая задача: понять, сколько из купленного пространства по-прежнему нужно. У первой задачи есть автоматический исполнитель. У второй его приходится назначать.

Так разовый эпизод может надолго изменить исходную точку бюджета. Организации охотно обсуждают цену гигабайта, но реже обсуждают, кто и за какие деньги сможет перестать покупать лишние гигабайты.

Меньший объём получает другая база

AWS описывает два пути сокращения. Если движок и конфигурация поддерживают развёртывание blue/green, можно создать зелёную среду с меньшим хранилищем и затем переключить на неё производство. Другой вариант — новый экземпляр меньшего размера, ручная миграция данных и смена точек подключения. Оба пути требуют замены среды.

В инструкции по созданию blue/green минимальная целевая ёмкость при сокращении должна превышать текущее использование хотя бы на 20%. Условный расчёт: выделено 500 GiB, занята половина, то есть 250 GiB. Формула документации даёт 300 GiB как расчётный минимум. Затем нужно проверить допустимость конфигурации и оставить место для роста во время подготовки. Эта арифметика не содержит тарифа и потому не даёт суммы экономии.

Сокращение запускает обновление конфигурации хранения. Такая работа интенсивно использует ввод-вывод и может продлить создание среды. Для финансового отдела операция выглядит как замена большого числа маленьким. Для инженеров это подготовка другой базы, проверка её содержимого и поведения, а затем передача ей реальной нагрузки.

Конкретный пример относится к подходящему экземпляру RDS for MySQL. Список поддерживаемых движков также включает определённые версии MariaDB и PostgreSQL. Для Db2, SQL Server и Oracle эта возможность blue/green не предусмотрена. Проверять доступный путь надо для своей конфигурации, а не для вывески RDS вообще.

Во время управляемого переключения сервис проверяет репликацию и её отставание, прекращает новые записи, разрывает подключения и ждёт синхронизации. Затем экземпляры и точки подключения получают новые имена, а новая производственная среда — соединения и запись. Отдельное ручное повышение зелёного экземпляра до основного нарушит репликационную связь развёртывания; это другой шаг, а не короткая версия штатного переключения.

Старую базу держит её прошлое

Привычное имя подключения может перейти к новой среде. Неизменяемый идентификатор ресурса остаётся у каждого экземпляра свой. За этой технической подробностью стоит вполне денежный вопрос: что делать, если завтра понадобится восстановить состояние, существовавшее ещё до подготовки новой базы?

В ограничениях blue/green AWS указывает, что история восстановления на определённый момент времени старой производственной базы не переносится на новую. У новой есть собственная история, начинающаяся с создания зелёной среды. Старый синий экземпляр сохраняет свою историю и автоматические резервные копии до удаления.

Если компании ещё нужно это прошлое, старую среду приходится учитывать в плане хранения. AWS прямо предупреждает: оставленный работающим синий экземпляр продолжает потреблять оплачиваемые вычислительные ресурсы и хранилище. Временное удорожание вполне совместимо с будущей экономией на меньшей базе. Вопрос в длительности этого временного периода.

Даже удаление развёртывания blue/green не затрагивает синюю среду. Удаляется организационная связь, а не автоматически все ресурсы, оставшиеся после проекта. Простая остановка MySQL-экземпляра тоже сохраняет плату за хранение.

Для чистой суммы экономии недостаёт фактических тарифов клиента, длительности совместной работы, требований к восстановлению и трудозатрат. Но порядок расчёта уже понятен. Сначала нужно посчитать переход и сохранение нужного прошлого, затем — устойчивое уменьшение оплачиваемого объёма. Красивый график свободного места сообщает об использовании. Бухгалтерии нужен ещё и результат завершённого переезда.