Облачные сервисы Amazon, связанные с обработкой баз данных, на первый взгляд покрывают практически все пользовательские нужды. Так, облачные версии классических РСУБД (Microsoft SQL Server, MySQL, Oracle) могут быть задействованы любым ИТ-отделом без дополнительных инвестиций в переобучение персонала. А если требуется выдерживающая высокую нагрузку система с гарантированно малым временем отклика, подойдёт NoSQL DynamoDb, работающая с петабайтными таблицами. Однако между этими двумя полюсами находится весьма объёмная ниша: производительные хранилища данных, сочетающие “скорострельность” и масштабируемость NoSQL-подходов, но при этом не требующие изучения специфических особенностей нереляционных систем, а предлагающие стандартный SQL-интерфейс, через который к хранилищу можно сразу обращаться из массово распространённых систем бизнес-аналитики и генерации отчётов. Такой сервис в перечне услуг Amazon называется Redshift. Он был запущен в эксплуатацию год назад, а базируется на технологиях параллельной обработки стартапа ParAccel, в 2010 г. продемонстрировавших рекордную производительность на базе размером 1 Тб в среде VMware. Сегодня кластерная система Redshift успешно масштабируется на петабайтные БД, а в конце января 2014 г. появилась возможность выбирать в качестве накопителей скоростные флэш-устройства.
Консоль Redshift
Как и другие сервисы Amazon, кластер Redshift инициируется из главной консоли единственной кнопкой Launch Cluster. Настройки его достаточно просты: на первом шаге задаётся идентификатор кластера, пользовательское название базы, и логин с паролём для доступа к сервису. Далее вводятся тип узла и тип кластера из набора предопределённых типов, и количество узлов в кластере. Дополнительные конфигурации третьего шага, включая режим шифрования данных, можно оставить без изменений. Надо отметить, что Redshift не входит в набор бесплатных сервисов Amazon, поэтому за каждый час его эксплуатации придётся раскошеливаться — в минимальной конфигурации на 0,85 долл.
Консоль предоставляет средства создания кластера, модификации его настроек, перезагрузки и удаления. Кроме того, всегда можно изменить тип и количество узлов в кластере фактически “на лету” — из консоли или единственным программным вызовом, после чего масштабирование выполнится течение нескольких минут. Из консоли всегда можно проверить состояние любого кластера, проанализировать метрики производительности, создать слепок базы.
Подключение к кластеру, как обещает Amazon, возможно из любой клиентской программы, совместимой с интерфейсами PostgreSQL, а рекомендована оболочка SQL Workbench/J. При этом потребуется дополнительно установить наборы драйверов. Взаимодействие с кластером через SQL-клиент (создание таблиц, загрузка данных, запуск запросов) выполняется SQL-скриптами в ручном режиме, и это, пожалуй, ключевое отличие данного сервиса от других облачных СУБД Amazon, предлагающих богатый функционал непосредственно из консоли AWS.
Плюсы и минусы Redshift
Слабые стороны Redshift очевидны: если, например, MySQL или DynamoDb функционируют в режиме нуль-администрирования и не требуют от пользователя соответствующих знаний, то качественное сопровождение кластера Redshift с объёмной БД подразумевает хорошие системные навыки и существенные усилия по ручной настройке. Каких-либо графических средств пользователю не предоставляется, и даже из консоли Redshift невозможно выполнять непосредственные манипуляции с базой. Важный процесс проектирования таблиц и связей между ними воплощается в реальную систему только с помощью скриптов. В то же время эти минусы оборачиваются плюсами, если данный сервис задействовать в крупном долгосрочном проекте — программным путём можно очень гибко управлять работой кластера, выполнять различные низкоуровневые манипуляции с базой, готовить сценарии, автоматизирующие каждый нюанс функционирования. В документации по Redshift описано множество детальных настроек кластера, схем оптимизации работы, проектирования базы с учётом специфики параллельной реализации. Интересно, что при таком весьма высоком пороге вхождения Amazon Redshift стал самым быстрорастущим сервисом в истории Amazon, что подтверждает высокую корпоративную востребованность “тяжёлых” и мощных кластерных СУБД петабайтного масштаба, а их эксплуатационная сложность с лихвой компенсируется гибкостью настроек.
О цене и производительности
С января 2014 г. введён новый сервис Redshift Dense Compute — узлы на базе флэш-накопителей. Этим сервисом имеет смысл пользоваться, если размеры БД менее 500 Гб, и вопросы скорости выходят на первый план (при этом предоставляются быстрые процессоры и большие объёмы ОЗУ). А если важнее общая стоимость владения, лучше выбрать вариант Dense Storage, производительность которого линейно масштабируется на петабайтные объёмы.
Оплата за сервис зависит прежде всего от характеристик кластера — количества и мощности узлов. Она колеблется в диапазоне от 0,3 до 7,6 долл. в час. В режиме Reserved Instances (приобретение сервиса на годы вперёд) предоставляются внушительные скидки: один час обойдётся максимум в 1,85 долл. В предельном варианте скоростного Dense Compute в рамках Reserved Instances можно эксплуатировать базы объёмом до нескольких сотен терабайтов по цене 500 долл. за терабайт в месяц. А вариант Dense Storage на жёстких накопителях будет стоить в пять раз дешевле.
Amazon утверждает, что в итоге Redshift в сравнении с лицензиями на автономные проприетарные SQL-хранилища обойдется на порядок дешевле — причём даже без учета расходов на достаточно требовательную аппаратную инфраструктуру и административное сопровождение.