部署到 AWS
Video Tutorial
观看如何在您的 AWS 基础设施中部署 OpenReplay (English)
如果您不喜欢阅读,您可以跟随这个视频教程,了解如何在 AWS 中部署 OpenReplay
OpenReplay 堆栈可以安装在单台机器上,而 AWS EC2 是理想的选择。
启动一个 EC2 实例
Section titled 启动一个 EC2 实例- 前往 AWS EC2 仪表板
- ‘启动一个新实例’
- 选择您的 AMI。对于本指南,我们将使用 Ubuntu Server 20.04 LTS
- 选择您的实例类型。最低配置为 2 vCPU、8 GB RAM、50 GB 存储空间,否则 OpenReplay 后端服务将无法启动。因此,我们至少推荐使用 t3.large(或等效型号),这对于低/中等流量来说足够了。如果您预期流量高,应该从这里开始扩展。
- 配置实例详情:根据需要调整网络/子网参数或简单地保留默认设置
- 添加存储:设置大小为 50 GB(通用 SSD (gp2))
- 添加标签:调整参数或保留默认设置
- 安全组:保留现有的 SSH 规则并为 HTTP (80) 和 HTTPS (443) 添加两个(源:0.0.0.0/0)
- 点击‘审查和启动’
- 创建/下载 SSH 密钥,然后点击‘启动实例’
部署 OpenReplay
Section titled 部署 OpenReplay- 确保您的实例正在运行,然后连接到它:
## 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
- 通过提供将运行 OpenReplay 的域来安装 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 您将无法重放用户会话。
在 AWS 中处理 SSL 的最简单方法是设置负载均衡器(ELB)并在其后运行 OpenReplay。另一个选项是生成或使用您自己的 SSL 证书,并将您的子域(即 openreplay.mycompany.com)指向 OpenReplay 实例。以下是关于这两个选项的更多信息。
设置 AWS 负载均衡器(选项 1)
Section titled 设置 AWS 负载均衡器(选项 1)- 转到 ‘EC2’ > ‘负载均衡器’
- ‘创建负载均衡器’并选择应用程序负载均衡器
- 添加一个 HTTPS 监听器(仅保留此项),确保选择运行 OpenReplay 实例的相同子网。
- 选择一个现有的证书(例如 *.mycompany.com)或从 AWS 证书管理器(ACM)生成一个新的。您也可以导入您自己的证书。
- 配置安全组:选择之前为 OpenReplay 实例创建的安全组(您可以在 ‘EC2 控制面板’的 ‘安全’ 标签下找到它)
- 配置监听器和路由:保持默认协议和端口(HTTP:80)。现在,创建一个新的目标组。给它一个名称并在目标类型中选择 IP 地址。确保健康检查路径设置为
/healthz同时保留其他默认参数。点击‘下一步’注册目标,添加 OpenReplay 实例的私有 IPv4(端口 80)然后将目标添加到列表中(私有 IP 可在 EC2 仪表板中找到)。检查然后点击‘创建目标组’。 - 现在,返回到 LB 创建页面,并将这个新的目标组转发给 LB 监听器。
- 审查然后‘创建负载均衡器’
创建后,前往 Route 53(或您的 DNS 服务提供商),创建一个指向负载均衡器的 A 记录,使用其 DNS 名称(可以在 ELB 控制面板中找到)。
最后,在 /var/lib/openreplay/vars.yaml 中的 ingress-nginx 部分,取消以下行的注释以启用 use-forwarded-headers:
ingress-nginx: &ingress-nginx
controller:
config:
use-forwarded-headers: true
现在一切都设置好了,您应该可以在您刚刚设置的子域名上安全地访问 OpenReplay。您可以通过访问 /signup 页面创建账户(即 openreplay.mycompany.com/signup)。
带来/生成您的 SSL 证书(选项 2)
Section titled 带来/生成您的 SSL 证书(选项 2)作为创建负载均衡器的替代方案,您可以带来(或生成)您自己的 SSL 证书
-
首先,前往 Route 53(或您的其他 DNS 服务提供商)并创建一个 A 记录。使用您在安装步骤中之前提供的域名,并将其指向使用其公共 IP(可以在 EC2 控制面板中找到)的实例。
-
如果您带来了自己的证书,请使用以下命令创建 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并按照步骤操作。
- 如果您希望启用 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
- 最后重新安装 OpenReplay NGINX:
openreplay -R
现在一切都准备好了,OpenReplay 应该可以在您的子域名上访问。您可以通过访问 /signup 页面创建账户(即 openreplay.mycompany.com/signup)。
有问题吗?
Section titled 有问题吗?如果您遇到任何问题,请连接到我们的 Slack 并从我们的社区获得帮助。