Amazon EC2

15 April 2011 #amazon #server #vps

Linode – отличный хостинг! Но когда держишь только статические сайты, начинаешь понимать, что стоимость в 20$ довольно существенная сумма. В очередной раз начал искать более дешевую альтернативу. при этом основным требованием было наличие SSH-доступа к серверу, так как публикация у меня проходит через использование rsync, а копировать по ftp уже не могу, отвык, слишком долго.

Начал искать VPS по меньшим ценам. Обратил внимание на облачный хостинг, Selectel и Clodo. Про тестирование производительности данных хостеров я писал в статье Облачный хостинг. Больше всего привлек мое внимание Selectel, но остановило от его использование то, что когда я пробовал его использовать, возникли проблемы с сетью, некоторые регионы для моей машины были недоступны.

В очередной раз обратил внимание на Amazon с его сервисом EC2. Так как Amazon использую уже давно и как сетевой диск и как хранилище данных для своих сайтов, знаю о том, что сервис очень надежный и качество его работы просто на высоте.

Останавливали только цены на аренду машин в EC2 (Price). Тариф Micro от 2.5 центов за час работы, тариф Small от 9.5 центов за час работы. Я рассматривал только вариант размещения в Европе, для обеспечения лучшей доступности сайта на территории России. То есть фактически за микро-машину нужно было заплатить порядка 20$ за месяц непрерывной работы, а за стандартную машину порядка 70$. О какой экономии может идти речь, если получается гораздо дороже? На этом остановимся чуть позже.

Производительность

Для начала я решил провести тесты производительности машин на Amazon. Для чего создавал типовые конфигурации машин, устанавливал на них Nginx, проводил тест отдачи статического контента и затем проводил тест машины с использованием утилиты UnixBench.

Если честно, тесты оказались “пустыми” и неутешительными. Пустыми, просто потому, что я вдруг осознал, что тест UnixBench, проведенный на веб-сервере не может показать ничего, что влияет на его работу. Цифры совершенно ничего не говорили. А неутешительными, просто потому, что Amazon показал очень скромные результаты.

  1. Micro 32-bit показала результат в 63.1 балла ec2-micro.bench
  2. Micro 64-bit показала результат в 85.1 балла ec2-micro.ubuntu-64.bench
  3. Small 32-bit показала результат в 102.7 балла ec2-small.fedora.bench, на debian результат чуть выше – 118.3 балла ec2-small.debian.bench
  4. Естественно, провел тест и Linode, результат оказался 1068.3 баллов linode.bench.

Результаты не сопоставимы, разница в десятки раз! Но на деле заметно ли это? Совершенно нет. Что работать удаленно по SSH на сервере, что тест отдачи статики, показали очень быструю работу серверов Amazon, что же показывает тогда unixbench?? Вопрос пока остается открытым.

Кстати, при проведенном тесте производительности отдачи статики, сервера Micro и Small показали примерно одинаковый результат в 3000 запросов в секунду. Довольно не плохо, особенно, если учитывать, что сервер Linode показывал результат в 6000 запросов в секунду.

Стоимость

20$ отдавать за менее мощный сервер? И это еще без учета стоимости трафика и оплаты использования EBS-тома? Складывается такое ощущение, что автор запутался и зашел немного не туда… Искал дешевле, а в итоге получается более дорогой вариант за менее мощную машину, в чем смысл??

Давайте еще раз посмотрим на стоимость? На странице приводиться специальный раздел, который называется Reserved Instances, это абонентская плата за год или три года сразу, резервирующая машинные ресурсы по значительно более низким ценам, чем обычно. К примеру, оплатив один год использования Micro-машины за 54$, стоимость одного часа опускается до 1 цента, то есть снижается в 2.5 раза!

Сделаем небольшой расчет. За основу возьмем Reserved Instances на три года за 84$ и будем использовать машину 100% времени. Единовременно придется отдать порядка 84x30=2520 руб. Делим на 36 месяцев и получаем 70 рублей в месяц. В месяце обычно берут 750 часов, по одному центу за час работы, получаем 7.5$ или 225.0 руб. То есть без учета стоимости трафика и использования EBS-тома выходит 295 руб. в месяц. Что уже более чем в два раза ниже стоимости сервера на Linode!

Тонкости

При оформлении Reserved Instances я столкнулся с неприятным моментом. Еще во время экспериментов я создал машину, которую планировал использовать как основную. Естественно, что когда создавал ее, не обратил внимания на то, в какой зоне создается машина. Указывал только, что создавать машину в Ирландии. Когда оплачивал Reserved Instances, указал, что машина будет размещаться в Ирландии, вроде все нормально, все параметры совпадали. Однако по прошествии суток обратил внимание на то, что в Account Activity слишком быстро растет стоимость использования машины.

Обратился в AWS Customer Service and Billing, на удивление они отвечают довольно быстро, примерно в течение часа-двух после обращения. Отвечают очень подробно и обстоятельно. В результате небольшой переписки с ними выяснилось, что имеет значение не только то, в какой стране размещается машина, но и зона размещения. Оплаченная зона и зона размещения у меня не совпадали.

Пришлось переносить все данные на новую машину, что создал в нужной зоне и уничтожать ту, что работала. И в этом моменте я несколько поторопился, тем самым усложнив свою работу.

Еще одна тонкость заключается в том, что стоит только перезагрузить машину, как она получает новый ip-адрес. Для того, чтобы домен указывал на определенную машину, или целую сеть, на Amazon есть специальная услуга, называется Elastic IPs. Это резервирование определенного ip-адреса и возможность его назначения любой работающей машине. Организовано это для быстрого разворачивания новых сетей, подключения более мощных машин. Пользователи при этом не замечают перебоев в работе.

Сам процесс правильного переноса заключается в том, что пока продолжает работать текущая машина, создаем новую машину, полностью ее настраиваем, организуем копирование данных с работающей машины, проверяем ее работу и только после этого перебрасываем значение Elastic IPs на новую машину, то есть фактически переключаем домен на новую машину. После чего уже можно будет удалять ту машину, что работала до этого момента.

Я же поступил, как раньше, остановил текущую машину, создал новую, настраивал ее, заливал данные, назначал ip-адрес. Естественно, что все время, пока создавал и настраивал новую машину, мои сайты не работали. Но как говорится, “хорошая мысля приходит опосля”. По крайней мере теперь буду знать эту особенность и в будущем уже поступлю иначе.

Выводы

Amazon используют не только в качестве web-серверов, но и в качестве ферм обработки данных, требующих больших затрат процессорного времени или большого объема оперативной памяти. В данных задачах альтернативы Amazon до сих пор нет. Ни по ресурсам, ни по стоимости.

Если же использовать машину 100% времени, то и в данной ситуации можно добиться значительного снижения стоимости использования машины. Делая Amazon конкурентоспособным и в случае размещения веб-серверов.

Производительности Micro машины с 618 мегабайтами памяти и одним ядром процессора в 2.27GHz, которое выделяется не равномерно, а согласно нагрузке (подробно на странице Micro Instances), вполне достаточно для размещения многих статических сайтов, или размещения Wordpress-сайта. Встречал статьи о том, что на подобных машинах размещали Drupal и все работало довольно быстро.

Если же требуется больше памяти и гарантированное выделение процессора, то стоит обратить внимание на тариф Small. Да, он дороже, но процессор выделяется полностью и объем оперативной памяти уже составляет 1.7 гигабайта.

Стоимость использования довольно конкурентна, при этом есть возможность использования дополнительных возможностей, таких как слепки жесткого диска, подключение дополнительных машин и т.д.

А некоторые ведь используют машины Amazon в качестве своих рабочих машин. Включая их по утрам, работая удаленно и отключая вечером.

Вне зависимости от того, как вы собираетесь использовать сервера, предложение Amazon очень интересное и заслуживающее внимания!