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

ACU (Aurora Capacity Units)

ACU (Aurora Capacity Units) — это единица измерения производительности вычислительных ресурсов, используемая в облачной платформе Amazon Aurora, которая является реляционной СУБД, совместимой с MySQL и PostgreSQL. ACU представляет собой абстрактную метрику, позволяющую оценить и сравнить объём вычислительной мощности, выделяемой для экземпляров базы данных в сервисе Amazon Aurora. Одна единица ACU соответствует определённому объёму процессорного времени и оперативной памяти, что упрощает масштабирование и биллинг в облачной инфраструктуре.

История и контекст появления

Amazon Aurora была запущена компанией Amazon Web Services (AWS) в 2014 году как высокопроизводительная, отказоустойчивая и масштабируемая реляционная база данных, ориентированная на облачные среды. В отличие от традиционных СУБД, где производительность привязывается к фиксированным аппаратным ресурсам (например, количество ядер CPU или объём RAM), AWS предложила модель, где ресурсы выделяются динамически через единицы ACU. Это позволило упростить управление кластерами баз данных, автоматизировать масштабирование и снизить затраты для пользователей, особенно в сценариях с переменной нагрузкой.

Введение ACU стало частью стратегии AWS по созданию «бессерверной» (serverless) архитектуры, где пользователи платят только за фактически потреблённые ресурсы, а не за заранее выделенные инстансы. Первоначально ACU использовались исключительно в серверном варианте Amazon Aurora Serverless v1, а позднее — в версии v2, которая обеспечивает более гибкое и быстрое масштабирование.

Определение и характеристики

ACU (Aurora Capacity Unit) — это единица, которая объединяет в себе определённое количество процессорной мощности (CPU) и оперативной памяти (RAM). В стандартной конфигурации одна единица ACU соответствует примерно 2 ГБ оперативной памяти и соответствующему объёму вычислительных ресурсов, достаточному для выполнения типовых операций базы данных. Точное соотношение CPU и RAM может варьироваться в зависимости от версии Aurora и типа используемого хранилища, но общий принцип остаётся неизменным: каждая ACU представляет собой сбалансированный набор ресурсов, оптимизированный для работы с реляционными данными.

Ключевые характеристики ACU:

  • Абстрактность: пользователь не управляет физическими ядрами или гигабайтами памяти напрямую — вместо этого он указывает количество ACU, необходимое для обслуживания текущей нагрузки.
  • Динамическое масштабирование: в режиме Aurora Serverless кластер базы данных может автоматически увеличивать или уменьшать количество ACU в зависимости от числа запросов, что позволяет избежать перерасхода ресурсов в периоды низкой активности.
  • Биллинг: оплата производится за фактически потреблённые ACU-часы (ACU-hours), то есть за время, в течение которого база данных работала с определённым количеством единиц. Это выгодно для приложений с нерегулярной или сезонной нагрузкой.
  • Минимальный и максимальный диапазон: для каждого кластера Aurora Serverless можно задать нижнюю и верхнюю границу количества ACU (например, от 1 до 128 ACU). Система автоматически подбирает оптимальное значение в этом диапазоне.

Применение и масштабирование

Aurora Serverless v1 и v2

ACU являются основой для работы бессерверных версий Amazon Aurora. В версии v1 масштабирование происходило с шагом в 1 ACU, но могло занимать несколько секунд, что иногда приводило к задержкам при резких скачках нагрузки. В версии v2, выпущенной в 2021 году, масштабирование стало более быстрым (до 1 секунды) и более плавным, с возможностью изменения количества ACU на доли единицы. Это позволило использовать Aurora Serverless для более требовательных к производительности приложений, включая веб-сервисы с высокой посещаемостью.

Примеры использования

  • Приложения с переменной нагрузкой: интернет-магазины, где в часы пик (например, в «Чёрную пятницу») требуется значительно больше ресурсов, чем в обычные дни.
  • Разработка и тестирование: временные базы данных, которые используются только в рабочее время или для выполнения отдельных тестовых сценариев.
  • Микросервисная архитектура: когда каждый сервис имеет свою базу данных, и нагрузка на них распределена неравномерно.

Сравнение с другими моделями ресурсов

В отличие от традиционных инстансов Amazon RDS, где пользователь выбирает фиксированный тип инстанса (например, db.r5.large с 2 vCPU и 16 ГБ RAM), модель ACU не требует предварительного выбора конкретного размера. Вместо этого система автоматически подбирает ресурсы в пределах заданного диапазона. Это упрощает администрирование, но может быть менее предсказуемым для приложений с жёсткими требованиями к задержкам, так как при масштабировании возможны кратковременные паузы.

Также ACU не следует путать с единицами измерения в других облачных сервисах, например, с EC2 Compute Unit (ECU) или vCPU. ECU — это абстрактная единица производительности для виртуальных машин Amazon EC2, которая привязана к определённому поколению процессоров, тогда как ACU оптимизирована именно для работы с базами данных и учитывает особенности операций ввода-вывода и кэширования.

Ограничения и критика

Несмотря на удобство, модель ACU имеет ряд ограничений:

  • Не подходит для всех типов нагрузок: приложения, требующие стабильной и максимальной производительности (например, системы реального времени), могут испытывать проблемы из-за автоматического масштабирования.
  • Зависимость от региона: доступность Aurora Serverless и, соответственно, ACU, ограничена определёнными регионами AWS.
  • Стоимость при длительной высокой нагрузке: в некоторых случаях использование фиксированных инстансов может оказаться дешевле, чем оплата ACU-часов при постоянной максимальной нагрузке.
  • Сложность прогнозирования: из-за динамического характера ACU точное планирование бюджета может быть затруднено.

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

  • Название «Aurora Capacity Unit» было выбрано, чтобы подчеркнуть ёмкостный характер ресурса — единица измеряет не мощность, а способность обслуживать определённое количество запросов в единицу времени.
  • В 2022 году AWS представила возможность «паузы» (pause) для кластеров Aurora Serverless, когда база данных автоматически приостанавливается при нулевой нагрузке, что позволяет не платить за ACU в простое.
  • ACU используется не только в Aurora, но и в некоторых других сервисах AWS, например, в Amazon Redshift Serverless, где аналогичная единица называется RPU (Redshift Processing Unit).

Источники

  • Документация Amazon Web Services: «Amazon Aurora User Guide» (раздел «Aurora Capacity Units»).
  • Блог AWS: «Introducing Aurora Serverless v2» (2021).
  • Официальные спецификации Amazon Aurora Serverless.
  • Материалы конференций AWS re:Invent (2019–2023).

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

На главную BFOmetr →