在 Google Cloud Platform (GCP) Compute Engine 上部署 Meilisearch 執行個體
透過我們的 GCP 自訂映像檔,Meilisearch 可以在幾分鐘內部署在 GCP 上。
以下指南將逐步引導您在 GCP Compute Engine 執行個體中部署 Meilisearch 的每個步驟。如果您對我們的 GCP 映像檔有任何問題,請在此儲存庫中建立問題。
第一部分:部署 Meilisearch 執行個體
1. 在您的 GCP 帳戶中匯入 Meilisearch 自訂映像檔
- 瀏覽至「Compute Engine」->「映像檔」
- 點擊「[+] 建立映像檔」
-
給予名稱 (
meilisearch-example
) -
針對「來源」欄位,選擇「虛擬磁碟 (VMDK、VHD)」
-
如果系統提示您啟用 Cloud Build 工具並授與權限,請執行
-
將以下 URI 複製到「Cloud Storage 檔案」欄位中
meilisearch-image/meilisearch-v1.0.2-debian-10.vmdk
-
其他欄位不是必要的
-
點擊「建立」。您可能需要等待長達 6 分鐘,Meilisearch 自訂映像檔才能匯入您的帳戶
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"}
第二部分:將您的執行個體設定為生產環境
在生產環境中設定您的 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」->「虛擬機器執行個體」。點擊您的執行個體名稱,然後點擊「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 映像檔有任何問題,請在此儲存庫中建立問題。