Развертывание на 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’
  3. Выберите ваш AMI. Для этого руководства мы будем использовать Ubuntu Server 20.04 LTS
  4. Выберите тип экземпляра. Минимальные характеристики: 2 vCPUs, 8 GB of RAM, 50 GB of storage, иначе службы бэкенда OpenReplay просто не запустятся. Поэтому мы рекомендуем использовать как минимум t3.large (или эквивалент), который достаточен для небольшого/умеренного объема. Если вы ожидаете высокой нагрузки, следует начать масштабирование отсюда.
  5. Настройте детали экземпляра: настройте параметры Network/Subnet при необходимости или просто оставьте настройки по умолчанию
  6. Добавьте хранилище: установите размер в 50 GB (General Purpose SSD (gp2))
  7. Добавьте теги: настройте параметры или оставьте настройки по умолчанию
  8. Группы безопасности: сохраните существующее правило SSH и добавьте еще 2 для HTTP (80) и HTTPS (443) (source: 0.0.0.0/0)
  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). Теперь создайте новую target group. Дайте ей название и выберите IP addresses в Target Type. Убедитесь, что Health check path установлен на /healthz, сохраняя при этом другие параметры по умолчанию. Нажмите ‘Next’, чтобы зарегистрировать цели, добавьте частный IPv4 экземпляра OpenReplay (порты 80), затем добавьте цель в список (частный IP можно найти на панели управления EC2). Просмотрите, затем нажмите ‘Create target group’.
  7. Теперь вернитесь на страницу создания LB и направьте эту новую target group на слушателя LB.
  8. Просмотрите, затем ‘Create load balancer’

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

Наконец, включите use-forwarded-headers, убрав комментарий со следующей строки в разделе ingress-nginx, в /var/lib/openreplay/vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    config:
      use-forwarded-headers: true

Теперь всё готово, 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. Просто подключитесь к экземпляру OpenReplay EC2, выполните 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. Наконец, переустановите OpenReplay NGINX:
openreplay -R

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

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