Развёртывание в AWS

Пошаговое руководство по развёртыванию OpenReplay в Amazon AWS.

Развёртывание в AWS

Video Tutorial

Посмотрите, как развернуть OpenReplay в вашей инфраструктуре AWS

Если вы не любите читать, можете посмотреть это видеоруководство, показывающее, как развернуть OpenReplay в AWS

Стек OpenReplay можно установить на одной машине, и AWS EC2 — идеальный кандидат для этого.

Запуск экземпляра EC2

Section titled Запуск экземпляра EC2
  1. Перейдите в панель управления AWS EC2
  2. ‘Launch a new instance’ (архитектура на основе x86)
  3. Выберите ваш AMI. В этом руководстве мы будем использовать Ubuntu Server 24.04 LTS
  4. Выберите тип экземпляра. Минимальные характеристики — 2 vCPUs, 8 GB of RAM, 50 GB of storage, иначе backend-сервисы OpenReplay просто не запустятся. Поэтому мы рекомендуем как минимум t3.large (или эквивалент), которого достаточно для низкого/умеренного объёма. Если вы ожидаете высокий трафик, вам следует масштабироваться от этого уровня.
  5. Настройте детали экземпляра: при необходимости настройте параметры Network/Subnet или просто оставьте значения по умолчанию
  6. Добавьте хранилище: установите размер 50 ГБ (General Purpose SSD (gp2))
  7. Добавьте теги: настройте параметры или оставьте значения по умолчанию
  8. Группы безопасности: сохраните существующее правило SSH и добавьте ещё 2 для HTTP (80) и HTTPS (443) (источник: 0.0.0.0/0). Убедитесь, что порты DNS (TCP/UDP) открыты в исходящей группе безопасности
  9. Нажмите ‘Review and Launch’
  10. Создайте/загрузите SSH-ключ, затем нажмите ‘Launch instances’

Развёртывание OpenReplay

Section titled Развёртывание OpenReplay
  1. Убедитесь, что ваш экземпляр находится в состоянии Running, затем подключитесь к нему:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem #! wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_INSTANCE_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY ubuntu@$INSTANCE_IP
  1. Установите OpenReplay, указав домен, на котором он будет работать (например, DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

OpenReplay работает с конфиденциальными пользовательскими данными и поэтому требует HTTPS для работы. Это обязательно, иначе трекер просто не начнёт запись. То же самое касается панели управления: без HTTPS вы не сможете воспроизводить сессии пользователей.

Самый простой способ управлять SSL в AWS — настроить балансировщик нагрузки (ELB) и запустить OpenReplay за ним. Другой вариант — сгенерировать или использовать собственный SSL-сертификат и направить ваш поддомен (то есть openreplay.mycompany.com) на экземпляр OpenReplay. Подробнее об обоих вариантах ниже.

Настройка балансировщика нагрузки AWS (вариант 1)

Section titled Настройка балансировщика нагрузки AWS (вариант 1)
  1. Перейдите в ‘EC2’ > ‘Load Balancers’
  2. ‘Create Load Balancer’ и выберите Application Load Balancer
  3. Добавьте слушатель для HTTPS (оставьте только его) и обязательно выберите ту же подсеть (подсети), в которой работает ваш экземпляр OpenReplay.
  4. Выберите существующий сертификат (то есть *.mycompany.com) или сгенерируйте новый в AWS Certificate Manager (ACM). Вы также можете импортировать свой собственный.
  5. Настройте группы безопасности: выберите группу безопасности, ранее созданную для экземпляра OpenReplay (её можно найти в ‘EC2 Dashboard’ на вкладке ‘Security’)
  6. Настройте слушатель и маршрутизацию: сохраните протокол и порт по умолчанию (HTTP:80). Теперь создайте новую целевую группу. Дайте ей имя и выберите IP addresses в Target Type. Убедитесь, что Health check path установлен в /healthz, сохранив остальные параметры по умолчанию. Нажмите ‘Next’, чтобы зарегистрировать цели, добавьте приватный IPv4 экземпляра OpenReplay (порт 80), затем добавьте цель в список (приватный IP можно найти в панели EC2). Проверьте, затем нажмите ‘Create target group’.
  7. Теперь вернитесь на страницу создания LB и перенаправьте эту новую целевую группу на слушатель LB.
  8. Проверьте, затем ‘Create load balancer’

После создания перейдите в Route 53 (или к вашему поставщику услуг DNS) и создайте A Record, который указывает на балансировщик нагрузки, используя его DNS-имя (его можно найти в панели ELB).

Теперь всё готово, OpenReplay должен быть безопасно доступен на поддомене, который вы только что настроили. Вы можете создать учётную запись, посетив страницу /signup (то есть openreplay.mycompany.com/signup).

Используйте/сгенерируйте свой SSL-сертификат (вариант 2)

Section titled Используйте/сгенерируйте свой SSL-сертификат (вариант 2)

В качестве альтернативы созданию балансировщика нагрузки вы можете использовать (или сгенерировать) собственный SSL-сертификат.

  1. Сначала перейдите в Route 53 (или к вашему другому поставщику услуг DNS) и создайте A Record. Используйте домен, который вы ранее указали на этапе установки, и направьте его на экземпляр, используя его публичный IP (его можно найти в панели EC2).

  2. Если вы используете собственный сертификат, создайте SSL-секрет с помощью следующей команды: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Примечание: Если у вас нет сертификата, сгенерируйте его — с автоматическим продлением — для вашего поддомена (того, что был указан при установке) с помощью Let’s Encrypt. Просто подключитесь к экземпляру EC2 OpenReplay, выполните cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh и следуйте инструкциям.

  1. Если вы хотите включить перенаправление с http на https (рекомендуется), раскомментируйте приведённый ниже блок в разделе ingress-nginx в файле /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Стоит отметить, что наш ingress-nginx по умолчанию работает на портах 80|443, но это при необходимости можно легко изменить в vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Наконец, переустановите NGINX OpenReplay:
openreplay -R

Теперь всё готово, OpenReplay должен быть доступен на вашем поддомене. Вы можете создать учётную запись, посетив страницу /signup (то есть openreplay.mycompany.com/signup).

Если у вас возникнут какие-либо проблемы, присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.