Развёртывание в Google Cloud
Video Tutorial
Посмотрите, как развернуть OpenReplay в вашей инфраструктуре GCP
Если вы не любите читать, можете посмотреть это видеоруководство, в котором показано, как развернуть OpenReplay в GCP
Стек OpenReplay можно установить на одну машину, и Google Cloud является идеальным кандидатом.
Запуск виртуальной машины
Section titled Запуск виртуальной машины- Перейдите в панель управления ‘Compute Engine’ и выберите ‘VM Instances’ в меню в левой части
- Нажмите ‘Create Instance’
- Выберите предпочитаемые ‘region’ и ‘zone’
- Выберите тип машины. Минимальные характеристики —
2 vCPUs, 8 GB of RAM, 50 GB of storage, на архитектуре x86, иначе бэкенд-сервисы OpenReplay просто не запустятся. Поэтому мы рекомендуем как минимумn2-standard-2(или эквивалент — обратите внимание, чтоe2-standard-2, как известно, вызывает проблемы во время развёртывания), которой достаточно для низкого/умеренного объёма. Если вы ожидаете высокий трафик, вам следует масштабироваться от этого уровня. - Измените загрузочный диск на Ubuntu 24.04 LTS или выше, затем выберите SSD persistent disk в качестве типа загрузочного диска и установите размер 50 GB.
- Установите оба флажка ‘Allow HTTP traffic’ и ‘Allow HTTPS traffic’ в разделе Firewall
- Нажмите ‘Create’
Развёртывание OpenReplay
Section titled Развёртывание OpenReplayКак только ваш экземпляр перейдёт в состояние Running, подключитесь к нему, нажав кнопку SSH, а затем установите 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
Настройка TLS/SSL
Section titled Настройка TLS/SSLOpenReplay работает с конфиденциальными пользовательскими данными и поэтому требует HTTPS для работы. Это обязательно, иначе трекер просто не начнёт запись. То же самое касается панели управления: без HTTPS вы не сможете воспроизводить пользовательские сессии.
Самый простой способ управлять SSL в Google Cloud — настроить балансировщик нагрузки (Google Load Balancing) и запустить OpenReplay за ним. Другой вариант — сгенерировать или использовать собственный SSL-сертификат и направить ваш поддомен (т. е. openreplay.mycompany.com) на экземпляр OpenReplay. Подробнее об обоих вариантах ниже.
Настройка балансировщика нагрузки Google (вариант 1)
Section titled Настройка балансировщика нагрузки Google (вариант 1)Первый шаг — добавить группу экземпляров, которая понадобится позже для балансировщика нагрузки:
- Перейдите в ‘Compute Engine’ > ‘Instance Groups’
- ‘Create Instance Group’ и выберите New unmanaged instance group
- Выберите предпочитаемое ‘Location’, затем выберите ‘Network’ и выберите экземпляр виртуальной машины OpenReplay
- Нажмите ‘Create’
Теперь пришло время создать балансировщик нагрузки:
- Перейдите в ‘Network Services’ > ‘Load Balancing’
- ‘Create Load Balancer’ и выберите HTTP(S) Load Balancing
- Выберите ‘From Internet to my VMs’, затем нажмите ‘Continue’
- Начните с ‘Backend configuration’ и нажмите ‘Backend services’ > ‘Create a backend service’
- Выберите Instance group для ‘Backend type’. В разделе ‘Backends’ > ‘New backend’ выберите ранее созданную группу экземпляров, установите порт
80, затем нажмите ‘Done’. - Прокрутите вниз до ‘Health Check’ и ‘Create a health check’. Выберите HTTP для ‘Protocol’, установите ‘Port’ на
80, затем измените ‘Request path’ на/healthz. Оставьте остальные значения по умолчанию, затем нажмите ‘Save’. - Нажмите ‘Create’
- В ‘Frontend configuration’ выберите HTTPS для ‘Protocol’, затем в ‘Certificate’ создайте новый сертификат (управляемый Google) или используйте свой. Нажмите ‘Done’.
- Проверьте, затем нажмите ‘Create’
После создания перейдите в Cloud DNS (или к вашему поставщику услуг DNS) и создайте A Record, который указывает на балансировщик нагрузки, используя его IP (его можно найти в панели управления Load Balancing).
Теперь всё готово: OpenReplay должен быть безопасно доступен на поддомене, который вы только что настроили. Вы можете создать учётную запись, посетив страницу /signup (т. е. openreplay.mycompany.com/signup).
Предоставление/генерация вашего SSL-сертификата (вариант 2)
Section titled Предоставление/генерация вашего SSL-сертификата (вариант 2)В качестве альтернативы созданию балансировщика нагрузки вы можете предоставить (или сгенерировать) собственный SSL-сертификат.
-
Сначала перейдите в Cloud DNS (или к другому вашему поставщику услуг DNS) и создайте
A Record. Используйте домен, который вы указали ранее на этапе установки, и направьте его на виртуальную машину, используя её публичный IP (его можно найти в панели управления Compute Engine). -
Если вы предоставляете собственный сертификат, создайте SSL-секрет с помощью следующей команды:
kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".
Примечание: Если у вас нет сертификата, сгенерируйте его — с автоматическим продлением — для вашего поддомена (того, который был указан во время установки) с помощью Let’s Encrypt. Просто подключитесь к экземпляру OpenReplay, выполните
cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.shи следуйте инструкциям.
- Если вы хотите включить перенаправление с 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
- Наконец, переустановите NGINX OpenReplay:
openreplay -R
Теперь всё готово: OpenReplay должен быть доступен на вашем поддомене. Вы можете создать учётную запись, посетив страницу /signup (т. е. openreplay.mycompany.com/signup).
Есть вопросы?
Section titled Есть вопросы?Если вы столкнётесь с какими-либо проблемами, присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.