morfizm (morfizm) wrote,
morfizm
morfizm

AWS

Кстати, по поводу хостинга.
Я раздумываю перенести сайт на Амазоновский облачный хостинг.
Четкой информации именно для моего случая не нашел сходу, потому к тебе обращаюсь.

Нужны готовые php mysql (самостоятельно сервер ставить не хочу).
Нагрузка, скажем, 500 посетителей в день.
Какое ограничение по трафику нужно учесть, если средняя глубина просмотра около 3-ух страниц и средний размер страницы 1 mb?

Вообще у них(у вас) есть предложение под такие параметры?
Сколько это будет стоить?

========

Надо возродить привычку какие-то длинные/полезные комменты делать публично как новые посты, дабы результат потраченного времени ещё кому-то пригодился.

Короче, отвечаю на твой вопрос.
AWS напрямую не занимается поддержкой софта вроде mysql/php, и не продаёт пакеты-конструкторы. Тем не менее, есть два пути, которые довольно просты, и минимизируют необходимость "самостоятельно ставить сервер".

1. Погуглить на слова вроде getting PHP and MySQL running on Amazon EC2:
http://www.alexkorn.com/blog/2011/03/getting-php-mysql-running-amazon-ec2/
MySQL устанавливается и запускается в две строки:
sudo yum install mysql-server
sudo /etc/init.d/mysqld start
Можно также погуглить на установку готовых "пакетных конструкторов", вроде Django но для PHP или чего там тебе нужно (см., напр., список фреймворков http://www.phpwact.org/php/mvc_frameworks). Можно пробовать искать по словам EC2 + LAMP (LAMP это "стандартный" комплект из Linux Apache MySQL PHP).

2. Можно где-то скачать готовый image или создать свой - за пределами AWS - и залить его в AWS, чтобы с него разворачивать EC2 instance. Если я не ошибаюсь, любой Linux-based image можно допилить, чтобы он почти без изменений работал на EC2 instances. Например, вот, после пары секунд поиска, мне попался какой-то готовый image: http://www.opentaps.org/docs/index.php/Opentaps_Amazon_EC2_Images

Я бы советовал идти 1-м путём и настраивать всё с нуля, благо это делается сравнительно легко, кроме того, это можно сделать один раз. После чего можно сохранить image как EBS или даже в S3 (копию), и всегда его иметь под рукой, если необходимо переустановить.

Чтобы ответить на вопрос, сколько AWS стоит, надо вначале сделать краткий экскурс в "что это такое". Итак, AWS - это набор сервисов, позволяющих заменить серверную часть веб-софта (серверы, или даже целые дата центры). Машины (хосты) можно аллоцировать на лету, они разворачиваются за несколько минут, и в любой момент можно их убить. Оплата идёт по часам использования, с округлением вверх к ближайшему часу.

Ряд плюсов для пользователя AWS по сравнению с другими hosting solutions:
1. Полный контроль над операционкой и софтом. Root access, и все дела. (Вытекающие последствия: как бы да, необходимо настраивать, но, благо, поставляемый инструментарий позволяет это делать очень легко, и это можно сделать только один раз). Это гибкость, позволяющая строить более эффективные решения, а также пробовать больше комбинаций из разных технологий.
2. Storage and database solutions, сразу обладающие какими-то полезными характеристиками - например, повышенный availability из-за дублирования данных в разных датацентрах.
3. Easy scalability. Ты платишь только за то, что реально используешь, и тебе дают ровно то, за что ты заплатил. Это означает никаких лимитов. Если на твой сервер вдруг придёт тысяча пользователей, и будут одновременно качать 200 KB/sec, Amazon, вместо того, чтобы резать и обламывать, не моргнув глазом, даст тебе 200 MB/sec, и потом включит трафик в счёт. Понятно, что один хост может не справиться с большой нагрузкой, но ты можешь настроить, чтобы новые хосты выделялись автоматически, с тем image'м который ты укажешь, и может дать автоматический load balancing. Понятно, что если ты напишешь софт, который хранит базу локально на storage у хоста, то распределённости никакой не получится - т.е. для настоящей scalability тебе надо всё-таки самому всё продумать, чтобы все используемые технологии были scalable.
4. Много разных других плюсов. Обо всём почитать можно вот здесь:
http://aws.amazon.com/
http://aws.amazon.com/products/
Вот здесь можно про EC2 и pricing:
http://aws.amazon.com/ec2/
http://aws.amazon.com/ec2/instance-types/
http://aws.amazon.com/ec2/pricing/
Если ты не хочешь это читать, потому что тебе не комфортен английский - читай со словарём и учи английский, пригодится. IMHO, на таком уровне, чтобы читать доки к сервисам, английский надо знать всем, кто хочет что-то делать в IT сфере.

Сколько это стоит?
Для новых пользователей Amazon даёт Free Tier.
Вот здесь можно почитать, что он даёт: http://aws.amazon.com/free/
По сути, это один "Micro" instance бесплатно + сколько-то storage и трафика.
"Micro" instance плох тем, что тебе не даётся в полное распоряжение даже один CPU core, а даются лишь "bursts" - т.е. по performance характеристикам это чем-то аналогично shared hosting. Небольшие сайты в стиле "визитных карточек" вполне нормально будут на этом идти, и если тебя устраивают, что страницы иногда будут загружаться по 2-3 секунды (а иногда и быстро), то это может быть хороший вариант, по крайней мере, для начала. Это уже может быть лучше, чем множество shared hosting'ов. После первого года Micro instance будет стоить $15/мес.

Тем не менее, маломальски-серьёзный вариант, "small" instance, начинается где-то с $0.065/час - это $45/мес. Это 1.7GB памяти, 160GB диск, 1 virtual core полностью в твоём распоряжении, выбираешь 32 бит или 64. Вдополнение, ты будешь платить сколько-то за EBS storage для boot image (порядка $1-2/мес, см. расценки за storage) и будешь какие-то копейки платить за трафик. В случае name service, ещё какие-то копейки за каждое доменное имя, которое ты регистрируешь на внутренние адреса EC2. Суммарно, может, $5-10 в месяц набежит для небольшого сайта.

Короче, для небольшого сайта реалистичные варианты это:
1. Free tier - бесплатно первый год, потом порядка $20-25/мес,
2. Small instance - сразу порядка $50-60/мес.

Немножко про основные сервисы.
* EC2 - это динимаческое выделение хостов.
* EBS - это такой storage, который похож на хард диск - очень сравним по скорости, намного выше по надёжности, и ты платишь как за хранение, так и за использование (за количество операций). EBS volumes можно легко монтировать к разным instances.
* S3 - это сервис для долгосрочного хранения. Он не очень быстр, я видел задержки порядка 200 мс, но (а) ты можешь параллельно отправить 50 запросов и скачать очень многое параллельно - поэтому это отлично для, скажем, картинок для веб страницы, (б) availability очень много девяток, информация дублируется в разных data centers, (в) сравнительно дёшево. Дешевле только на харде прямо на instance, но там и надёжность лажёвая, и доступа распределённого нет.
* SimpleDB, DynamoDB - распределённые NoSQL базы, оплата за объёмы и за запросы. В DynamoDB даже сделали оплату за пропускную способность - сколько запросов в секунду - и, соответственно, числа, которые ты купил, будут нести определённые гарантии.
Tags: software development
Subscribe
  • 11 comments
  • 11 comments

Comments for this post were locked by the author