部署到 AWS

在 Amazon AWS 上部署 OpenReplay 的分步指南。

部署到 AWS

Video Tutorial

观看如何在你的 AWS 基础设施中部署 OpenReplay

如果你不喜欢阅读,可以观看这个视频教程,它会向你展示如何在 AWS 中部署 OpenReplay

OpenReplay 技术栈可以安装在单台机器上,而 AWS 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,否则 OpenReplay 后端服务根本无法启动。因此,我们建议至少使用 t3.large(或同等配置),这足以应对低/中等流量。如果你预计会有高流量,则应在此基础上进行扩展。
  5. 配置实例详情:根据需要调整 Network/Subnet 参数,或直接保留默认值
  6. 添加存储:将大小设置为 50 GB(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’
  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 你将无法回放用户会话。

在 AWS 中处理 SSL 最简单的方法是设置一个负载均衡器(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 Type 中选择 IP addresses。确保 Health check path 设置为 /healthz,同时保留其他默认参数。点击 ‘Next’ 注册目标,添加 OpenReplay 实例的私有 IPv4(端口 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 secret: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 的重定向(推荐),请取消注释 /var/lib/openreplay/vars.yamlingress-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)来创建账户。

如果你遇到任何问题,请加入我们的 Slack 或查看我们的论坛,从我们的社区获得帮助。