Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Образ, на основе которого будут создаваться новые экземпляры сервера при масштабировании
  • Балансировщик нагрузки
  • Конфигурация для запуска
  • Группа масштабирования

Запуск балансировщика нагрузки на базе собственного образа

Создание балансировщика нагрузки с автомасштабированием на базе собственного образа полезно для длительной эксплуатации (месяцы, годы). В этом случае базовый образ из AWS Marketplace обойдется дороже из-за почасовой оплаты, поэтому рекомендуется приобрести и активировать собственную лицензию WCS.

1. Создание образа

1.1. Создайте экземпляр из готового образа FlashphonerWebCallServer AMI и настройте WCS

...

4.4. Настройте политики масштабирования

4.5. Завершите создание группы масштабирования

Запуск балансировщика нагрузки на базе образа из AWS Marketplace

Создание балансировщика нагрузки с автомасштабированием на базе образа из AWS Marketplace полезно для периодического запуска группы серверов, например, при проведении мероприятия (длительностью в часы, дни, недели). В этом случае собственная лицензия с помесячной оплатой обойдется дороже, поэтому на короткие промежутки времени рекомендуется использовать образ из Marketplace.

1. Создание балансировщика нагрузки

Создайте балансировщик нагрузки, как описано выше

2. Создание шаблона запуска (Launch Template)

2.1. Перейдите в боковом меню EC2 Console в раздел "Instances - Launch Templates" и нажмите "Create launch template". Откроется мастер создания шаблонов запуска. Введите имя и описание шаблона.

Image Added

2.2. Выберите последний образ FlashphonerWebCallServer

Image Added

2.3. Выберите тип ВМ, пару ключей для доступа к экземпляру по SSH, security group

Image Added

2.4. Задайте размер и параметры диска для экземпляров, создаваемых на базе этого шаблона

Image Added

2.5. Разверните раздел формы "Advanced details". В поле "User data" введите скрипт для обновления и настройки WCS

Image Added

Пример скрипта обновления и настройки Edge сервера для масштабируемой CDN, предназначенной для доставки WebRTC

Code Block
languagebash
themeRDark
titleEdge setup script
collapsetrue
#!/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=edge
CDN_IP=0.0.0.0
CDN_POINT_OF_ENTRY=172.31.43.82
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_point_of_entry=$CDN_POINT_OF_ENTRY" >> $WCS_CONFIG
echo -e "\ncdn_nodes_resolve_ip=false" >> $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

2.6. Нажмите "Create launch template"

Image Added

Шаблон запуска будет создан

Image Added

3. Создание группы масштабирования

3.1. Перейдите в боковом меню EC2 Console в раздел "Instances - Auto Scaling Groups" и нажмите "Create an Auto Scaling Group". Откроется мастер создания группы. Введите имя группы

Image Added

3.1 Выберите шаблон запуска, укажите версию "Latest"

Image Added

3.2. Укажите соотношение между используемыми ВМ (по требованию/с аукциона). По умолчанию предлагается 70 % по требованию, рекомендуется указать 100 %

Image Added

3.4 Выберите типы создаваемых ВМ

Image Added

3,5. Выберите сеть и подсети для создаваемых ВМ

Image Added

3.6. Выберите "Classic Load Balancer", укажите имя балансировщика, созданного выше

Image Added

3.7. Задайте максимальный размер группы

Image Added

3.8. Укажите политику масштабирования по загрузке процессора, задайте время запуска экземпляра

Image Added

3.9. Проверьте параметры группы

Image Added

3.10. Нажмите "Create Auto Scaling" group

Image Added

Будет создана группа масштабирования, и запущен один экземпляр в группе

Image Added

Тестирование

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

...