Открыть сервис

Aurora Serverless

Aurora Serverless — это бессерверная конфигурация развёртывания реляционной базы данных Amazon Aurora, предоставляемая в рамках облачного сервиса Amazon Relational Database Service (Amazon RDS). Данная конфигурация автоматически масштабирует вычислительные ресурсы (процессор и память) в зависимости от фактической нагрузки на базу данных, а также автоматически приостанавливает работу базы данных в периоды отсутствия активности, что позволяет снизить затраты по сравнению с традиционными выделенными инстансами.

История и предпосылки создания

Aurora Serverless была анонсирована Amazon Web Services (AWS) в 2017 году на конференции re:Invent и стала доступна в 2018 году. Основной предпосылкой её появления стала потребность в снижении стоимости эксплуатации баз данных для приложений с переменной или непредсказуемой нагрузкой. Традиционные инстансы Amazon RDS требуют предварительного выбора фиксированного объёма вычислительных ресурсов (vCPU и памяти), что приводит к переплате в периоды простоя или недогрузки. Бессерверная модель позволяет платить только за потреблённые ресурсы, измеряемые в единицах ACU (Aurora Capacity Units).

Архитектура и принцип работы

Вычислительный слой и слой хранения

Aurora Serverless, как и обычная Amazon Aurora, основана на разделении вычислительного слоя и слоя хранения. Вычислительный слой представляет собой пул виртуальных машин, управляемый AWS, который динамически выделяется и освобождается. Слой хранения использует распределённую, самовосстанавливающуюся файловую систему, реплицирующую данные в нескольких зонах доступности (Availability Zones) одного региона AWS.

Единицы ACU (Aurora Capacity Units)

Производительность базы данных измеряется в ACU. Одна ACU представляет собой комбинацию определённого объёма памяти (2 гигабайта) и соответствующего процессорного ресурса. Минимальная и максимальная ёмкость базы данных задаётся пользователем в диапазоне от 0,5 ACU до 128 ACU (для версии MySQL) или до 256 ACU (для версии PostgreSQL). Масштабирование происходит дискретно, ступенями, без изменения IP-адреса конечной точки подключения.

Автоматическое масштабирование

AWS мониторит нагрузку на базу данных (загрузку процессора, количество соединений, операции ввода/вывода). При превышении заданных пороговых значений система инициирует процесс масштабирования. Этот процесс включает в себя:

  1. Создание нового экземпляра с большей (или меньшей) ёмкостью ACU.
  2. Переключение трафика на новый экземпляр.
  3. Удаление старого экземпляра.

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

Автоматическая приостановка

Ключевая особенность Aurora Serverless v1 (первое поколение) — возможность автоматической приостановки базы данных после заданного периода бездействия (по умолчанию 5 минут). При приостановке база данных выгружается из памяти, и плата за вычислительные ресурсы не взимается. При поступлении нового запроса на подключение база данных автоматически возобновляет работу (холодный старт), который может занять от нескольких секунд до минуты. В Aurora Serverless v2 эта функция отсутствует: база данных не приостанавливается полностью, а масштабируется до минимально заданной ёмкости.

Версии и поколения

Aurora Serverless v1

Первое поколение, выпущенное в 2018 году. Поддерживает базы данных на основе движков Amazon Aurora MySQL 5.6 и 5.7, а также Amazon Aurora PostgreSQL 10. Основные ограничения v1:

Aurora Serverless v2

Второе поколение, анонсированное в 2021 году и ставшее общедоступным в 2022 году. Оно устраняет многие ограничения v1 и приближается по функциональности к обычным инстансам Aurora. Ключевые улучшения:

Применение

Aurora Serverless применяется в сценариях, где нагрузка на базу данных неравномерна, непредсказуема или имеет длительные периоды простоя. Типичные случаи использования:

Преимущества и недостатки

Преимущества

Недостатки и ограничения

Сравнение с другими сервисами AWS

ХарактеристикаAurora Serverless v1/v2Обычный инстанс Aurora (Provisioned)Amazon RDS (MySQL/PostgreSQL)
МасштабированиеАвтоматическое, в пределах заданного диапазона ACUРучное или по расписанию (через Auto Scaling)Ручное
ОплатаЗа ACU-часы + хранениеЗа час работы инстанса + хранениеЗа час работы инстанса + хранение
ПриостановкаДа (v1) / Нет (v2)НетНет
УправлениеМинимальноеСреднееВысокое
ПроизводительностьОт 0,5 до 256 ACUФиксированная (от db.r5.large до db.r5.24xlarge)Фиксированная
Сложность настройкиНизкаяСредняяВысокая

Интересные факты

Источники

  1. Документация Amazon Aurora Serverless на сайте Amazon Web Services.
  2. Официальный блог Amazon Web Services (AWS News Blog) — анонсы Aurora Serverless v1 и v2.
  3. Материалы конференции AWS re:Invent 2017 и 2021 годов.
  4. Руководство по миграции с Aurora Serverless v1 на v2 от Amazon Web Services.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →