Краткий анализ версии популярной базы данных на AWS по запросу.

Amazon Aurora - это реляционная база данных, созданная Amazon. Она получила признание как рентабельная и эффективная база данных. Вскоре после успеха Aurora AWS анонсировала Aurora Serverless. Согласно официальной документации:

«Amazon Aurora Serverless - это конфигурация Amazon Aurora с автоматическим масштабированием по запросу. Он автоматически запускается, выключается и масштабирует емкость вверх или вниз в зависимости от потребностей вашего приложения. Это позволяет вам запускать вашу базу данных в облаке, не управляя какой-либо емкостью базы данных ».

Все это похоже на вариант, который стоит рассмотреть. Нам больше не нужно беспокоиться о масштабировании и обновлении базы данных. Но подожди. Неужели все это нам нужно? Давайте копнем глубже и узнаем, каковы затраты на переход на Aurora Serverless.

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

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

Когда мы будем его использовать? Отлично подходит для приложений, работающих по определенному графику, например, в среде разработки. Обычно бригада работает по будням с девяти до пяти. В остальное время база данных разработки простаивает, но мы продолжаем за это платить. Это отличная возможность отключить все, если оно не используется.

Это именно то, что нам предлагает Aurora Serverless. Если в течение некоторого времени транзакций нет, база данных отключается. Модель «плати за то, что используешь» здесь работает без сбоев. База данных запускается снова при поступлении входящего запроса.

Кроме того, он выигрывает от упрощенного управления базой данных и настройки по сравнению с несерверным вариантом. Эти преимущества должны подтолкнуть нас к его использованию.

Недостатки

Теперь давайте подумаем о реальных производственных приложениях. Первый вопрос, который мы должны себе задать: действительно ли это нужно? Как часто бывает, что количество транзакций резко увеличивается?

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

Еще один недостаток Aurora Serverless - долгое время прогрева. После завершения работы базы данных следующий запрос может занять до 30 секунд. Для реальной производственной системы это долгий срок. Похоже, ваше приложение работает медленно. Вы бы пожертвовали положительным пользовательским опытом ради экономии нескольких долларов?

К сожалению, управление базами данных в Aurora Serverless не полностью покрывается AWS, в отличие от DynamoDB. Тем не менее, в Aurora Serverless основные обновления необходимо выполнять вручную. Конфигурация упрощена, но она не соответствует определению «бессерверного» в экосистеме AWS. Например, вы можете быть удивлены, обнаружив, что Aurora Serverless не поддерживает такие функции, как глобальные таблицы, мульти-мастер, реплики и некоторые другие. Это расстраивает, не правда ли?

Заключение

Проанализировав плюсы и минусы, можно сделать выводы. Aurora Serverless полезен для среды разработки или тестирования. Это может сэкономить немного денег на вашем ежемесячном счете. Но хорошо ли это в производстве? Не совсем. Возможные сценарии для этого - несколько крайние случаи. Впрочем, к AWS есть открытый вопрос. Каковы намерения Aurora Serverless в качестве базы данных с ограниченным набором функций, если не только для целей тестирования?

В декабре 2020 года команда AWS представила Aurora Serverless v2 с целью устранения существующих ограничений. На данный момент он находится в превью. Возможно, они поняли, что текущая версия Aurora Serverless не совсем подходит для продакшена. Надеюсь, что в ближайшем будущем мы увидим настоящую бессерверную реляционную базу данных от AWS.