Ранее я уже писал о переносе блога на bluehost.com. Спустя почти год успешного использования площадки этого американского хостера, я произвел очередную смену хостера. Причин тут несколько.

Сразу отмечу, что дело не в bluehost. Эти ребята отлично работают: оплата услуг — дело пары секунд, сервера — достаточно надёжны, чтобы не бояться за свои проекты. Впрочем, это совершенно не показатель для того, чтобы не делать свои бэкапы :). Поддержка — на отличном уровне. За год обращался к ним два раза: первый раз — когда их DdoS-или и блог открывался адски медленно, второй — когда сервер, на котором была развёрнута площадка, был на обслуживании и блог не был доступен в обеденное время (угу, у них то там примерно -8 часов (штат Юта) — как раз 3-4 часа утра было, когда западное побережье США спит). Оба раза саппорт был предельно вежлив и отзывчив. Общался я посредством их чатика.

Наверняка у вас возник вопрос типа — «так нафига ты сменил хостера, если всё тебя в нём устраивает?!». О, ну тут всё просто — дело в том, что с ноября месяца 2010 года Amazon предлагает за бесплатно на год micro-инстанс на своем облачном сервисе AWS. Я и подумал — от чего бы и не попробовать? После того, как я около месяца проковырялся с AWS, разобравшись с ним и с ценами, я понял что я переношу свои сайты на AWS. Дело, кстати, и в цене тоже — если брать зарезервированный инстанс (instance в терминологии AWS — что-то вроде одного vps) на год, то сейчас он обойдётся в $54 (цены, а также параметры инстансов можно посмотреть тут). Неплохо, да? Дешевле, чем почти любой виртуальный хостинг. При этом ты получаешь не просто площадку с панелью управления — ты получаешь свой маленький сервер, на котором ты можешь делать что душе угодно — хоть видео конвертировать :D.

Итак, меня покорили именно два фактора — невысокая цена и свобода действий, которую я получаю, покупая кусочек облака Amazon. Понятно, что AWS придуман прежде всего для высоко нагруженных систем, которые состоят из множества инстансов, но ведь это же не мешает взять всего один инстанс и использовать его по своему назначению ;).

Самое трудное в изучении AWS для меня состояло в терминологии. Я немного буду рассказывать о терминах по мере своего повествования.

Так что же я получаю, покупая самый «маленький» инстанс? Оперативная память — 613 мегабайт. Объем EBS (Elastic Block Storage. Читай, жесткий диск для инстанса) — 10 гигабайт максимум. 15 гигабайт трафика в месяц. Вот тут мне подумалось, что «маловато будет». Однако же, если спуститься вниз на странице с ценами, то можно найти, что 1 гигабайт трафика сверх обозначенных в тарифе стоит $0.1. Недорого, если вы не сильно вылезаете из пределов micro-instance. Кстати, пропускная способность канала очень и очень хороша — во время установки MySQL установщик скачивал пакеты со скоростью где-то 5 Мбайт/сек. Далее, 1 миллион операций ввода-вывода. На месяц хватает, в моем случае. Мой случай — это 1 блог + немного устанавливал софт разный. За 10 дней с 1 по 10 января — 165347 операций. Запас есть существенный. 1 гигабайт для снапшотов. Снапшот, или snapshot, в AWS — инкрементальный снимок EBS-хранилища. Это система резервного копирования данных у Amazon. Я ей воспользовался, чтобы сохранить все произведённые в установленной системе действия по настройке и установке софта. Как систему регулярного резервного копирования я её не использую, т. к. держать все яйца в одной корзине — не наш метод ;). 10000 GET- и 1000 PUT-запросов к снапшотам. Эти запросы производятся при резервном копировании и восстановлении из снапшотов. Мне этого хватило более чем :). Далее, любой инстанс от AWS получает доступ извне через dns-имя, присваемое ему автоматически при старте. Однако, чтобы привязать свое доменное имя к серверу, нужно использовать IP-адрес. Так называемый Elastic IP будет стоить 0, если он привязан к инстансу. Если же Elastic IP взят, но не используется, то Amazon берет $0.01 за час простоя IP-адреса. Минута простоя к наступлению расчётного периода будет округлена до часа. Так, кстати, обстоят дела и со всеми остальными параметрами — к растчётному периоду всё округляется до большего значения.

Я до сих пор не сказал о частоте процессора, которая отдается на micro-инстанс. По частоте это примерно 35% от Small-инстанса, который «комплектуется» одним ECU (EC2 Compute Unit — типа процессор. Или его кусок). В соответствии с информацией от phoronix.com, 1 ECU = 1-1.2 GHz процессора AMD Opteron или Intel Xeon 2007 года производства. Таким образом, получаем примерно 350-450 MHz на t1.micro. На первый взгляд, очень мало. Однако же, мегагерц мегагерцу рознь. Во-первых, из-за современности виртуализируемого процессора; во-вторых, из-за типа процессора — десктопный процессор (если где такой и виртуализируется) для серверных задач предназначен меньше, чем собственно серверный, коим является Opteron. Кстати, если среди вас, дорогие читатели, есть владельцы VPS какого-либо хостера, постите, пожалуйста, в комментариях cat /proc/cpuinfo (или инфо о процессоре, если Windows). Посмотрим, у какого хостера какой процессор виртуализируется ;). Вот какой процессор у AWS для t1.micro на моем инстансе:

t1.micro cat /proc/cpuinfo

Про ECU можно почитать ещё вот тут.

Справедливости ради отмечу, что совсем не жаловался на медлительность процессора при установке софта и распаковке архивов с копией сайта. Также, стоит отметить, что t1.micro поддерживает «ускорение» вычислений на короткое время — инстанс получает до 2.5 ECU. Лично для меня надобность в этой функции на таком слабеньком инстансе сомнительна: во-первых, есть лимит на I/O-операции, который с такими burst’ами будет моментально сжигаться, и придется переплачивать; во-вторых, я знаю, что беру и не жду от этого инстанса чего-то экстраординарного на данный момент, когда на нём будет крутиться 3-4 проекта — не больше.

Напоследок, о производительности, можно поглядеть тут — человек выжал из своего t1.micro 1000 запросов в минуту к главной странице своего блога, тестируя его при помощи Apache benchmark.