共用方式為


如何在 適用於 PostgreSQL 的 Azure 資料庫 中將成本優化 - 彈性伺服器

適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器是以 為基礎的Microsoft雲端中關係資料庫服務PostgreSQL Community Edition.. 它是一個完全受控的資料庫即服務,其可透過可預測效能及動態延展性處理任務關鍵性工作負載。

本文提供優化 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器成本的建議清單。 此清單包含設計考慮、設定檢查清單,以及建議的資料庫設定,以協助您優化工作負載。

  • 利用保留容量定價。
  • 相應增加/減少計算。
  • 使用 Azure Advisor 建議。
  • 評估HA(高可用性) 和DR (災害復原) 需求。
  • 合併資料庫和伺服器。
  • 將測試伺服器放在符合成本效益的地理區域中。
  • 啟動和停止伺服器。
  • 封存冷記憶體的舊數據。

1.使用保留容量定價

Azure Postgres 保留容量定價允許承諾 1-3 的特定容量,以節省使用 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的客戶成本。 相較於隨用隨付定價,成本節省可能會很大,視保留容量和期限長度而定。 客戶可以增加虛擬核心和記憶體來購買保留容量。 保留容量可以涵蓋套用至客戶 Azure 訂用帳戶的相同區域中 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的成本。 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的保留定價可節省高達 1 年的成本節省 40%,對於 3 年的承諾用量則高達 60%,適用於保留容量的客戶。 如需詳細資訊,請參閱定價計算機 |Microsoft Azure。 若要深入瞭解,請參閱 什麼是 Azure 保留?

2.相應增加/減少計算

相應增加或減少 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的資源,可協助您將成本優化。 視需要調整虛擬核心和記憶體,只支付必要資源的費用。 您可以透過 Azure 入口網站、Azure CLI 或 Azure REST API 來完成調整。 隨時可以相應增加或減少計算資源,而且需要重新啟動伺服器。 最好監視資料庫使用模式,並據以調整資源,以優化成本並確保效能。 如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中的計算和記憶體選項。

以保守方式設定非生產環境 - 將閑置的開發/測試/階段環境設定為具有符合成本效益的 SKU。 選擇可高載 SKU 非常適合不需要持續完整容量的工作負載。

若要深入瞭解,請參閱調整 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中的作業

3.使用 Azure 建議程序建議

Azure Advisor 是一項免費服務,可提供協助優化 Azure 資源的建議。 它會分析您的資源組態和使用模式,並提供如何改善 Azure 資源的效能、安全性、高可用性和成本效益的建議。 這些建議涵蓋各種 Azure 服務,包括計算、記憶體、網路和資料庫。

針對 適用於 PostgreSQL 的 Azure 資料庫,Azure Advisor 可以提供如何改善資料庫效能、可用性和成本效益的建議。 例如,它可能會建議使用讀取複本來相應增加或減少資料庫,以卸除大量讀取工作負載,或切換至保留容量定價來降低成本。 Azure Advisor 也可以建議安全性最佳做法,例如啟用待用加密,或啟用網路安全性規則來限制傳入資料庫的流量。

您可以透過 Azure 入口網站 存取 Azure Advisor 所提供的建議,只要按幾下即可檢視並實作建議。 實作 Azure Advisor 建議可協助您優化 Azure 資源並降低成本。 若要深入瞭解,請參閱 Azure Advisor for 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

4. 評估 HA (高可用性) 和 DR (災害復原) 需求

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器具有建節點和記憶體復原功能,您不需要額外的成本。 節點復原可讓您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例自動故障轉移至狀況良好的 VM,且不會遺失數據(也就是 RPO 零),而且除了您的應用程式必須重新連線以外,沒有任何 連接字串 變更。 同樣地,數據和事務歷史記錄會儲存在三個同步複本中,並會自動偵測記憶體損毀並採取更正動作。 對於大部分的開發/測試工作負載,以及許多生產工作負載而言,此設定應該已足夠。

如果您的工作負載需要 AZ 復原和較低的 RTO,您可以啟用具有區域內或跨 AZ 待命的高可用性 (HA)。 這會增加您的部署成本,但也會提供較高的 SLA。 若要為您的應用程式實現異地復原功能,您可以設定 GeoBackup 以降低成本,但具有較高的 RTO。 或者,您可以將 GeoReadReplica 設定為成本的兩倍,如果發生異地災害,則會在幾分鐘內提供 RTO。

關鍵是評估完整應用程式堆疊的需求,然後選擇 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的正確組態。 例如,如果您的應用程式不是 AZ 復原功能,在 AZ 復原設定中設定 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器,就不需要取得任何功能。

若要深入瞭解,請參閱 [彈性伺服器中的高可用性架構]/azure/reliability/reliability-postgresql-flexible-server

5.合併資料庫和伺服器

合併資料庫可以是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本節省策略。 將多個資料庫合併成單一 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,可以減少實例數目,以及執行 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的整體成本。 請遵循下列步驟來合併資料庫並節省成本:

  1. 存取您的伺服器:識別可合併的伺服器,考慮資料庫的大小、地理區域、組態(CPU、記憶體、IOPS)、效能需求、工作負載類型和數據一致性需求。
  2. 建立新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例:建立具有足夠 vCPU、記憶體和記憶體和記憶體的新 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,以支援合併的資料庫。
  3. 重複使用現有的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例:如果您已經有現有的伺服器,請確定它有足夠的 vCPU、記憶體和記憶體和記憶體來支援合併的資料庫。
  4. 移轉資料庫:將資料庫移轉至新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以使用pg_dump和pg_restore等工具來匯出和匯入資料庫。
  5. 監視效能:監視合併 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的效能,並視需要調整資源,以確保最佳效能。

合併資料庫可協助您節省成本,方法是減少執行所需的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例數目,以及讓您使用比較小的實例更具成本效益的較大實例。 請務必評估合併對資料庫效能的影響,並確保合併 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的大小適當,以符合所有資料庫需求。

若要深入瞭解,請參閱 使用 Azure Advisor 改善 Azure 應用程式的效能

6.將測試伺服器放在符合成本效益的地理區域中

在符合成本效益的 Azure 區域中建立測試伺服器可能是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本節省策略。 藉由在計算資源成本較低的區域中建立測試伺服器,您可以降低執行測試伺服器的成本,並將執行 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本降到最低。 以下是幾個步驟,可協助您在符合成本效益的 Azure 區域中建立測試伺服器:

  1. 識別符合成本效益的區域:識別具有較低計算資源成本的 Azure 區域。
  2. 建立新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例:在具有正確設定的測試環境,在符合成本效益的區域中建立新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
  3. 移轉測試數據:將測試數據遷移至新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以使用pg_dump和pg_restore等工具來匯出和匯入資料庫。
  4. 監視效能:監視測試伺服器的效能,並視需要調整資源,以確保最佳效能。

藉由在符合成本效益的 Azure 區域中建立測試伺服器,您可以降低執行測試伺服器的成本,並將執行 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本降到最低。 請務必評估區域對測試伺服器效能和組織特定區域需求的影響。 這可確保您的使用案例可以接受網路等待時間和數據傳輸成本。

若要深入瞭解,請參閱 Azure 區域

7.啟動和停止伺服器

啟動和停止伺服器可以是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本節省策略。 只要在需要時執行伺服器,您就可以降低執行 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本。 以下是幾個步驟可協助您啟動和停止伺服器並節省成本:

  1. 識別伺服器:識別您想要啟動和停止的彈性伺服器實例 適用於 PostgreSQL 的 Azure 資料庫。
  2. 啟動伺服器:視需要啟動 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以使用 Azure 入口網站、Azure CLI 或 Azure REST API 來啟動伺服器。
  3. 停止伺服器:當您不需要伺服器時,請停止 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以使用 Azure 入口網站、Azure CLI 或 Azure REST API 來停止伺服器。
  4. 此外,如果伺服器已連續數周處於停止(或閑置)狀態,您可以考慮在必要的盡職盡責后卸除伺服器。

您可以視需要啟動和停止伺服器,以降低執行 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的成本。 為了確保資料庫效能順暢,請務必評估啟動和停止伺服器的影響,並視需要對這些動作執行可靠程式。 若要深入瞭解,請參閱停止 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例和啟動 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的實例。

8.封存舊數據以供冷記憶體使用

將不常存取的數據封存至 Azure 封存存放區(同時仍保持存取權)有助於降低成本。 將數據從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器匯出至 Azure 封存記憶體,並將其儲存在成本較低的儲存層中。

  1. 設定 Azure Blob 儲存體 帳戶,併為您的資料庫備份建立容器。
  2. 使用 pg_dump 將舊數據導出至檔案。
  3. 使用 Azure CLI 或 PowerShell 將導出的檔案上傳至 Blob 記憶體容器。
  4. 在 Blob 記憶體容器上設定保留原則,以自動刪除舊的備份。
  5. 修改備份腳本,將舊數據匯出至 Blob 記憶體,而不是本機記憶體。
  6. 測試備份和還原程式,以確保視需要還原封存的數據。

您也可以使用 Azure Data Factory 將此程式自動化。

若要深入瞭解,請參閱使用傾印和還原移轉 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器資料庫

成本取捨

當您在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器上設計應用程式資料庫時,請考慮成本優化與設計的其他層面之間的取捨,例如安全性、延展性、復原性和操作性。

成本與可靠性

成本與可靠性有直接的相互關聯。

成本與效能效率

提升效能會導致成本較高。

成本與安全性

增加工作負載的安全性會增加成本。

成本與營運卓越

投資系統監視和自動化一開始可能會增加成本,但隨著時間推移會降低成本。