在 Google Cloud Platform(GCP)Compute Engine 中部署 Meilisearch 实例
使用我们的 GCP 自定义映像,Meilisearch 可以在 GCP 中于几分钟内完成部署。
以下指南将指导您完成在 GCP Compute Engine 实例中部署 Meilisearch 的每个步骤。如果您对我们的 GCP 映像有任何问题,请在 此存储库 中创建问题。
第 1 部分:部署 Meilisearch 实例
1. 在你的 GCP 账户上导入 Meilisearch 自定义镜像
- 导航至“Compute Engine”->“Images”
- 点击“[+] 创建镜像”
-
为其命名(
meilisearch-example
) -
对于“来源”字段,选择“虚拟磁盘 (VMDK, VHD)”
-
如果你被提示启用 Cloud Build 工具和授予权限,就执行此操作
-
复制以下 URI 到“Cloud Storage 文件”字段中
meilisearch-image/meilisearch-v1.0.2-debian-10.vmdk
-
不需要其他字段
-
点击“创建”。在 Meilisearch 自定义镜像导入到你的账户期间,你可能需要最多等待 6 分钟
2. 从已导入的镜像创建新的 GCP Compute Engine 实例
- 打开“镜像”标签页,点击你刚才导入的镜像名称,然后点击“[+] 创建实例”按钮
-
为你的实例命名
-
在“机器配置”部分中,确保选择具有足够内存的“机器类型”,根据你的需要运行 Meilisearch。更多内存意味着更快的搜索
-
在“启动磁盘”部分中,点击“更改”按钮
-
从“自定义镜像”标签页中,从下拉菜单中选择你在上一个步骤中导入的镜像 (meilisearch-vX-X-X)。别忘了将磁盘“大小”设置为你需要的数量。完成后,点击“选择”
-
在“防火墙”部分中,确保勾选“允许 HTTP 流量”和“允许 HTTPS 流量”框,以使你的 Meilisearch 实例能够与互联网通信
-
最后,点击“创建”按钮。一两分钟后,你的 Meilisearch 实例应会启动并运行
你可以通过将 GCP 提供的“外部 IP”地址复制并粘贴到你的浏览器中,或通过在你的终端上键入以下命令来检查你的实例是否正常运行
curl http://<your-external-ip>/health
服务器应答如下例所示,带有 200 OK
状态代码
{"status": "available"}
第 2 部分:将你的实例设置为生产环境
在生产环境中配置你的 Meilisearch 实例并不是简单直接的 - 它是完全自动化的。与你的实例建立 SSH 连接,一个脚本将指导你完成此流程。
1. 使你的域名指向你的实例 IP
如果你想使用自定义域名(或子域名),在你的域名提供商账户中添加一个 A 记录
。否则,你可以跳过此步骤。
你的域名现在应链接到你的 Meilisearch 实例。运行健康检查以验证你的实例正在运行,并且你的 DNS 已配置完善
curl -v http://<your-domain-name>/health
服务器应答如下例所示,带有 200 OK
状态代码
...
< HTTP/1.1 200 OK
...
2. 设置 API 密钥和 SSL (HTTPS)
Meilisearch 当前在开发环境中运行。你尚未设置 API 密钥,这意味着任何人都可以对你的 Meilisearch 进行读/写,并且尚未使用 HTTPS,因此此配置对生产环境不安全。
要启动配置过程,通过 SSH 连接到新的 Meilisearch 实例并按照出现的说明进行操作。
2.2. 运行配置脚本
2.2.1 选项 1:使用 Google Cloud Console
导航到“Compute Engine”->“VM 实例”。单击实例的名称,然后单击“SSH”按钮(确保已启用弹出窗口,否则可能会屏蔽窗口)。将建立连接并且脚本将自动运行。
2.2.2 选项 2:将 SSH 密钥添加到 Compute Engine 元数据
-
确保你具有 SSH 公钥(通常存储在
~/.ssh/id_rsa.pub
中)。如果你尚未创建 SSH 密钥或要生成一个新密钥,可以按照 本指南 进行操作。 -
在 GCP 控制面板中,导航到“Compute Engine”->“元数据”,然后单击“SSH 密钥”选项卡。单击“编辑”
-
要添加新的 SSH 密钥,单击“+ 添加项目”。复制你的公钥并将其粘贴到 GCP 界面上创建的新框中。通常,你可以在终端上运行以下命令来读取公钥
cat ~/.ssh/id_rsa.pub
- 单击“保存”
现在,使用 SSH 密钥上存在的相同用户名建立 SSH 连接。如果你正在添加本地系统密钥,则可能是你在本地系统上的用户名。要了解 UNIX 类系统中此用户名是什么,请运行命令
whoami
然后使用以下命令建立连接
ssh <your-username>@<your-external-ip-or-domain-name>
你应该看到类似以下内容
________________________________________________
________________________________________________
_ _ _ __ _
/\/\ ___(_) (_) _\ ___ __ _ _ __ ___| |__
/ \ / _ \ | | \ \ / _ \/ _` | '__/ __| '_ \
/ /\/\ \ __/ | | |\ \ __/ (_| | | | (__| | | |
\/ \/\___|_|_|_\__/\___|\__,_|_| \___|_| |_|
________________________________________________
________________________________________________
如果这是你首次通过 SSH 访问实例,则会自动运行一个脚本,让你输入你的设置和所需的配置。如果你希望随时再次运行此脚本,可以使用以下命令
meilisearch-setup
3. 享受你已准备就绪的 Meilisearch 实例
你的 Meilisearch 实例已在 GCP 上启动并运行,并已准备好用于生产。
为了确保一切顺利运行,请对 /health
路由进行最终的 HTTP 调用
curl -v https://<your-domain-name>/health
请注意,这次我们正在使用 HTTPS。
服务器应答如下例所示,带有 200 OK
状态代码
...
< HTTP/1.1 200 OK
...
您已做好准备,可以使用 GCP 在生产阶段使用 Meilisearch!如果您对我们的 GCP 镜像有任何问题,请在此存储库中创建一个难题。