部署指南

Web 應用程式與 PostgreSQL 要放在哪裡?

從連線和還原比較同平台與跨平台部署

預約系統的 Web 伺服器與 PostgreSQL 要放在同一家平台嗎?先決定應用程式如何連線,以及故障或遷移時由誰還原資料。沒有既有資料庫的小型專案,可以先考慮支援內部連線的同平台配置。已有資料庫或需要特定還原功能時,也可考慮外部資料庫。

本文內容

同平台與跨平台的連線差異

兩種方式都會把 Web 伺服器與代管 PostgreSQL 建立為獨立資源。

Web 伺服器如何連線至 PostgreSQL · 概念圖
同一家平台

瀏覽器 → Web 伺服器 → 支援時透過內部網址連線

不同平台

瀏覽器 → Web 伺服器 → 資料庫供應商端點

兩種配置都由 Web 伺服器保管資料庫連線憑證。
配置 優點 要確認的事項
同平台建立應用程式和資料庫 支援的服務可簡化內部連線與設定 帳號與區域條件、加密和備份。Render 官方連線指南
外部代管 PostgreSQL 應用程式與資料庫可分開選擇方案和遷移目的地 區域、網路可達性、TLS 和連線數。Neon 官方連線池指南

預約系統要先決定什麼?

使用同一家平台

Render 支援同一帳號和區域內符合條件的服務使用內部網址,也提供外部網址。只需內部連線時,可以檢查外部存取限制。Render 官方連線指南

在 KamuiDash 建立應用程式時選擇資料庫,平台會設定 DATABASE_URL 等環境變數,程式會在執行時讀取。連線網址含有憑證,請避免寫入提交到 GitHub 的檔案或傳給瀏覽器的設定。KamuiDash 官方資料庫連線

使用外部 PostgreSQL

已有資料庫或想單獨選擇資料庫方案時,可以由 Web 伺服器連線到外部資料庫。若使用對外開放的端點,請確認連線來源限制和供應商建議的憑證驗證方式。跨平台也可以選鄰近區域,再實際測試清單和搜尋操作。即使區域相近,多次 SQL 往返仍會累積網路等待時間。PostgreSQL 官方 TLS 文件

把每個程序的連線加起來。兩個應用程式執行個體各跑兩個程序,每個連線池上限為五時,應用程式最多會用到 20 條連線。管理工具與遷移也要另外計算。若像 Neon 一樣提供連線池網址與直連網址,請依遷移工具的需求選擇。Neon 官方連線池指南

上線前測試寫入和還原

首次上線時,先套用資料庫結構,從公開網址建立一筆預約。只重新部署應用程式,再確認能查看和修改該筆紀錄。還原能力取決於方案。付費 Render Postgres 可以把指定時間點的資料還原到另一個資料庫,由維運人員驗證資料並切換連線。免費 Render Postgres 沒有這項功能。Render 官方備份與還原

已有使用者的系統遷移時,要決定最終複製期間如何處理寫入。如果可以安排停機,可先暫停寫入,再進行最終複製。PostgreSQL 官方備份與還原

暫停寫入後遷移資料庫 · 概念圖
暫停寫入停止會寫入舊資料庫的程式與工作。
複製與還原在新資料庫驗證筆數與功能。
切換連線恢復對新資料庫的寫入。
若恢復寫入後要切回舊資料庫,先決定如何處理新資料。

如果還在猶豫,可以把支援內部連線、便於維運的配置,與提供所需資料庫功能的配置一起比較。除了月費,也比較連線路徑、備份保留期限與還原所需時間。

延伸閱讀

可在 KamuiDash 了解如何從 GitHub 部署 Web 應用程式。