Ранее я уже писал о переносе блога на 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 на моем инстансе:
Про ECU можно почитать ещё вот тут.
Справедливости ради отмечу, что совсем не жаловался на медлительность процессора при установке софта и распаковке архивов с копией сайта. Также, стоит отметить, что t1.micro поддерживает «ускорение» вычислений на короткое время — инстанс получает до 2.5 ECU. Лично для меня надобность в этой функции на таком слабеньком инстансе сомнительна: во-первых, есть лимит на I/O-операции, который с такими burst’ами будет моментально сжигаться, и придется переплачивать; во-вторых, я знаю, что беру и не жду от этого инстанса чего-то экстраординарного на данный момент, когда на нём будет крутиться 3-4 проекта — не больше.
Напоследок, о производительности, можно поглядеть тут — человек выжал из своего t1.micro 1000 запросов в минуту к главной странице своего блога, тестируя его при помощи Apache benchmark.
Вы с сапортом блухоста по английски общались?
Да
Ну да, если бы по работе сам не столкнулся с амазоном, free tier обошел бы меня стороной.
Однако же “поднимать с нуля всё окружение” - не так страшно, всё гуглится и элементарно делается.
Думаю, более весомая причина, почему не ломятся наши туда - верификация карты.
Нет, я не имел в виду, что это страшно, я имел в виду временные затраты - гораздо быстрее поднять сайт на шаред хостинге, а не на AWS. Да, банковские карты, к сожалению, в России всё ещё не распространены. А те, что ходят среди населения, не позволяют осуществлять интернет-платежи. Сам же процесс верификации карты на Амазоне прост, как две копейки и не требует каких-либо знаний английского языка - сняли пробный бакс, вернули снятый бакс. Это утверждение не касается интерфейса самого Amazon :)
Да-да, отличная вещь. Удивляет, что amazon free tier почти не упоминается в рунете, что-что, а на халяву мы падкие)
Это халява с достаточно высоким порогом вхождения, в отличие от любого виртуального хостинга, где всё уже готово. Помимо небходимости поднимать с нуля всё окружение, требуется ещё и разобраться в терминологии AWS
Привет я тоже настроил себе AWS но теперь не могу привязать доменное имя зарегистрированное на ру-центре, говорят, что нужно указать 2 DNS-сервера, первичный и вторичный. Только вот откуда мне их взять? Как ты решил эту проблему?
Привет, Антон. Если ру-центр не предоставляет свои DNS и редактирование зон, тогда тебе придется воспользоваться сторонним сервисом, типа http://freedns.afraid.org или http://aws.amazon.com/route53/ (второй платный). Если же Ру-центр дает свои DNS, и они у тебя прописаны (чтобы узнать это, сделай whois своего домена, например тут http://www.nic.ru/whois/ . В результатах запроса смотри на строчки nserver - это DNS, к которым привязан твой домен), то тебе потребуется отредактировать DNS-зону своего домена. Некоторые хостеры-регистраторы эту возможность по умолчанию закрывают, так что тебе, возможно, понадобится связаться с поддержкой и попросить их включить редактор DNS-зон для твоего аккаунта. А далее все в общем одинаково - тебе необходимо отредактировать A-запись своего домена, прописав в ней Elastic IP своего инстанса на AWS. Таким образом, ты перенаправишь все DNS-запросы на свой инстанс.
Набросал более развернуто статеечку, надеюсь, это поможет разобраться http://olezhek.net/2011-04-20-domain-landing-for-aws.html