WCS в Amazon EC2¶
WCS-сервер может быть развернут в Amazon Elastic Compute Cloud (EC2) следующими способами:
Настройка виртуальной машины и установка WCS с нуля¶
Этим способом можно воспользоваться, если Вам необходима более тонкая настройка операционной системы, установка дополнительный компонентов и т.п. Запустите виртуальную машину Linux по инструкции от AWS, настройте ее по необходимости, затем установите WCS по краткой или подробной инструкции.
Развертывание готового образа WCS из Amazon AWS Marketplace¶
-
Откройте страницу Web Call Server на Amazon AWS Marketplace, нажмите
Continue to Subscribe
:
-
Откроется страница с описанием продукта и почасовой стоимостью в зависимости от выбранной конфигурации сервера. Нажмите
Continue to Configuration
:
-
Откроется страница конфигурации сервера. Выберите регион размещения сервера и нажмите
Continue to Launch
:
-
Откроется страница запуска сервера. Выберите тип виртуальной машины, который будет использован для создания экземпляра сервера:
-
Прокрутите страницу до настройки
Security Group Settings
, нажмитеCreate New Based On Seller Settings
:
-
Отобразится страница создания Security Group. Укажите имя группы, описание и нажмите
Save
:
-
Выберите новую группу в выпадающем списке:
-
Нажмите Launch:
-
Отобразится сообщение об успешном запуске:
-
Нажмите на ссылку
EC2 Console
. В разделеInstances
найдите запущенную виртуальную машину:
-
Откройте в браузере адрес веб-интерфейса запущенного WCS-сервера
https://host.amazonaws.com:8888
, примите исключение безопасности. В качестве пароля администратора используйте Instance ID запущенной виртуальной машины:
-
Проверьте публикацию и воспроизведение WebRTC-потока с веб-камеры на примере Two Way Streaming:
Развертывание WCS из образа на AWS Marketplace с дополнительной настройкой¶
Готовый образ WCS на AWS Marketplace содержит лишь базовые настройки. Для изменения настроек необходимо зайти по SSH в созданный экземпляр сервера и перезапустить WCS. Для получения готового к работе экземпляра "из коробки" можно указать пользовательский скрипт для изменения настроек при первом запуске сервера. Эта возможность полезна, например, при развертывании группы масштабирования.
-
В EC2 Console перейдите в раздел
Instances
-Instances
и нажмитеLaunch instance
-
Выберите образ, указав при поиске "Web Call Server"
-
Просмотрите информацию об образе
-
Выберите тип ВМ
-
Прокрутите вниз до конца страницу
Configure Instance Details
и вставьте в полеUser data
скрипт обновления и настройки WCS
Пример скрипта приведен ниже -
Настройте группу безопасности. По умолчанию, группа будет создана из настроек образа. При необходимости, добавьте порты
-
Нажмите
Review and Launch
. Если в параметрах нет ошибок, нажмитеLaunch
Будет запущен экземпляр сервера
-
Откройте веб интерфейс сервера, опубликуйте поток в примере Two Way Streaming и проиграйте его
Пример скрипта, который обновляет WCS до последней сборки и настраивает Origin сервер для публикации WebRTC и RTMP потоков
Origin setup script
#!/bin/bash
# Stop WCS before reconfiguring
PID="$(pgrep -f 'com.flashphoner.server.Server' | grep -v bash)"
if [ -n "$PID" ]; then
service webcallserver stop
fi
# Update WCS to the latest build (optionally, set to false if you don't)
UPDATE=true
if $UPDATE; then
cd /tmp
wget --timeout=10 --no-check-certificate https://flashphoner.com/download-wcs5.2-server.tar.gz -O wcs5-server.tar.gz
if [ $? -eq 0 ]; then
mkdir -p FlashphonerWebCallServer-5.2-latest && tar xzf wcs5-server.tar.gz -C FlashphonerWebCallServer-5.2-latest --strip-components 1
cd FlashphonerWebCallServer-5.2-latest
chmod +x install.sh
./install.sh -silent
cd ..
rm -rf FlashphonerWebCallServer-5.2-latest wcs5-server.tar.gz
fi
fi
# Configuration setup
WCS_CONFIG=/usr/local/FlashphonerWebCallServer/conf/flashphoner.properties
JVM_CONFIG=/usr/local/FlashphonerWebCallServer/conf/wcs-core.properties
#CDN settings
CDN_ROLE=origin
CDN_IP=0.0.0.0
echo -e "\ncdn_enabled=true" >> $WCS_CONFIG
echo -e "\ncdn_ip=$CDN_IP" >> $WCS_CONFIG
echo -e "\ncdn_role=$CDN_ROLE" >> $WCS_CONFIG
echo -e "\ncdn_nodes_resolve_ip=false" >> $WCS_CONFIG
# Request keyframes from WebRTC publishers every 5 seconds
echo -e "\nperiodic_fir_request=true" >> $WCS_CONFIG
# Disable RTMP keepalives to publish from OBS
echo -e "\nkeep_alive.enabled=websocket,rtmfp" >> $WCS_CONFIG
# Configure heap settings
HEAP_SIZE=512m
sed -i -e "s/^\(-Xmx\).*\$/\1$HEAP_SIZE/" $JVM_CONFIG
# Start WCS after reconfiguring
PID="$(pgrep -f 'com.flashphoner.server.Server' | grep -v bash)"
if [ -n "$PID" ]; then
service webcallserver restart
else
service webcallserver start
fi
# Disable internal firewall, ports are allowed/blocked on security group level
iptables -F
Известные проблемы¶
1. При переходе к Amazon Linux 2 AMI в качестве базового образа, для управления сервисами используется systemd¶
Симптомы
Команда
возвращает
команда
не работает