Deploy to Digital Ocean

Digital Ocean에 OpenReplay를 배포하는 단계별 가이드입니다.

Deploy to Digital Ocean

OpenReplay 스택은 한 대의 머신(드롭릿)에 설치할 수 있으며, Digital Ocean은 이에 적합한 환경입니다. 설치 방법은 다음과 같습니다.

  1. 아직 프로젝트가 없다면 새 프로젝트를 생성하고, 해당 프로젝트로 이동하여 ‘Create’ 드롭릿을 클릭합니다
  2. Ubuntu Server 24.04 LTS 이미지를 선택합니다
  3. ‘Shared CPU’를 선택하고 Regular Intel | 4 CPUs | 8GB 플랜(x86 아키텍처)을 고릅니다. 이는 최소 사양이며, 이보다 낮으면 OpenReplay 백엔드 서비스가 시작되지 않습니다. 중간 정도의 트래픽에는 충분하지만, 트래픽이 많을 것으로 예상된다면 여기서부터 확장하세요.
  4. ‘Authentication’에서 ‘New SSH key’를 클릭하고 안내에 따라 키를 생성합니다
  5. 머신 이름을 지정한 다음 ‘Create droplet’을 클릭합니다
  1. 드롭릿이 active 상태인지 확인한 다음 접속합니다:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem ## wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_DROPLET_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY root@$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가 없으면 트래커가 녹화를 시작하지 않습니다. 대시보드도 마찬가지로, HTTPS가 없으면 사용자 세션을 리플레이할 수 없습니다.

따라서 SSL 인증서를 직접 생성하거나 준비해야 합니다.

  1. 먼저 ‘Manage’ > ‘Networking’ > ‘Domains’(또는 다른 DNS 서비스 제공업체)로 이동하여 A Record를 생성합니다. 설치 단계에서 지정한 도메인을 사용하고, 드롭릿의 퍼블릭 IP(Droplets 탭에서 확인 가능)를 통해 해당 드롭릿을 가리키도록 설정합니다.

  2. 직접 준비한 인증서를 사용하는 경우, 다음 명령으로 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를 실행하고 안내에 따르면 됩니다.

  1. HTTP에서 HTTPS로의 리디렉션을 활성화하려면(권장) /var/lib/openreplay/vars.yaml의 ingress-nginx 섹션 아래에 있는 다음 블록의 주석을 해제하세요:
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)에 접속하여 계정을 만들 수 있습니다.

참고: 기존 로드 밸런서 뒤에서 OpenReplay를 실행할 수도 있습니다. 이 경우 로드 밸런서 수준에서 SSL을 구성하세요:

  • Forwarding rules (Load Balancer)에서 Load Balancer 섹션의 HTTPS (443)를 선택한 다음 ‘Certificate’ > ‘Add a new certificate’를 클릭합니다. 도메인이 Digital Ocean에서 관리되는 경우 Let’s Encrypt 옵션의 안내를 따르면 됩니다. 그렇지 않은 경우에는 직접 인증서를 가져와야 합니다.
  • Forwarding rules (Droplet)에서 Droplet 섹션의 HTTP (80)를 선택합니다.

문제가 발생하면 Slack에 접속하여 커뮤니티의 도움을 받으세요.