Заголовок получился достаточно желтый, но он лучше всего передает суть поста: можно создать свое вычислительное облако, которое будет на порядок дешевле, чем предлагает Amazon EC2. Есть множество нюансов, из-за которых подобное “дешевое облако” может не подойди, но, на мой взгляд, для многих задач оно вполне подходит и справляется с ними отлично.
Далее я хочу рассказать о нашем опыте использования OpenStack, развернутого у Hetzner’a, и привести расчеты стоимости подобного облака.
Hetzner
На мой взгляд, Hetzner — лучший
Я убежден, что железо должно быть дешевым! Программное обеспечение должно стабильно работать на дешевом железе, в котором возможны отказы, сбои, потери данных. Я никогда не понимал, когда проблемы производительности высоконагруженых систем хотят решить покупкой пары топовых серверов. Система должна быть спроектирована для работы на недорогом железе, это должно быть заложено как в архитектуре самой системы, так и в технологиях, которые она использует. Естественно, для ряда задач лучше и дешевле надеяться на дорогое железо, чем разрабатывать отказоустойчивый софт (например, в банковской сфере). Но таких задач, на мой взгляд, меньшинство.
OpenStack
Не буду подробно останавливаться на том, что такое OpenStack и как его устанавливать — такой информации уже достаточно много. Отмечу, что при развертывании мы руководствовались принципом, что облако должно быть по максимуму децентрализованною. Т.е. у нас нет ни единого узла, выход из строя которого ломал бы всё наше облако. Даже если из строя выйдет сервер с контроллером OpenStack’a — самое страшное что мы получим, так это отсутствие возможности управлять состоянием виртуальных машин (создавать/останавливать и т.п.). Все виртуальные машины продолжают работать. Это относится как к сети, так и к DNS и другим нужным службам.
Сейчас в облаке 10 серверов разных конфигураций (начиная от стареньких EQ4 до EX4S). Суммарные ресурсы такого облака: 240 GB оперативной памяти, 72 ядра и 54 TB дискового пространства (без RAID).
Стоимость
Предлагаю попробовать сравнить стоимость ресурсов данного облака с Amazon EC2, хотя понимаю, что сравнение не совсем корректно: Amazon предлагает законченный, “коробочный” продукт с кучей дополнительных сервисов и удобств, чего в нашем облаке нет.
Арендовать On-Demand Small Instance (1.7GB, 1 VCPU, 160GB, Ireland) стоит $0,08 в час. По моим расчетам, часовая аренда данного инстанса в своем облаке на базе серверов Hetzner EX4S будет стоить $0,00488 в час, т.е. в ~17 раз дешевле! При расчетах я использовал простой принцип: сколько виртуальных машин схожей конфигурации я смогу уместить на сервере (с учетом издержек хост-системы). Если говорить про Reserved Small Instance, то разница примерно в 10 раз. Для других типов инстансов цифры похожи. Я допускаю, что в расчетах есть ошибки: к примеру вы можете справедливо отметить, что хост-системе может потребоваться больше памяти (сейчас 1GB), или, что не будет хватить CPU (сейчас на 1 CPU приходится 3 VCPU). Возможно. Но всё равно это решение будет в разы дешевле. И оно отлично работает. Вот ссылка на таблицу с расчетами.
Повторюсь, что я понимаю, что некорректно сравнивать свое облако с Amazon, что есть ряд минусов (отсутствие из коробки публичных IP, дополнительных сервисов, трудоемкость развертывания/поддержки, добавьте свой вариант), но с учетом стоимости, пожалуй, на многое из этого можно закрыть глаза!
Если кому нужна помощь в развертывании подобного облака — будем рады помочь.
Автор: chardex