Все слышали про AWS. Можно сказать, что облаку Amazon удалось стать своего рода индустриальным стандартом. Мы не исключение. А потому решили проверить, как выглядит виртуальная машина в нашем клауде на базе OpenStack в сравнении с близкой по функционалу машиной AWS.

Подробности под катом.
От традиционных VPS облачные «инстансы» отличаются отсутствием необходимости вносить абонентскую плату сразу за месяц. Работает такая виртуальная машина примерно как такси — счетчик тикает, пока она едет. Придётся выложить некоторую сумму и за простой, поскольку даже выключенная машина использует емкости хранилища. Оплачивать фактически потреблённые вычислительные ресурсы гораздо дешевле и удобнее, если постоянной потребности в них нет. Разработчикам и тестировщикам такая схема позволяет серьезно экономить, и даже владельцы корпоративной ИТ-инфраструктуры могут отключать ненужные серверы, скажем, в нерабочее время или по завершении какого-то проекта. В облаке можно быстро нарастить ресурсы (добавить процессор-другой, увеличить объём оперативной памяти), если нагрузка выросла, или отказаться от лишних, когда потребность в них исчезнет. Сплошные выгоды: при этом не надо покупать железо и лицензии на операционную систему. Сервер поднимается за пару минут через веб-интерфейс и оплачивается, что называется, on-demand.
Пионером на этом рынке стала компания Amazon со своими Amazon Web Services (AWS). Потом подоспела корпорация Microsoft с платформой Azure и за ней уже появилась Google Cloud Platform — эта троица отхватила значительную часть рынка, но Amazon Elastic Compute Cloud (Amazon EC2) долгое время оставался синонимом масштабируемых вычислительных ресурсов в облаке. Помимо трёх гигантов аналогичные предложения есть у множества отечественных и зарубежных компаний. Потому вполне естественным для нас желанием было сравнить нашу четырехпроцессорную конфигурацию с предложением EC2.
Стоит отметить, что у российских сервисов есть несколько неоспоримых преимуществ. Их цены не привязаны к твёрдой валюте, вы не потеряете доступ к своим данным в случае очередного витка санкционной войны, а самое главное — наши компании используют предоплатную схему расчетов, хотя юридическим лицам доступна и ежемесячная оплата по счетам. Крупные западные провайдеры даже с физическими лицами работают по постоплатной схеме и требуют привязки банковской карты к счету. Если какой-нибудь злодей угонит ваш аккаунт, может возникнуть серьезная задолженность, такие прецеденты уже были.
Сам процесс регистрации, к примеру, в AWS также достаточно сложен — схема взыскания задолженности с физических лиц в России на практике работает плохо, поэтому ваш аккаунт скорее всего сразу заблокируют, якобы из-за проблем с методом платежа (списать с карты $1 это не мешает). Потом придётся обращаться в службу поддержки и отправлять провайдеру кучу дополнительных сведений (оплаченные счета за коммунальные услуги и т. д.).

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

Конфигурации виртуальных машин:
Atlex (Чехия, Прага):
Amazon EC2 (тип инстанса: t2.xlarge; датацентр: US East (Ohio), us-east-2b):
Конфигурации не вполне идентичные, но в Amazon EC2 инстансы можно создавать только по готовым шаблонам, и более близких вариантов с четырьмя vCPU нам подобрать не удалось. Поскольку в процессе тестирования мы не задействовали и 8 ГБ оперативной памяти, разница в объеме ОЗУ на результат не повлияла. У Amazon есть датацентры в Европе, но поскольку проверяем мы в основном вычислительные мощности и производительность дисковой подсистемы, местонахождение виртуального сервера также не принципиально.
Сначала проверим доступность обеих виртуальных машин из русскоязычного сегмента глобальной сети — для чистоты эксперимента проверку будем проводить с ещё одного виртуального сервера, работающего во внешнем по отношению к обоим подопытным питерском датацентре. С помощью утилиты ping посмотрим время отклика хостов при размере сообщения 64 байта и 1 килобайт (отправляем 100 пакетов). Время отклика виртуальной машины Atlex составило 48,328 миллисекунд и 48,436 миллисекунд соответственно, при пересылке ни один пакет не пострадал (0% loss). Для машины Amazon EC2 в датацентре штата Огайо — 126,748 и 126,846. Для чистоты эксперимента мы создали ещё одну машину в датацентре Amazon во Франкфурте и там время отклика составило — 46,005 и 46,1 миллисекунд. То есть у нас в Чехии и у AWS в Германии показатели почти одинаковые.
Популярный пакет проводит больше двух десятков тестов, разделенных на несколько категорий: Cryptography, Integer, Floating Point, Memory. Используются операции сжатия, работа с JPEG, парсинг HTML, SQLite. Это один из самых всесторонних тестов для Windows, хотя дисковую подсистему он не охватывает (для этого мы использовали CristalDiskMark). С нашей виртуальной машиной никаких сюрпризов не было, тест показал ожидаемую производительность:



С виртуальной машиной Amazon EC2 все оказалось значительно интереснее. В свойствах данного типа инстансов указан процессор Broadwell, но GeekBench упорно показывал нам Haswell:


Отличаются они только техпроцессом. Поэтому для нас, как сторонних заказчиков, разница в итоге не принципиальная.


К сожалению, подобрать полный аналог среди четырехпроцессорных конфигураций инстансов Amazon EC2 нам не удалось, но машины получились достаточно близкими. В том числе и по результатам.
Этот популярный бенчмарк проводит тесты последовательной и случайной записи/чтения с глубиной очереди равной 1, 8 и 32. Результаты на скриншотах говорят сами за себя — несмотря на использование твердотельных накопителей в хранилищах обеих конфигураций, дисковая подсистема нашей виртуальной машины гораздо шустрее. На самом деле, порог ещё выше, и тестовая программа до него добраться не смогла, при этом есть и балансировка нагрузки — разные клиенты не будут друг другу мешать:

General Purpose SSD от Amazon EC2 показал в разы более скромные результаты:

Для оценки производительности работы Microsoft SQL Server 2017 мы использовали тест TPC-H, который считается одним из отраслевых стандартов — его активно используют сами разработчики СУБД. Тест представляет собой набор бизнес-ориентированных гибких запросов и параллельно проводимой модификации данных. Он иллюстрирует работу систем поддержки принятия решений, анализирующих большие объемы данных, выполняющих запросы высокой степени сложности и дающих ответы на критически важные вопросы бизнеса. Полностью все спецификации TPC-H мы соблюдать не стали, поскольку это слишком сложно — там больше полутора сотен страниц убористого текста в pdf. Чтобы упростить процесс тестирования, мы скачали бесплатную версию программы Benchmark Factory for Databases. TPC-H предполагает генерацию восьми таблиц с использованием заданного параметра scale factor. У нас он равен 1, и объём базы составил 1,54 ГБ (1,18 ГБ заняли таблицы и 364,96 МБ — индексы).
Тест состоит из 22 SQL-запросов разной степени сложности, которые выполняют четыре виртуальных пользователя три раза по кругу (итого 264 SQL-запроса). Приятным сюрпризом в последней версии Benchmark Factory for Databases стала возможность генерации тестовых данных и загрузки их в базу. Раньше для этого приходилось скачивать исходные тексты утилиты dbgen от TPC и собирать их под Windows в Visual Studio. В этом тесте тоже все обошлось без сюрпризов.
Облачный сервер Atlex:

Облачный сервер Amazon EC2:

Пусть вас не удивляет несоответствие общего времени выполнения теста и среднего времени отклика, умноженного на количество запросов: четыре пользователя выполняют запросы одновременно, так что это вполне естественно.
Прейскурант Amazon EC2 можно найти по ссылке. Цены могут довольно серьезно отличаться в зависимости от типа облачного виртуального сервера — для кратковременного тестирования мы использовали инстансы по требованию, но есть и другие варианты, если вы готовы, например, зарезервировать ресурсы сразу на год или утилизировать свободные вычислительные ресурсы Amazon EC2. Виртуальный облачный сервер t2.xlarge с Windows обойдётся пользователю в $0,2266 за час работы + налог (все цены в прайсе указаны без учета налогов и сборов). Если машина работает в течение месяца (~720 часов), пользователь заплатит около $163,15 без налога — точную сумму подсчитать невозможно, поскольку в месяцах разное количество дней. Плата за использование инстансов EC2 начисляется с шагом в одну секунду, а минимальный период использования составляет 60 секунд. Аналогичным образом плата за выделенное хранилище для томов EBS SSD (gp2) будет начисляться на посекундной основе с минимальным периодом использования 60 секунд. 1 ГБ хранения в датацентре штата Огайо стоит $0,10 в месяц ($10 без налога за 100 ГБ), но есть и схема оплаты с выделенными IOPS.
Наш виртуальный сервер обойдётся заказчику в 4208 рублей за месяц работы или примерно 5,56 рублей (в районе $0,1) в час. Тесты проводились на базе стандартного процессора Intel Xeon E5-2620v4, но мы недавно добавили новые процессоры с более высокой производительностью (тактовая частота 3,8 ГГц) для баз данных.
Обе машины показали очень близкие результаты. Несмотря на то, что у инстанса Amazon EC2 результаты вычислительных тестов оказались формально чуть лучше, мы обходим их в разы по дисковым операциям. Главный вывод очевиден: хотя наш сервис не может тягаться с крупнейшии мировыми облачными провайдерами по количеству предлагаемых клиентам услуг, по качеству в своей узкой нише он вполне конкурентоспособен. Ну и по цене мы обходим их более чем вдвое.

Подробности под катом.
От традиционных VPS облачные «инстансы» отличаются отсутствием необходимости вносить абонентскую плату сразу за месяц. Работает такая виртуальная машина примерно как такси — счетчик тикает, пока она едет. Придётся выложить некоторую сумму и за простой, поскольку даже выключенная машина использует емкости хранилища. Оплачивать фактически потреблённые вычислительные ресурсы гораздо дешевле и удобнее, если постоянной потребности в них нет. Разработчикам и тестировщикам такая схема позволяет серьезно экономить, и даже владельцы корпоративной ИТ-инфраструктуры могут отключать ненужные серверы, скажем, в нерабочее время или по завершении какого-то проекта. В облаке можно быстро нарастить ресурсы (добавить процессор-другой, увеличить объём оперативной памяти), если нагрузка выросла, или отказаться от лишних, когда потребность в них исчезнет. Сплошные выгоды: при этом не надо покупать железо и лицензии на операционную систему. Сервер поднимается за пару минут через веб-интерфейс и оплачивается, что называется, on-demand.
Общие вопросы
Пионером на этом рынке стала компания Amazon со своими Amazon Web Services (AWS). Потом подоспела корпорация Microsoft с платформой Azure и за ней уже появилась Google Cloud Platform — эта троица отхватила значительную часть рынка, но Amazon Elastic Compute Cloud (Amazon EC2) долгое время оставался синонимом масштабируемых вычислительных ресурсов в облаке. Помимо трёх гигантов аналогичные предложения есть у множества отечественных и зарубежных компаний. Потому вполне естественным для нас желанием было сравнить нашу четырехпроцессорную конфигурацию с предложением EC2.
Стоит отметить, что у российских сервисов есть несколько неоспоримых преимуществ. Их цены не привязаны к твёрдой валюте, вы не потеряете доступ к своим данным в случае очередного витка санкционной войны, а самое главное — наши компании используют предоплатную схему расчетов, хотя юридическим лицам доступна и ежемесячная оплата по счетам. Крупные западные провайдеры даже с физическими лицами работают по постоплатной схеме и требуют привязки банковской карты к счету. Если какой-нибудь злодей угонит ваш аккаунт, может возникнуть серьезная задолженность, такие прецеденты уже были.
Сам процесс регистрации, к примеру, в AWS также достаточно сложен — схема взыскания задолженности с физических лиц в России на практике работает плохо, поэтому ваш аккаунт скорее всего сразу заблокируют, якобы из-за проблем с методом платежа (списать с карты $1 это не мешает). Потом придётся обращаться в службу поддержки и отправлять провайдеру кучу дополнительных сведений (оплаченные счета за коммунальные услуги и т. д.).

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

Тесты
Конфигурации виртуальных машин:
Atlex (Чехия, Прага):
- 4 vCPUs Intel Xeon E5-2620v4 (Broadwell U/ULT) с тактовой частотой 2,1 ГГц;
- 8 ГБ оперативной памяти;
- накопитель 100 ГБ SSD;
- Microsoft Windows Server 2012 R2 Standard;
- OpenStack (KVM).
Amazon EC2 (тип инстанса: t2.xlarge; датацентр: US East (Ohio), us-east-2b):
- 4 vCPUs Intel Broadwell E5-2686v4 с тактовой частотой 2,3 ГГц
- 16 Гб оперативной памяти;
- накопитель 100 ГБ SSD;
- Microsoft Windows Server 2012 R2 Standart;
- Xen HVM DomU.
Конфигурации не вполне идентичные, но в Amazon EC2 инстансы можно создавать только по готовым шаблонам, и более близких вариантов с четырьмя vCPU нам подобрать не удалось. Поскольку в процессе тестирования мы не задействовали и 8 ГБ оперативной памяти, разница в объеме ОЗУ на результат не повлияла. У Amazon есть датацентры в Европе, но поскольку проверяем мы в основном вычислительные мощности и производительность дисковой подсистемы, местонахождение виртуального сервера также не принципиально.
Пинг
Сначала проверим доступность обеих виртуальных машин из русскоязычного сегмента глобальной сети — для чистоты эксперимента проверку будем проводить с ещё одного виртуального сервера, работающего во внешнем по отношению к обоим подопытным питерском датацентре. С помощью утилиты ping посмотрим время отклика хостов при размере сообщения 64 байта и 1 килобайт (отправляем 100 пакетов). Время отклика виртуальной машины Atlex составило 48,328 миллисекунд и 48,436 миллисекунд соответственно, при пересылке ни один пакет не пострадал (0% loss). Для машины Amazon EC2 в датацентре штата Огайо — 126,748 и 126,846. Для чистоты эксперимента мы создали ещё одну машину в датацентре Amazon во Франкфурте и там время отклика составило — 46,005 и 46,1 миллисекунд. То есть у нас в Чехии и у AWS в Германии показатели почти одинаковые.
GeekBench 4
Популярный пакет проводит больше двух десятков тестов, разделенных на несколько категорий: Cryptography, Integer, Floating Point, Memory. Используются операции сжатия, работа с JPEG, парсинг HTML, SQLite. Это один из самых всесторонних тестов для Windows, хотя дисковую подсистему он не охватывает (для этого мы использовали CristalDiskMark). С нашей виртуальной машиной никаких сюрпризов не было, тест показал ожидаемую производительность:



С виртуальной машиной Amazon EC2 все оказалось значительно интереснее. В свойствах данного типа инстансов указан процессор Broadwell, но GeekBench упорно показывал нам Haswell:


Отличаются они только техпроцессом. Поэтому для нас, как сторонних заказчиков, разница в итоге не принципиальная.


К сожалению, подобрать полный аналог среди четырехпроцессорных конфигураций инстансов Amazon EC2 нам не удалось, но машины получились достаточно близкими. В том числе и по результатам.
CrystalDiskMark 6
Этот популярный бенчмарк проводит тесты последовательной и случайной записи/чтения с глубиной очереди равной 1, 8 и 32. Результаты на скриншотах говорят сами за себя — несмотря на использование твердотельных накопителей в хранилищах обеих конфигураций, дисковая подсистема нашей виртуальной машины гораздо шустрее. На самом деле, порог ещё выше, и тестовая программа до него добраться не смогла, при этом есть и балансировка нагрузки — разные клиенты не будут друг другу мешать:

General Purpose SSD от Amazon EC2 показал в разы более скромные результаты:

Тесты с Microsoft SQL
Для оценки производительности работы Microsoft SQL Server 2017 мы использовали тест TPC-H, который считается одним из отраслевых стандартов — его активно используют сами разработчики СУБД. Тест представляет собой набор бизнес-ориентированных гибких запросов и параллельно проводимой модификации данных. Он иллюстрирует работу систем поддержки принятия решений, анализирующих большие объемы данных, выполняющих запросы высокой степени сложности и дающих ответы на критически важные вопросы бизнеса. Полностью все спецификации TPC-H мы соблюдать не стали, поскольку это слишком сложно — там больше полутора сотен страниц убористого текста в pdf. Чтобы упростить процесс тестирования, мы скачали бесплатную версию программы Benchmark Factory for Databases. TPC-H предполагает генерацию восьми таблиц с использованием заданного параметра scale factor. У нас он равен 1, и объём базы составил 1,54 ГБ (1,18 ГБ заняли таблицы и 364,96 МБ — индексы).
Тест состоит из 22 SQL-запросов разной степени сложности, которые выполняют четыре виртуальных пользователя три раза по кругу (итого 264 SQL-запроса). Приятным сюрпризом в последней версии Benchmark Factory for Databases стала возможность генерации тестовых данных и загрузки их в базу. Раньше для этого приходилось скачивать исходные тексты утилиты dbgen от TPC и собирать их под Windows в Visual Studio. В этом тесте тоже все обошлось без сюрпризов.
Облачный сервер Atlex:
Транзакций в секунду |
Среднее время отклика (сек) |
Среднее время выполнения транзакции |
Количество транзакций |
Время выполнения теста |
Total Rows |
1,313 |
3,030 |
3,040 |
264 |
3 минуты 27 секунд |
11616 |

Облачный сервер Amazon EC2:
Транзакций в секунду |
Среднее время отклика (сек) |
Среднее время выполнения транзакции |
Количество транзакций |
Время выполнения теста |
Total Rows |
1,542 |
2,586 |
2,591 |
264 |
2 минуты 57 секунд |
11532 |

Пусть вас не удивляет несоответствие общего времени выполнения теста и среднего времени отклика, умноженного на количество запросов: четыре пользователя выполняют запросы одновременно, так что это вполне естественно.
Ценник
Прейскурант Amazon EC2 можно найти по ссылке. Цены могут довольно серьезно отличаться в зависимости от типа облачного виртуального сервера — для кратковременного тестирования мы использовали инстансы по требованию, но есть и другие варианты, если вы готовы, например, зарезервировать ресурсы сразу на год или утилизировать свободные вычислительные ресурсы Amazon EC2. Виртуальный облачный сервер t2.xlarge с Windows обойдётся пользователю в $0,2266 за час работы + налог (все цены в прайсе указаны без учета налогов и сборов). Если машина работает в течение месяца (~720 часов), пользователь заплатит около $163,15 без налога — точную сумму подсчитать невозможно, поскольку в месяцах разное количество дней. Плата за использование инстансов EC2 начисляется с шагом в одну секунду, а минимальный период использования составляет 60 секунд. Аналогичным образом плата за выделенное хранилище для томов EBS SSD (gp2) будет начисляться на посекундной основе с минимальным периодом использования 60 секунд. 1 ГБ хранения в датацентре штата Огайо стоит $0,10 в месяц ($10 без налога за 100 ГБ), но есть и схема оплаты с выделенными IOPS.
Наш виртуальный сервер обойдётся заказчику в 4208 рублей за месяц работы или примерно 5,56 рублей (в районе $0,1) в час. Тесты проводились на базе стандартного процессора Intel Xeon E5-2620v4, но мы недавно добавили новые процессоры с более высокой производительностью (тактовая частота 3,8 ГГц) для баз данных.
Итоги и выводы
Обе машины показали очень близкие результаты. Несмотря на то, что у инстанса Amazon EC2 результаты вычислительных тестов оказались формально чуть лучше, мы обходим их в разы по дисковым операциям. Главный вывод очевиден: хотя наш сервис не может тягаться с крупнейшии мировыми облачными провайдерами по количеству предлагаемых клиентам услуг, по качеству в своей узкой нише он вполне конкурентоспособен. Ну и по цене мы обходим их более чем вдвое.