понедельник, 12 декабря 2011 г.

Бесплатный хостинг в amazon ec2

Удивительно, но при желании можно легко получить собственный виртуальный сервер в амазоновском облаке EC2 практически без затрат денег.

Мотивация

Для чего это может быть нужно?
  • поднять свой прототип сайта, проскейлить его если вырастет нагрузка
  • повесить себе прокси
  • хостить блог, картинки итп
  • просто держать бэкапы в облаке (S3)
  • создать софтовый RAID поверх S3 хранилища
  • сделать примерный образ желаемой машины, и расклонировать ее на 100 нодов, причем за некоторые можно платить как за обязательные, а другие будут запускаться только при определенной нагрузке

Тарифы

У amazon'a есть различные типы инстансов. Бесплатен Micro:
Micro Instance
--------------
613 MB memory
Up to 2 EC2 Compute Units (for short periodic bursts)
EBS storage only
32-bit or 64-bit platform
I/O Performance: Low
API name: t1.micro
На него действуют следующие ограничения:
AWS Free Usage Tier (Per Month):
--------------
750 hours of Amazon EC2 Linux Micro Instance usage 
    (613 MB of memory and 32-bit and 64-bit platform support)
    – enough hours to run continuously each month*
750 hours of an Elastic Load Balancer plus 15 GB data processing*
10 GB of Amazon Elastic Block Storage, plus 1 million I/Os and 1 GB of snapshot storage*
5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests*
15 GB of bandwidth out aggregated across all AWS services*
25 Amazon SimpleDB Machine Hours and 1 GB of Storage**
100,000 Requests of Amazon Simple Queue Service**
100,000 Requests, 100,000 HTTP notifications 
1,000 email notifications for Amazon Simple Notification Service**
10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests**
На более серьезный setup можно прикинуть расходы в этом калькуляторе.
Если очень грубо, то за 60$ в мес можно получить 1.7Ghz x 1Core, 2Gb ram, 100Gb места и копеечный траффик.

Настройка

Ставим putty и puttygen отсюда

Создаем аккаунт в amazon через admin console. Для этого понадобится действующая кредитка VISA или MasterCard. Как и многие другие магазины они ее проверяют списывая 1 USD.

Далее

Выбираем регион (самый ближайший - IRELAND)
Жмем кнопку Launch instance
Выбираем ОС, по умолчанию предлагают Basic 32-bit Amazon Linux AMI (бесплатный - только linux). При желании поставить LAMP сразу можно ткнуть вкладку Community AMIs и найти там что-то из этого списка готовых образов. Также можно и windows но это дороже.
На вкладке Instance details проверяем что мы делаем Micro инстанс (t1.micro); вводим имя хоста.
Создаем пару ключей для авторизации чз Putty. Скачиваем pem-файлик.
Создаем новую группу безопасности: в поле type = ssh, source = 0.0.0.0/0, жмем add rule.
Идем на вкладку Instances, как только сервер запущен мы сможем залезть в консоль по ssh.
Ура.. Теперь у нас есть свой сервер :].

Теперь цепляемся по ssh к нему.
Запускаем Puttygen, открываем в нем скачанный pem-файл, жмем кнопку import.
Находим dns - имя хоста в админ консоли.
Запускаем путти, коннектится будем под именем ec2-user, поэтому коннект лучше называть ec2-user@dns-host-name.
В свойствах соединения, в Connection -> SSH -> Auth добавляем *.ppk файл сгенеренный нами ранее с помощью puttygen.
Жмем save. Потом соединяемся (user = ec2-user, пароль не нужен.. он в публичном ppk ключе).
А вот и шелл..