適用於 PostgreSQL 的 Azure 資料庫是 Azure 中的關聯式資料庫服務,以 PostgreSQL 開放原始碼關聯式資料庫為基礎。 它是完全受控的雲端式資料庫解決方案,可支援具有可預測效能、安全性、高可用性和動態延展性的任務關鍵性工作負載。 適用於 PostgreSQL 的 Azure 資料庫建置在 PostgreSQL 資料庫引擎的社群版本上。 它與 PostgreSQL 伺服器社群版本相容,並支援 PostgreSQL 擴充功能,例如 PostGIS 和 TimescaleDB。
本文假設身為架構設計人員,您已檢閱 Azure 數據選項 ,並選擇 [適用於 PostgreSQL 的 Azure 資料庫] 作為工作負載的數據存放區。 本文中的指引提供架構建議,這些建議會對應至 Well-Architected Framework 支柱的原則。
技術範圍
此檢閱著重於下列 Azure 資源的相關決策:
- 適用於 PostgreSQL 的 Azure 資料庫
Reliability
可靠性支柱的目的是要藉由 建立足夠的復原能力和從失敗中快速復原的能力,來提供持續的功能。
可靠性設計原則 提供高階的設計策略,適用於個別元件、系統流程及整個系統。
工作負載設計檢查清單
熟悉適用於 PostgreSQL 的 Azure 資料庫產品可靠性指引。
如需詳細資訊,請參閱下列資源:將 Azure Database for PostgreSQL 的可靠性與復原目標與您的工作負載目標對齊。 選擇適當的適用於 PostgreSQL 的 Azure 資料庫 SKU,以支援您的可靠性和復原目標。
判斷適用於 PostgreSQL 的 Azure 資料庫實例的適當高可用性和備援設定。 判斷您是否需要區域備援或區域性設定,以符合您的可靠性需求。
將適用於PostgreSQL的 Azure 資料庫實例復原併入災害復原規劃和練習中。 請確定您的整個工作負載可根據您的復原目標進行復原。
將適用於PostgreSQL的 Azure 資料庫實例併入您的可觀察性平臺。 啟用增強的計量來監視實例的健康情況。 在您的監視解決方案中包含 高可用性健康情況監視 。
組態建議
| Recommendation | Benefit |
|---|---|
| 選取適當的 高可用性設定。 | 設定高可用性時,適用於 PostgreSQL 的 Azure 資料庫伺服器會自動布建和管理待命複本。 此設定可確保服務維持可用狀態,且不會在區域中斷期間遺失數據。 |
| 設定 異地備援備份。 | 您可以部署跨區域讀取複本,以保護資料庫免於區域層級失敗。 如果主伺服器區域無法使用,則會在選取的區域啟用異地備援備份,並協助進行災害復原。 您也可以使用 Azure 備份保存庫來長期儲存恢復點,來達成異地備援。 如果發生區域性中斷或災害,您可以使用備份將資料庫伺服器還原至 Azure 配對的區域,以將停機時間降到最低。 Azure 備份也為適用於 PostgreSQL 的 Azure 資料庫提供異地備援。 此功能可提升效率,並減少災害或區域性中斷期間的停機時間。 |
| 定期測試您的備份和還原策略。 | 定期測試備份和還原策略,可確保您可以在發生失敗時復原資料庫並維護作業。 |
安全性
安全性支柱的目的是保障工作負載的機密性、完整性和可用性。
安全性設計原則提供高階設計策略,可藉由將方法套用至適用於PostgreSQL的 Azure 資料庫技術設計,以達成這些目標。
工作負載設計檢查清單
檢閱安全性基準。 若要增強工作負載的安全性狀態,請檢閱 適用於 PostgreSQL 的 Azure 資料庫 Azure 安全性基準。
實作嚴格、條件式和可稽核的身分識別和存取管理。 使用 Microsoft Entra ID 進行驗證和授權,以增強身分識別管理。
套用網路分割和安全性控制。 使用伺服器層級的內建防火牆,以及虛擬網路防火牆機制,將實例與其他工作負載元件和公用網路隔離。
使用原生安全性功能來新增額外的保護層級。 藉由設定數據列層級安全性和連線節流,協助防止惡意活動。
組態建議
| Recommendation | Benefit |
|---|---|
| 實作 網路安全組 和 防火牆 ,以控制資料庫的存取。 | 作為安全性零信任模型的一部分,請使用網路分割來限制應用程式與資料庫伺服器等元件之間的通訊路徑,只限制為所需的內容。 您可以使用網路安全組和應用程式安全組來實作這項功能。 |
| 透過 Azure Private Link 連線到您的資料庫。 | Private Link 可讓您建立適用於 PostgreSQL 的 Azure 資料庫的私人端點,以擴充虛擬網路內的服務。 |
| 使用 Microsoft Entra ID 進行驗證和授權,以增強身分識別管理。 | 您可以使用 Microsoft Entra 驗證,在 Microsoft Entra 中使用受控識別連線到適用於 PostgreSQL 的 Azure 資料庫。 |
| 設定 資料列層級安全性。 | 數據列層級安全性是 PostgreSQL 安全性功能,可讓資料庫管理員定義原則,以控制一或多個角色顯示及作特定數據列的方式。 數據列層級安全性是可套用至 PostgreSQL 資料庫數據表的額外篩選。 |
| 如果需要合規性, 請使用客戶管理的密鑰 (CMK) 進行數據加密,並將密鑰儲存在 Azure Key Vault 中。 | CMK 可讓您完全控制加密密鑰的生命週期,包括金鑰輪替,以符合公司原則。 Key Vault 可讓您在專屬的 Key Vault 實例內集中管理和組織加密密鑰。 |
| 針對最高的安全需求,請啟用 機密運算 ,以使用硬體型加密來保護使用中的資料。 | 機密運算為資料處理作業提供硬體型加密。 在高度監管的行業中處理敏感資料的組織可以滿足嚴格的監管要求,同時保持資料庫效能。 |
| 針對發生過多失敗登入嘗試的IP位址啟用連線節流。 | 設定connection_throttling伺服器參數為enabled,通過限制來自相同IP位址的重複連線嘗試,協助保護您的資料庫免受惡意登入嘗試和分散式阻斷服務(DDoS)攻擊。 |
| 定期進行安全性稽核。 | 定期進行安全性稽核有助於識別和補救潛在的弱點。 |
成本優化
成本優化著重於偵測支出模式、將投資放在重要領域,以及在其他領域進行優化,以符合組織預算,同時滿足商務需求。
成本優化設計原則提供高階設計策略,以達成這些目標,並在與適用於PostgreSQL的 Azure 資料庫及其環境相關的技術設計中在必要時進行取捨。
工作負載設計檢查清單
預估初始成本。 在成本模型化練習中,使用 Azure 定價計算機來評估工作負載中與適用於 PostgreSQL 的 Azure 資料庫相關聯的近似成本。
為您的工作負載選擇正確的服務層級。 判斷計算資源的高載、一般用途或記憶體優化定價層是否符合您的使用案例需求。
採取精明的擴展策略。 若要判斷何時以及如何調整適用於PostgreSQL的 Azure 資料庫資源,請持續觀察和分析您的工作負載容量和需求。
利用可用的折扣。 請考慮一或三年的計算保留。 保留實例可以節省計算資源的巨大成本。
使用您配置的儲存空間。 伺服器所分配的總儲存空間中最多 100% 的備份儲存不需要額外費用。
瞭解冗餘成本。 使用區域備援或區域性組態可加倍您的實例成本,因此請仔細考慮備援設計。
瞭解受保護的實例和備份記憶體成本。 當您使用 Azure 備份保護 Azure Database for PostgreSQL 時,您需要支付每 250 GB 的受保護實例費用,並根據儲存的資料總量和備援類型支付備份儲存費用。
部署至與應用程式相同的區域。 部署到與應用程式相同的區域,以將傳輸成本降至最低。
合併資料庫和伺服器。 實際時,將多個資料庫和伺服器合併到單一伺服器有助於降低成本。
組態建議
| Recommendations | Benefits |
|---|---|
| 挑選正確的 級別和 SKU。 | 選擇正確的層級和 SKU,有助於避免浪費資源過度配置。 Azure Advisor 提供建議,包括伺服器許可權調整建議,以優化和減少整體 Azure 費用。 |
| 當您的工作負載需求變更時,調整計算和記憶體資源。 | 您可以視需要垂直(向上或向下)和水準(向外或向內)調整計算資源。 在擴大儲存空間之後,您無法縮小儲存空間。 |
| 使用啟動/停止功能。 | 使用啟動/停止功能,在不需要伺服器時停止執行。 |
卓越營運
卓越營運主要著重於 開發實務、可觀察性和發佈管理。
營運卓越設計原則提供高階設計策略,以達成工作負載作業需求的目標。
工作負載設計檢查清單
優化資料庫的復原能力。 定義備份和保留原則以符合您的合規性需求。
自動化作業工作。 使用 自動化工作 來自動執行啟動和停止伺服器、擴展資源和其他工作等工作。
監視資料庫健康情況和效能。 從您的實例收集並分析記錄和計量,以主動偵測潛在問題。
保持最新的 PostgreSQL 版本。 最新版本具有零停機時間的就地升級功能,可在不中斷服務的情況下進行主要版本轉換。
組態建議
| Recommendation | Benefits |
|---|---|
| 個別使用 Azure 備份原則 ,或搭配原生自動備份來備份資料庫。 | 適用於 PostgreSQL 的 Azure 資料庫會為您的資料庫提供自動備份和時間點還原。 您可以設定備份最多 35 天的保留期間。 使用 Azure 備份來定義備份的建立方式和時間、恢復點的保留期間,以及數據保護和復原的規則。 您最多可以在 Azure 備份保存庫中保留恢復點 10 年。 您也可以使用 Azure 商務持續性中心來管理備份和還原作業。 |
| 排程 自定義維護時段 以套用服務更新。 | 您可以在 Azure 訂用帳戶中為每個適用於 PostgreSQL 的 Azure 資料庫定義自定義排程。 使用自定義時間表,您可以選擇星期幾和一小時維護時段的開始時間,以指定伺服器的維護時段。 |
| 監視您的伺服器 ,以確保其狀況良好且如預期般執行。 | 適用於 PostgreSQL 的 Azure 資料庫具有各種計量,可深入瞭解支援適用於 PostgreSQL 的 Azure 資料庫實例的資源行為。 您也可以啟用增強型計量,以取得資料庫上精細的監視和警示。 |
效能效率
效能效率是指即使負載增加,也能通過管理容量來維護用戶體驗。 此策略包括調整資源、識別和優化潛在的瓶頸,以及優化尖峰效能。
效能效率設計原則提供針對預期使用量達成這些容量目標的高階設計策略。
工作負載設計檢查清單
優化查詢。 使用原生功能來尋找優化查詢的機會。
最佳化索引。 使用索引微調等功能來自動分析查詢模式,以及接收可採取動作的建議,以建立或卸除索引以改善效能。
將唯讀操作卸載。 如果您的應用程式支援只讀連線字串,您可以將只讀作業分散至讀取複本。
組態建議
| Recommendation | Benefits |
|---|---|
| 使用 查詢存放區 來追蹤一段時間內的查詢效能。 | 查詢存放區可協助您快速找出執行時間最長且耗用最多資源的查詢,來簡化效能問題的疑難解答。 |
| 使用 查詢效能深入解析 來識別工作負載中最耗用和長時間執行的查詢。 | 查詢效能深入解析可協助您識別長時間執行的查詢及其變更、判斷影響查詢的等候類型、依頻率分析頂級資料庫查詢,以及其他優點。 |
| 搭配查詢存放區使用 索引調整 來分析追蹤的查詢並提供建議。 | 索引優化會分析查詢存儲庫追蹤的工作負載。 它會產生索引建議,以改善分析工作負載的效能,或卸除重複或未使用的索引。 索引調整可協助您識別有益的索引、重複索引和未使用的索引。 |
| 使用 智慧型調整 來自動增強效能並協助防止問題發生。 | 智慧型調整會持續監視適用於 PostgreSQL 的 Azure 資料庫彈性伺服器資料庫狀態,並根據工作負載動態調整資料庫。 |
| 啟用對 PgBouncer 的支援以優化連線池。 | 提升資料庫資源利用率與連線管理。 |
Azure 原則
Azure 提供一組與適用於 PostgreSQL 的 Azure 資料庫及其相依性相關的大量內建原則。 您可以透過 Azure 原則稽核上述一些建議。 例如,您可以檢查是否:
如需全面治理,請檢閱 適用於PostgreSQL的 Azure 資料庫 和其他可能影響資料存放區安全性的 Azure 原則內建定義。
Azure Advisor 建議
Azure Advisor 是個人化的雲端顧問,可協助您遵循最佳做法來優化 Azure 部署。
如需詳細資訊,請參閱 Azure Advisor。
範例架構
示範重要建議的基礎架構: 適用於 Java 的可靠 Web 應用程式模式。