Как подключить 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". Несмотря на кажущююся сложность, подключение сервиса оказалось значительно проще, чем можно было представить. Итак — поехали: Материальная часть:
- AWS(Amazon Web Services) – набор web-сервисов в облаке предоставляемых компанией Amazon. Подробнее.
- Adobe Flash Media Server on Amazon Web Services подробнее.
- Ну, и самое главное — карта Visa или MasterCard, кокого-нибудь банка, с возможностью совершения платежей через интернет. На карте должно быть минимально около 100$, лучше больше. С этой карты будут взыматься денежки за использование ресурсов AWS.
Далее — Вам сюда, для того, чтобы заказать сервис на 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) - Азиатско-Тихоокеанском регионе (Токио)
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 с расчудесным видеороликом с кляксами, реками и красивой музыкой. Вау! Оно работает! Если же нет, то обратите внимание на следующие причины, по которым ничего не вышло:
- Вы прочитали эту статью не с начала и не до конца
- Вы вообще ее не читали (нафиг надо)
- Проверьте запущен ли инстанс если запущен то, в строке инстанса в консоли колонка Status должна быть подсвенчена зеленым и написано «running»
- Проверьте в Security Groups вашу группу на предмет открытых портов 80 и 1935, если нет — откройте путем добавления соответствующих правил к группе (сделать это можно так: открыть в меню консоли Security Groups , выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).
- Ну и уж если совсем никак — убедитесь, что порты 80 и 1935 открыты в брандмауэре вашего компьютера. Для этого зайдите на страничку flashcomguru и пройдите порт-тест. Если причина в этом — то AWS тут ни причем — открывайте эти порты на Вашем компе.
- Если совсем все плохо — попейте чайку и попробуйте сделать все заново...
Тем кто устал, на этом этапе можно бросить читать этот бред и попробовать подключиться к предустановленным приложениям медиа-сервера, а это как обычно live, vod и присоединившийся к ним в 4 версии FMS multicast. Хотя с последним придется сделать несколько более сложных телодвижений, но об этом в последующем посте.
Тем же, чьи планы более амбициозны — добро пожаловать дальше.
Итак теперь нам нужно получить доступ к файловой системе нашего сервера, ну и заодно к административной консоли установленного нами FMS. Дело в том, что административный сервер не запущен на AWS по умолчанию, его придется запустить вручную. Для этого придется вспомнить, что админ. сервер FMS использует порт 1111. Добавим правило для него в группу безопасности (открыть в меню консоли Security Groups ,выбрать в верхней части панели вашу группу, в нижней части панели на вкладке Inbound воспользоваться вполне интуитивно-понятной формой добавления правил. IP 0.0.0.0/0 обозначает что правило действует для всех IP адресов).
Далее: используем любимый SSH клиент, если любимого нет, то я рекомендую WinSCP если вы на винде, и утилиту PuTTYgen для генерации приватного ключа.
- Откройте PuTTYgen
- Выберите Conversions > Import Key
- Выберите ваш файл с расширением .pem который вы сохранили при создании инстанса (блн, где же он...)
- 4. Выберите File > Save Private Key в появившемся диалоге со всем покорно согласитесь.
- PuTTYgen сгенерирует файл с расширением .ppk — дайте ему запоминающееся имя и сохраните куда-нибудь, чтоб можно было его впоследствии лего найти.
- Заходим в AWS Management Console и копируем Public DNS
- Открываем WinSCP
- Выделяем в дереве левой части окна Session
- Вводим в поле Host Name содержимое буфера обмена (наш Public DNS)
- Проверяем — номер порта должен быть 22
- В поле UserName вводим «root»
- Выбираем в поле Private Key File файл .ppk, который мы сгенерировали с помощью PuTTYgen в п.5.
- Для поля File Protocol выбираем SCP
- Нажимаем Save и вводим человекопонятное имя для профиля.
- Жмем «Login» , коннектимся к инстансу, если выкинет предупреждение по безопасности — соглашаемся и получаем доступ к файлам через графический интерфейс WinSCP - внешне похоже на Total Commander.
- Идем в директорию установки FMS это opt/adobe/fms находим там папку conf, заходим в нее и скачиваем на диск файл fms.ini. Это файл конфигурации медиасервера. На всякий случай делаем копию оригинала файла.
- Открываем fms.ini и ищем там строки:
SERVER.ADMIN_USERNAME = придумываем свой суперсекретный логин
SERVER.ADMIN_PASSWORD = придумываем свой суперсекретный пароль
SERVER.ADMINSERVER_HOSTPORT = :1111
- Закачиваем файл обратно на сервер.
- Теперь нужно рестартнуть сервак. Для этого в панели инструментов WinSCP находим кнопочку «Терминал», запускаем терминал и в поле ввода комманды пишем
opt/adobe/fms/server restart
и ждем рестарта сервера. На амазоне это может происходить несколько дольше чем на локале. - Стартуем административный сервер
opt/adobe/fms/adminserver start
- Заходим в админку http://[наш Public DNS]/fms_adminConsole.htm
- В поле Server Adress ввовдим rtmp://[наш Public DNS], в поле Login - свой суперсекретный логин, в поле Password - свой суперсекретный пароль
- Жмем «Login» и заходим в интерфейс управления нашим сервером.