понедельник, 6 июня 2011 г.

Как подключить Adobe Flash Media Server on Amazon Web Services.

Вашему вниманию пошаговая инструкция пеодключения Adobe FMS 4 на AWS: Как известно Adobe Flash Media Server распространяется в 4 вариантах: Adobe Flash Media Streaming Server 4 Adobe Flash Media Interactive Server 4 Adobe Flash Media Enterprise Server 4 Adobe Flash Media Server on Amazon Web Services По ряду причин (главная из которых нежелание отваливать сразу огромные деньжищщи за лицензию на полно-функциональную версию), самым приемлемым вариантом для небольшого стартапа с ограниченным бюджетом, но требующего полной функциональности, включая поддержку P2P и IP Multicast streaming является последний. Кроме того, размещение приложения на AWS снимает головную боль по поводу физического размещения сервера и дальнейшего масштабирования проекта при необходимости. Только плати бабки, причем вполне приемлемые за услугу "2 в 1". Несмотря на кажущююся сложность, подключение сервиса оказалось значительно проще, чем можно было представить. Итак — поехали: Материальная часть:

  1. AWS(Amazon Web Services) – набор web-сервисов в облаке предоставляемых компанией Amazon. Подробнее.
  2. Adobe Flash Media Server on Amazon Web Services подробнее.
  3. Ну, и самое главное — карта Visa или MasterCard, кокого-нибудь банка, с возможностью совершения платежей через интернет. На карте должно быть минимально около 100$, лучше больше. С этой карты будут взыматься денежки за использование ресурсов AWS.
Первым делом, если Вы еще не зарегистрировались на amazone - необходимо пройти процедуру регистрации и привязки карты. Сделать это можно прямо со странички сервиса на adobe.com, ну или с морды амазона.

Далее — Вам сюда, для того, чтобы заказать сервис на Adobe, там все интуитивно понятно и местами даже красиво. Все самое веселое впереди. За регистрацию сервиса Adobe попросят у Вас 5$ и плюс 5$ за использование сервиса в течение ближайшего месяца (на приактике сняли почему-то 13$ - 3$ я так и не понял за что). Впочем, платил не я, так, что мог вполне, что-то упустить...

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

Первой и наиглавнейшей задачей является поднятие инстанса. Инстанс на AWS это операционная система, с предустановленным ПО (в нашем случае Adobe Flash Media Enterprise Server 4), развернутая на Вашем виртуальном компьютере в облаке AWS. Поднимать мы его будем из выбранного нами AMI (Amazon Machine Image )— образа операционной системы с необходимым нам ПО. Для этого заходим в AWS Management Console под своим аккаунтом и переключаемся на вкладку EC2. Тут наверное стоит рассказать о первой засаде поджидающей нас на этом пути. Дело в том, что AWS предоставляет 5 вариантов географического расположения своих дата-центров:

  • US-East (Northern Virginia) - США-Восток (Северная Вирджиния)
  • US-West (Northern California) - США-Запад (Северная Калифорния)
  • EU (Ireland) Region- Европа (Ирландия)
  • Asia Pacific (Singapore) - Азиатско-Тихоокеанского региона (Сингапур)
  • Asia Pacific (Tokyo) - Азиатско-Тихоокеанском регионе (Токио)
Ежу понятно, что предпочтительнее было бы разместиться как можно ближе к целевой аудитории, а это EU (Ireland) Region, но, не смотря на все маркетиногвые заявления Adobe, доступный вариант AMI существует только для US-East (Northern Virginia). На форуме Adobe поднимался этот вопрос, и есть надежда, что данное положение в скором времени исправится, однако на момент написания этой статьи воз и ныне там. Не пытайтесь обмануть ситуацию и поставить Адобовский AMI на нужную Вам локацию, я пробовал — нигада из этого не выходит, в самом конце процедуры все падает в ошибку. Вобщем выбираем US-East (Northern Virginia) и смело жмем на кнопку «Launch Instance». Amazon предлагает несколько вариантов AMI, однако существует возможность выбрать из великого множества образов, разработанных сторонними разработчиками, что нам собственно и надо, для этого в появившемся окне, выбираем вкладку «Community AMIs». Чтоб не перебирать порядка 7000 предложенных вариантов, в поле ввода поиска вводим что-нибудь типа «adobe» и получаем в результате единственный, доступный на сегодняшний день вариант — ami-6a1deb03, FMS базирующийся на операционной системе CentOS. Жмем кнопку «Select», в результате чего переходим к следующему шагу «Instance Details». Поскольку с зонами размещения нам все ясно, то и комбобокс Availability Zone мы можем так-же оставить без внимания — пох, типа все равно, нас это не устраивает. Однако на комбобокс Instance Type стоит обратить пристальное внимание. Дело в том, что в отличие от коробочных вариантов поставки, FMS на AWS ограничивает число возможных одновременных RTMFP коннектов, причем от выбора порядка этого ограничения будет зависеть сумма Ваших денежек, которые Вы будете тратить на содержание Вашего проекта. Ограничения такие:

Large 100 RTMFP - US$0.44

High-memory extra large 100 RTMFP - US$0.60

High-CPU extra large 1000 RTMFP - US$1.30

Extra large 1000 RTMFP - US$1.30

High-memory double extra large 10000 RTMFP - US$4.60

High-memory quadruple extra large 10000 RTMFP - US$5.60

Плата взымается за час, причем поминутной тарификации нет. Вобщем выбирайте необходимый тип инстанса исходя из амбиций и бюджета Вашего проекта. И коль скоро мы заговорили о денежной стороне вопроса стоит упомянуть тарифы на традиционные формы работы с медиасервером (RTMP) в этом формате плата взымается с гигабайт трафика:

  • Входящий 0,1$ за гиг
  • Исходящий 0,15$ за гиг
Как видите цены достаточно приемлемые, ну и это все о грусном — вернемся к нашим баранам.

На следующем шаге оставляем все как есть, далее нам предлагается присвоить теги вновь создаваемому экземпляру инстанса. Теги присваиваются в виде пары ключ-значение и нужны они для упрощения администрирования ваших ресурсов на EC2, если у вас их уже много. Доках FMS написано, что инстансы FMS на AWS не поддерживают метаданных, так что полезно будет ввести только значение тегу name, оно будет отображаться в колонке "имя инстанса" в AWS Management Console.

Следующий шаг — генерация пары ключей для доступа к серверу по SSH. Введите имя пары и нажмите на кнопку — в результате Вам предложат сохранить файл с расширением .pem и именем пары на локальный диск. Файлик нам понадобиться, так что сохраните его с надлежащими почестями (главное не забыть куда).

На следующем шаге (Configure Firewall) нам необходимо выбрать Security Groups - группу правил безопасности, иными словами открыть нужные для работы инстанса порты. Есть дефолтная группа безопасности с уже открытыми портами 22(SSH) и 80(HTTP), но надо учесть, что для нормальной работы FMS нам нужны еще 1935(TCP) и 1935(UDP), если собираетесь работать с P2P и Мультикастингом. Кроме того, учтите, что сменить группу для уже созданного инстанса нельзя, можно только добавить/удалить правила, что вобщем-то спасает в любом случае. Исходя из религиозных побуждений создадим собственную группу и добавим правила для портов 22(SSH), 80(HTTP), 1935(TCP), 1935(UDP) и 443(HTTPS) на всякий случай.

Все можем смело идти к окончанию процедуры создания инстанса, в результате чего в консоли ( AWS Management Console) на вкладке EC2 появится строка с вновь созданным инстансом. Ура!

Проверим работает ли созданный нами инстанс на практике: Выделим в панели строку соответствующую, нашему инстансу и в нижней части панели выберим вкладку Description, если по каким-то причинам она уже не выделена. Найдем строку Public DNS и скопируем ее содержание. Откройте адрес http://[Public DNS] в браузере и вы увидите стартовую страницу Adobe FMS 4 с расчудесным видеороликом с кляксами, реками и красивой музыкой. Вау! Оно работает! Если же нет, то обратите внимание на следующие причины, по которым ничего не вышло:

  1. Вы прочитали эту статью не с начала и не до конца
  2. Вы вообще ее не читали (нафиг надо)
  3. Проверьте запущен ли инстанс если запущен то, в строке инстанса в консоли колонка Status должна быть подсвенчена зеленым и написано «running»
  4. Проверьте в Security Groups вашу группу на предмет открытых портов 80 и 1935, если нет — откройте путем добавления соответствующих правил к группе (сделать это можно так: открыть в меню консоли Security Groups , выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).
  5. Ну и уж если совсем никак — убедитесь, что порты 80 и 1935 открыты в брандмауэре вашего компьютера. Для этого зайдите на страничку flashcomguru и пройдите порт-тест. Если причина в этом — то AWS тут ни причем — открывайте эти порты на Вашем компе.
  6. Если совсем все плохо — попейте чайку и попробуйте сделать все заново...
Итак FMS запущен все работает, денежки потекли. Ой, стоп, яж только попробовать... Не беда. Чтобы грохнуть запущенный инстанс — выберите в консоли в выпадающем списке Instance Action строчку «Terminate» и все погаснет. Кстати там же, при необходимости, можно выбрать Reboot чтобы перезапустить инстанс.

Тем кто устал, на этом этапе можно бросить читать этот бред и попробовать подключиться к предустановленным приложениям медиа-сервера, а это как обычно live, vod и присоединившийся к ним в 4 версии FMS multicast. Хотя с последним придется сделать несколько более сложных телодвижений, но об этом в последующем посте.

Тем же, чьи планы более амбициозны — добро пожаловать дальше.

Итак теперь нам нужно получить доступ к файловой системе нашего сервера, ну и заодно к административной консоли установленного нами FMS. Дело в том, что административный сервер не запущен на AWS по умолчанию, его придется запустить вручную. Для этого придется вспомнить, что админ. сервер FMS использует порт 1111. Добавим правило для него в группу безопасности (открыть в меню консоли Security Groups ,выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).

Далее: используем любимый SSH клиент, если любимого нет, то я рекомендую WinSCP если вы на винде, и утилиту PuTTYgen для генерации приватного ключа.

  1. Откройте PuTTYgen
  2. Выберите Conversions > Import Key
  3. Выберите ваш файл с расширением .pem который вы сохранили при создании инстанса (блн, где же он...)
  4. 4. Выберите File > Save Private Key в появившемся диалоге со всем покорно согласитесь.
  5. PuTTYgen сгенерирует файл с расширением .ppk — дайте ему запоминающееся имя и сохраните куда-нибудь, чтоб можно было его впоследствии лего найти.
  6. Заходим в AWS Management Console и копируем Public DNS
  7. Открываем WinSCP
  8. Выделяем в дереве левой части окна Session
  9. Вводим в поле Host Name содержимое буфера обмена (наш Public DNS)
  10. Проверяем — номер порта должен быть 22
  11. В поле UserName вводим «root»
  12. Выбираем в поле Private Key File файл .ppk, который мы сгенерировали с помощью PuTTYgen в п.5.
  13. Для поля File Protocol выбираем SCP
  14. Нажимаем Save и вводим человекопонятное имя для профиля.
  15. Жмем «Login» , коннектимся к инстансу, если выкинет предупреждение по безопасности — соглашаемся и получаем доступ к файлам через графический интерфейс WinSCP - внешне похоже на Total Commander.
Для запуска админки медиасервера нужно произвести следующие действия:

  1. Идем в директорию установки FMS это opt/adobe/fms находим там папку conf, заходим в нее и скачиваем на диск файл fms.ini. Это файл конфигурации медиасервера. На всякий случай делаем копию оригинала файла.
  2. Открываем fms.ini и ищем там строки:
  3. SERVER.ADMIN_USERNAME = придумываем свой суперсекретный логин SERVER.ADMIN_PASSWORD = придумываем свой суперсекретный пароль SERVER.ADMINSERVER_HOSTPORT = :1111
  1. Закачиваем файл обратно на сервер.
  2. Теперь нужно рестартнуть сервак. Для этого в панели инструментов WinSCP находим кнопочку «Терминал», запускаем терминал и в поле ввода комманды пишем opt/adobe/fms/server restart и ждем рестарта сервера. На амазоне это может происходить несколько дольше чем на локале.
  3. Стартуем административный сервер opt/adobe/fms/adminserver start
  4. Заходим в админку http://[наш Public DNS]/fms_adminConsole.htm
  5. В поле Server Adress ввовдим rtmp://[наш Public DNS], в поле Login - свой суперсекретный логин, в поле Password - свой суперсекретный пароль
  6. Жмем «Login» и заходим в интерфейс управления нашим сервером.
Все. Дальше делаем что хотим. Он Наш! Ссылки по теме:
http://docs.amazonwebservices.com/AWSEC2/2011-05-15/GettingStartedGuide/ - как стартануть инстанс - оригинальный урок от AWS

Комментарии: 8:

В 29 августа 2011 г. в 00:34 , Blogger a_[w] сказал(а)...

А вы не пробовали создать собственный AMI из своего конфига? Может в процессе создания можно будет что-то подшаманить и с него инстансы можно будет тягать по зонам. :)

 
В 29 августа 2011 г. в 12:40 , Blogger Unknown сказал(а)...

Пробовал, но что-то не задалось. На последних этапах создания падает в ошибку и ничего не происходит. Ну, я сильно упираться не стал...

 
В 16 ноября 2011 г. в 07:56 , Blogger SoEasy сказал(а)...

Этот комментарий был удален автором.

 
В 16 ноября 2011 г. в 07:57 , Blogger SoEasy сказал(а)...

А если я не буду использовать RTMFP вовсе, то денежка за часы взыматься не будет, а только за гигабайты, прошедщие через RTMP?

 
В 16 ноября 2011 г. в 09:29 , Blogger Unknown сказал(а)...

Совершенно верно. Тут как раз и лазейка для оптимизации расходов. К примеру есть смысл чат и контроль юзеров онлайн сделать на основе rtmp, а трансляцию медиа-контента (тяжелый трафик, но хоть как-то ограниченный по времени) на rtmfp.

 
В 27 февраля 2012 г. в 08:44 , Blogger Jolz сказал(а)...

Проделал все как написано 2 раза с самого начала, но один результат: Заходим в админку http://[наш Public DNS]/fms_adminConsole.htm

получаем такую ссылку

http://ec2-23-20-66-42.compute-1.amazonaws.com/fms_adminConsole.htm
и приходим к...
...К сожалению, Google Chrome не может открыть страницу ec2-23-20-66-42.compute-1.amazonaws.com.
Намекните пожалуйста в чем может быть дело =(

 
В 27 февраля 2012 г. в 13:27 , Blogger Unknown сказал(а)...

1. Попробуйте попасть в админку с морды FMS. Это "http://[наш Public DNS]" там, среди прочего, есть красная кнопка "Launch admin console"
2.Успешно ли выполнено это:"Стартуем административный сервер opt/adobe/fms/adminserver start"?

 
В 28 февраля 2012 г. в 03:33 , Blogger Jolz сказал(а)...

Спасибо за ответ!
Создал новый instance на базе ami-2f945346 ,в итоге таки пробрался в интерфейс управления сервером.

А используя ami-6a1deb03 в логах появлялась вот такая ошибка:
ec2-run-user-data: user-data was not available
Javascript[1105]: Connection rejected by server. Reason : [ Server.Reject ] : (_defaultRoot_, _defaultVHost_) : Application (fms_adminConsole.htm:1111) is not defined.

 

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница