適用於 PostgreSQL 的 Azure 資料庫架構最佳做法
本文提供適用於 PostgreSQL 的 Azure 資料庫架構最佳做法。
本指南以架構卓越五大要素為基礎:
- 可靠性
- 安全
- 成本優化
- 卓越營運
- 效能效率
先決條件
瞭解 Well-Architected 架構支柱有助於產生高品質、穩定且有效率的雲端架構。 建議您使用 azure Well-Architected Framework Review 評定 來檢閱工作負載。
適用於 PostgreSQL 的 Azure 資料庫 是 Azure 中以 PostgreSQL 開放原始碼關係資料庫為基礎的關係資料庫服務。 它是完全受控的資料庫即服務供應專案,可透過可預測的效能、安全性、高可用性和動態延展性來處理任務關鍵性工作負載。 適用於 PostgreSQL 的 Azure 資料庫建置在 PostgreSQL 資料庫引擎的社群版本上。 它與 PostgreSQL 伺服器社群版本相容,並支援 PostgreSQL 擴充功能,例如 PostGIS 和 TimescaleDB。
注意
若要探索一個使用適用於 PostgreSQL 的 Azure 資料庫來儲存認知服務 API 分析結果的輕量解決方案概念,請參閱 使用適用於 PostgreSQL 的 Azure 資料庫的智慧型應用程式。
可靠性
適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器提供 高可用性 支援,方法是在相同可用性區域(區域)或跨可用性區域(區域備援)內布建實體分隔的主要和待命複本。 此高可用性模型可確保如果發生失敗,認可的數據永遠不會遺失。 這個模型的設計也考慮到,使得資料庫不會在您的軟體架構中成為關鍵故障點。 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器提供的功能可保護數據,並在計劃性和非計劃性停機事件期間降低任務關鍵資料庫的停機時間。 彈性伺服器建置在提供強固復原能力和可用性的 Azure 基礎結構之上,具有提供錯誤保護、解決復原時間需求,並減少數據遺失風險的商務持續性功能。
可靠性設計檢查清單
您應該檢閱 設計原則,以優化架構的成本。
- 針對工作負載定義 RPO (恢復點目標) 和 RTO (復原時間目標) 的目標。
- 選取適當的高可用性設定。
- 設定異地備援備份。
- 測試災害復原計劃,以確保在發生失敗時快速還原數據。
- 已啟用高可用性功能的伺服器上進行隨需故障轉移測試,以確保我們的應用程式按預期運行。
- 監視您的伺服器,以確保其狀況良好,並如預期般執行。
可靠性建議
建議 | 好處 |
---|---|
針對工作負載定義 RPO (恢復點目標) 和 RTO (復原時間目標) 的目標。 | 藉由進行風險評估並確保您瞭解停機時間和數據遺失的成本和風險,以衍生這些值。 這些是系統的非功能需求,應該由商務需求決定。 |
選取適當的高可用性設定。 | 適用於 PostgreSQL 的 Azure 資料庫伺服器提供高可用性設定,確保服務在發生區域中斷且不會遺失任何數據時維持可用狀態。 設定高可用性時,適用於 PostgreSQL 的 Azure 資料庫伺服器會自動布建和管理待命複本。 |
設定異地備援備份。 | 您可以部署跨區域讀取複本,以保護資料庫免於區域層級失敗。 在選取區域中啟用異地備援備份,並在主伺服器區域關閉時協助進行災害復原。 您也可以使用 Azure 備份保存庫來長期儲存恢復點,來達成異地備援。 如果是區域性中斷或災害,您可以使用 Azure 備份將資料庫伺服器還原至 Azure 配對的區域,將停機時間降至最低。 Azure 備份也為適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器提供異地備援,提高效率,並減少災害或區域中斷期間的停機時間。 |
測試您的災害復原計劃,以確保發生失敗時,快速還原數據。 | 讀取複本可以部署在不同的區域,並在需要災害復原時升級至讀寫伺服器。 |
監視您的伺服器,以確保其狀況良好,並如預期般執行。 | 我們已設有資料庫監控系統,以監視和警示資料庫層級的故障。 |
提示
如需 Azure Database for PostgreSQL 可靠性指引的詳細資訊,請參閱 Azure Database for PostgreSQL 的可靠性。
Azure 原則定義
Azure 原則定義可協助您針對 Azure 環境內的資源強制執行特定規則和組態。 若要確保適用於 PostgreSQL 的 Azure 資料庫可靠性,您可以建立自定義的 Azure 原則定義來實作特定組態和最佳做法。 以下是您可以為可靠性建立的一些自定義 Azure 原則定義的範例:
安全
思考應用程式生命周期中的安全性,從設計和實作到部署和營運。 Azure 平臺可防範各種威脅,例如網路入侵和 DDoS 攻擊。 您仍然需要在應用程式和 DevOps 程式中建置安全性。
安全性設計檢查清單
您應該檢閱 設計原則,以優化架構的成本。
- SSL 並強制執行加密來保護傳輸中的數據。
- 實作網路安全組和防火牆,以控制資料庫的存取。
- 使用 Microsoft Entra ID 進行驗證和授權,以增強身分識別管理。
- 設定數據列層級安全性。
安全性建議
建議 | 效益 |
---|---|
SSL 並強制執行加密來保護傳輸中的數據。 | 由受信任的證書頒發機構(CA)提供的 DigiCert 全域根證書,需部署以透過 SSL 與客戶端應用程式進行通訊。 |
實作網路安全組和防火牆,以控制資料庫的存取。 | 作為安全性零信任模型的一部分,建議進行網路分段,以限制元件(例如應用程式和資料庫伺服器)之間的通訊路徑僅限於必要的範圍。 這可以使用網路安全組和應用程式安全組來實作。 |
使用 Microsoft Entra ID 進行驗證和授權,以增強身分識別管理。 | Microsoft Entra ID 驗證是使用 Azure AD 中定義的身分識別連線到適用於 PostgreSQL 的 Azure 資料庫的機制。 |
設定數據列層級安全性。 | 數據列層級安全性 (RLS) 是 PostgreSQL 安全性功能,可讓資料庫管理員定義原則,以控制一或多個角色顯示及作特定數據列的方式。 數據列層級安全性是可套用至 PostgreSQL 資料庫數據表的額外篩選。 |
成本優化
成本優化是瞭解您的設定選項和建議的最佳做法,以減少不必要的費用並提升營運效率。 您應該檢閱您的工作負載,以找出降低成本的機會。
成本設計檢查清單
您應該檢閱 設計原則,以優化架構的成本。
- 挑選正確的等級和 SKU。
- 瞭解高可用性模式。
- 調整計算和儲存層級。
- 請考慮預留實例。
- 使用您配置的儲存空間。
- 瞭解異地備援成本。
- 評估儲存擴增決策。
- 部署至與應用程式相同的區域。
- 高可用性導向的成本描述。
- 合併資料庫和伺服器。
成本建議
建議 | 好處 |
---|---|
選擇正確的等級和 SKU。 | 挑選定價層,並計算出符合您工作負載特定需求的 SKU。 Azure Advisor 提供建議,以優化和減少整體 Azure 費用。 建議包括您應該遵循的伺服器容量調整。 |
瞭解高可用性模式。 | 高可用性讓待命伺服器一律可在相同區域或區域內使用。 啟用高可用性可加倍您的成本。 |
調整計算和儲存層。 | 您應該手動調整計算和儲存層,以符合應用程式一段時間的需求。 |
使用 [啟動/停止] 功能。 | 彈性伺服器具有啟動/停止功能,可讓您在不需要時停止伺服器執行。 |
請考慮預留實例。 | 考慮一到三年的預訂,以獲得運算服務的重大折扣。 針對具有一年以上一致的計算資源使用量的工作負載使用這些保留。 |
使用您布建的儲存空間。 | 伺服器所分配的總儲存空間中最多 100% 的備份儲存不需要額外費用。 |
瞭解冗餘成本。 | 異地備援記憶體 (GRS) 的成本是本地備援記憶體 (LRS) 的兩倍。 GRS 需要 LRS 的儲存容量加倍。 |
瞭解受保護的實例和備份記憶體成本 | 使用 Azure 備份 PostgreSQL 彈性伺服器時,您會產生受保護實例費用(每 250 GB)和備份儲存空間費用(根據儲存和備援類型的總數據)。 |
評估儲存擴展決策。 | 在相應增加記憶體之前,您應該先評估您目前和未來的記憶體需求。 調整儲存空間增加後,就不能再調整減少。 |
部署至與應用程式相同的區域。 | 部署到與應用程式相同的區域,以將傳輸成本降至最低。 當您使用虛擬網路整合時,不同虛擬網路中的應用程式無法直接存取彈性伺服器。 若要授予他們存取權,您需要設定虛擬網路對等連接。 虛擬網路對等互連具有名義上的輸入和輸出數據傳輸成本。 |
高可用性導向的成本描述。 | 這是HA和成本的取捨。 HA 的成本是非 HA 組態的兩倍,但它是必要的。 |
合併資料庫和伺服器。 | 您可以將多個資料庫和伺服器合併成單一伺服器,以降低成本。 |
Azure 原則定義
Azure 原則定義可協助您針對 Azure 環境內的資源強制執行特定規則和組態。 若要確保適用於 PostgreSQL 的 Azure 資料庫的成本優化,您可以建立自定義的 Azure 原則定義,以強制執行特定組態和最佳做法。 以下是您可以為成本優化建立的一些自定義 Azure 原則定義的範例:
卓越營運
卓越營運原則是一系列可協助達成卓越營運做法的考慮。
若要提升運營能力,請考慮並改善軟體的開發、部署、運行和維護方式。
營運卓越設計檢查清單
您應該檢閱 設計原則,以優化架構的成本。
- 設定自動備份和保留原則,以維護數據可用性並符合合規性需求。
- 實作自動化修補和更新,讓您的 PostgreSQL 實例安全且 up-to日期。
- 使用 Azure 監視器監視資料庫健康情況和效能,並設定重要計量的警示。
卓越營運建議
建議 | 好處 |
---|---|
設定自動備份和保留原則,以維護數據可用性並符合合規性需求。 或者,使用 Azure 備份原則 將 Azure 資料庫伺服器中的 PostgreSQL 進行備份。 您也可以使用此 Azure 備份原則來保護適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 |
適用於 PostgreSQL 的 Azure 資料庫會為您的資料庫提供自動備份和時間點還原。 您可以設定備份最多 35 天的保留期間。 Azure 備份可讓您定義備份的建立方式和時間、恢復點的保留期間,以及數據保護和復原的規則。 您可以在備份保存庫中保留恢復點最多 10 年。 使用 Azure 備份原則 長期保護適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器,並管理資料庫的安全性和完整性。 您也可以使用 Azure Business Continuity Center來管理備份和還原作業。 |
實作自動化修補和更新,讓您的 PostgreSQL 實例安全且 up-to日期。 | 適用於 PostgreSQL 的 Azure 資料庫會為您的資料庫提供自動修補和更新。 您可以設定伺服器的維護期間,以將工作負載的影響降到最低。 |
使用 Azure 監視器監視資料庫健康情況和效能,並設定重要計量的警示。 | 適用於PostgreSQL的 Azure 資料庫提供內建的監視和警示功能。 您可以使用 Azure 監視器來監視資料庫的健康情況和效能。 您也可以設定重要計量的警示,以在資料庫未如預期般執行時收到通知。 |
營運卓越原則定義
Azure 原則定義可協助您針對 Azure 環境內的資源強制執行特定規則和組態。 若要確保適用於 PostgreSQL 的 Azure 資料庫營運卓越,您可以建立自定義的 Azure 原則定義,以強制執行特定的設定和最佳做法。 以下是您可以為卓越營運而建立的一些自定義 Azure 原則定義的範例:
- 適用於 PostgreSQL 的 Azure 資料庫 Azure 原則法規合規性控制
效能效率
性能效率是指您的工作負載能夠有效地調整,以滿足使用者的需求。 建議您檢閱效能效率原則。
在下列設計檢查清單和建議清單中,註標會指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
效能效率設計檢查清單
您應該檢閱 設計原則,以優化架構的成本。
- 設計架構和查詢以提高效率,以將資源耗用量降至最低。
- 使用讀取副本以卸除讀取流量並增強整體效能。
效能效率建議
建議 | 好處 |
---|---|
設計架構和查詢以提高效率,以將資源耗用量降至最低。 | 您應該設計架構和查詢以提高效率,以將資源耗用量降至最低。 |
實施讀取複本以分擔讀取流量,提升整體效能。 | 您可以使用讀取複本來分擔讀取流量負擔並增強效能。 |
效能效率原則定義
Azure 原則定義可協助您針對 Azure 環境內的資源強制執行特定規則和組態。 若要確保適用於 PostgreSQL 的 Azure 資料庫的效能效率,您可以建立自定義的 Azure 原則定義來強制執行特定組態和最佳做法。 以下是您可以為效能效率建立的一些自定義 Azure 原則定義的範例:
額外資源
請考慮更多與適用於 PostgreSQL 的 Azure 資料庫相關的資源。
Azure 架構中心指引
雲端採用架構指引
- 使用適用於 PostgreSQL 的 Azure 資料庫 Batch 資料應用程式