Как стать автором
Поиск
Написать публикацию
Обновить

Хостинг на AWS (EC2, EBS, S3) для чайников

Время на прочтение4 мин
Количество просмотров139K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image

Сразу же хочу сказать огромное спасибо хабрачеловеку Gomer который поделился некоторой базовой информацией и ссылками. В этом деле оказалось важным именно понять — с какой стороны копать — так сказать получить первый пинок.

Итак, настал момент ремонта в квартире, и хостинг моего EmForge на домашнем сервере (кстати на базе процессора Atom — но об этом отдельная история) — становился невозможным. Я давно к этому шел (держать сервер дома было не самой лучшей идеей). Куда уходить? Dedicated сервер — дорого, VPS — учитывая что мой сервер на J2EE требовал памяти — получалось тоже не дешево (минимум надо было 512 Mb) — плюс ряд других проблем. И вот я решил (давно собирался) что настало время AWS
Первый взгляд на веб-сайт дал понять то что я и так уже слышал. Да, набор веб-сервисов, да, позволяет запускать image операционных систем, да, можно хранить данные. Но как? Итак, по порядку.

В прицнипе, если говорить о AWS — то это конструктор. С которым вы можете сделать много чего — главное уметь делать. А еще, организацию хостинга сервера с помощью AWS можно сравнить со сборкой компьютера (по сравнению с покупкой готового — заказ хостинга у провайдера):
  • EC2 — это материнка и память. Этот сервис позволяет запускать image операционной системы (запущенный image называется instance). Но — он не обеспечивает хранение каких-либо данных — пока instance работает — хорошо — но если вы его остановили — все. при следующем запуске вы вернетесь к исходному image
  • EBS — это винч. Вы можете сказать — сделай мне винч размером в 25 гигов (можно от 1 Gb до 1Tb) и подключи его к такому-то instance (созданный винч будет называться volume). В результате в вашей системе появляется новый девайс, дальше вы его монтируете, форматируете и работаете с ним. Все что было записано на него — сохраняется не зависимо от жизни instance. Так же можно легко делать snapshot-ы (например для организации backup-ов)
  • S3 — это лента. Туда можно сохранять большие файлы и хранить их там вечно


Я не буду рассматривать тут организацию кластерных систем, High Aviability систем и прочая — мне надо было просто захостить мой сервер — ubuntu, tomcat, postgresql + собственно мое приложение. Что пришлось сделать (если это не очень интересно — можете сразу перейти к концу — где описаны плюсы и минусы):
  1. зарегистрироваться на AWS, получить ключи, поставить EC2-Tools. Под убунту есть хороший starters guide. Это позволит вам работать с сервисами амазона
  2. Выбрать наиболее подходящий image (в aws они называются AMI) с которого вы начнете построение своей системы. Список доступных AMI можно посмотреть тут, в консоли (очень полезная тулза)Для убунту есть как официальные AMI (перечислены на том же starter guide), так и «продвинутые» (кстати — Eric — автор этих AMI — суда по всему продвинутый чел — очень рекомендую почитать его блог — можно найти ответы на многие вопросы). В моем случае я выбрал «продвинутую» 9.04
  3. запустить выбранную AMI (смотри ec2-run-instances) — при запуске можно указать на какой «материнке» запускать (сколько памяти, проц) и где запустить (штаты, европа)
  4. по умолчанию все порты на машине будут закрыты — надо открыть 22 (для ssh) при помощи ec2-authorize default -p 22 ну и в будующем не забыть открыть другие нужные порты (например 80)
  5. зайти на запущенную систему через ssh, поставить и настроить необходимый софт (позже мы сделаем свой AMI со всем необходимым нам)
  6. скорей всего, у вас будет база и еще какие-то данные которые надо хранить на «винче» — потому необходимо сделать EBS volume и подключить его к вашей машине-instance-у. Хорошее описание как это сделать (ну и в принципе, статья, которая оказалась для меня самой полезной) тут — только обратите внимание на комментарии по поводу использования файловых систем Ext3 & XFS от того же Eric-а
  7. после того как вы подключите volume к вашей системе — необходимо изменить настройки базы и других сервисов, чтобы необходимые данных хранились на нем — то есть, чтобы данные лежали на EBS Volume — а не внутри instance — помните- instance может умереть — и вместе с ним умрут и данные — а EBS останется
  8. в прицнипе мы получили систему, какой она нам нужна — теперь надо «зафиксировать» это состояние (чтобы не повторять установку и настройку софта каждый раз при запуске нового instance). та же статья описывает как сделать image для запущенного instance, положить его на S3 и зарегистрировать свой AMI
  9. Ок, у вас есть свой AMI — теперь, если что — вы сможете быстро поднять сервер со всем необходимым софтом
  10. осталась мелочь — взять Elastic IP (фиксированный IP), изменить DNS чтобы использовать новый IP, смигрировать данные в базу. Сервер готов!


Минусы


  • AWS сложный — ну по крайней мере по сравнению с простой покупкой хостинга. Хотя, надеюсь, моя статья поможет сделать его не таким сложным
  • AWS платный. Забудьте про бесплатные лимиты аля Google App Engine — платить придется за все — за каждый час работы instance, за траффик, за EBS, за обращения к EBS и прочее и прочее. Чтобы иметь представление за что и сколько придется платить — можете посмотреть на AWS Activity image


Плюсы


  • Да, платный, но не такой уж и дорогой. При организации хостинга, вам скорей всего не интересно будет платить за instance по часам — можно оплатить год. Минимальный instance будет стоить вам 325$ в год — или менее 30 баксов в месяц. Плюс траффик, EBS, S3 — в сумме не должно получиться более 40. За это вы получаете машину с 1.7 Gb памяти и проц эквивалентный 1.0-1.2 ггц Оптерон. VPS за теже деньги будет что-то на уровне 800 Mb памяти — то есть в два раза меньше
  • Да, AWS сложней чем просто пойти и заказать хостинг — но у меня на все про все ушло около 8-ми часов. Вполне разумное время я считаю
  • AWS расширяем — вы можете запустить instance на простейшей машине — а потом смигрировать на машину с 15-тью гигами памяти (только надо будет перейти на 64-битную систему)
  • как говорилось выше — AWS — конструктор — организация хостига сервера — это простейшая задача которую можно решить — как я понял — изначально AWS предназначался для немного другого (организация кластеров и пр.)


Надеюсь эта информация позволит вам сделать правильный выбор и, если что, сэкономить время и деньги

UPD Только закончил пост — как хабр предложил похожий — как я его раньше не заметил — может «рисоваська» смутила?

UPD2 перенес в хостинг
Теги:
Хабы:
Всего голосов 101: ↑98 и ↓3+95
Комментарии62

Публикации

Ближайшие события