你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何在 Azure Database for PostgreSQL 灵活服务器中优化成本

适用于:Azure Database for PostgreSQL 灵活服务器

Azure Database for PostgreSQL 灵活服务器是 Microsoft 云中基于 PostgreSQL 社区版的一种关系数据库服务。 它是完全托管的数据库即服务产品,能够处理任务关键型工作负荷,并提供可预测的性能和动态可伸缩性。

本文提供了一系列用于优化 Azure Database for PostgreSQL 灵活服务器成本的建议。 该列表包括设计注意事项、配置清单和建议的数据库设置,可帮助你优化工作负载。

  • 利用预留容量定价。
  • 纵向扩展/缩减计算。
  • 使用 Azure 顾问建议。
  • 评估 HA(高可用性)和 DR(灾难恢复)要求。
  • 合并数据库和服务器。
  • 将测试服务器放置在经济高效的地理区域中。
  • 启动和停止服务器。
  • 存档旧数据以用于冷存储。

1. 使用预留容量定价

Azure Postgres 预留容量定价允许承诺 1-3 年的特定容量,可以为使用 Azure Database for PostgreSQL 灵活服务器的客户节省成本。 与即用即付定价相比,可实现显著的成本节省,具体取决于预留容量和期限长度。 客户可以按虚拟核心和存储增量购买预留容量。 预留容量适用于客户的订阅,可以涵盖同一区域中 Azure Database for PostgreSQL 灵活服务器实例的成本。 对于预留容量的客户,Azure Database for PostgreSQL 灵活服务器的预留定价可为 1 年承诺提供最多 40% 的成本节省,可为 3 年承诺提供最多 60% 的成本节省。 有关详细信息,请参阅定价计算器 | Microsoft Azure。 若要了解详细信息,请参阅什么是 Azure 预留?

2. 纵向扩展/缩减计算

纵向扩展或缩减 Azure Database for PostgreSQL 灵活服务器实例的资源有助于优化成本。 可根据需要调整 vCore 和存储,以仅支付必要的资源费用。 可以通过 Azure 门户、Azure CLI 或 Azure PowerShell 完成此操作。 可以随时纵向扩展或缩减计算资源,但需要重启服务器。 监视数据库使用模式并相应地调整资源,以优化成本并确保性能是一种良好做法。 有关更多详细信息,请参阅 Azure Database for PostgreSQL 灵活服务器中的计算和存储选项。

保守地配置非 prod 环境 - 将空闲的开发/测试/暂存环境配置为具有经济高效的 SKU。 选择可突发 SKU 非常适合不需要连续完整容量的工作负载。

要了解详细信息,请参阅 Azure Database for PostgreSQL 灵活服务器中的缩放操作

3. 使用 Azure 顾问建议

Azure 顾问是一项免费服务,可提供有助于优化 Azure 资源的建议。 它会分析资源配置和使用模式,并提供有关如何提高 Azure 资源的性能、安全性、高可用性和成本效益的建议。 这些建议涵盖了各种 Azure 服务,包括计算、存储、网络和数据库。

对于 Azure Database for PostgreSQL,Azure 顾问可以提供有关如何提高数据库性能、可用性和成本效益的建议。 例如,它可以建议纵向扩展或缩减数据库,使用只读副本卸载读取密集型工作负荷,或切换到预留容量定价以降低成本。 Azure 顾问还可以推荐安全最佳做法,例如启用静态加密,或启用网络安全规则来限制传入数据库的流量。

可以通过 Azure 门户访问 Azure 顾问提供的建议,在 Azure 门户中,只需单击几下即可查看和实施建议。 实施 Azure 顾问建议有助于优化 Azure 资源并降低成本。 要了解详细信息,请参阅 Azure Database for PostgreSQL 灵活服务器的 Azure 顾问

4. 评估 HA(高可用性)和 DR(灾难恢复)要求

Azure Database for PostgreSQL 灵活服务器具有内置的节点和存储复原能力,无需额外付费。 节点复原能力允许 Azure Database for PostgreSQL 灵活服务器实例自动故障转移到没有数据丢失(即 RPO 零)且没有连接字符串更改(应用程序必须重新连接除外)的正常运行的 VM。 同样,数据和事务日志存储在三个同步副本中,而且会自动检测存储损坏并采取纠正措施。 对于大多数开发/测试工作负载以及许多生产工作负载,此配置应足以满足要求。

如果工作负载需要 AZ 复原能力和较低的 RTO,则可以使用区域内或跨 AZ 待机启用高可用性 (HA)。 这会增加一倍的部署成本,但也提供了更高的 SLA。 要实现应用程序的异地复原能力,可以设置成本较低但 RTO 更高的 GeoBackup。 或者,可以设置双倍成本的 GeoReadReplica,这会在发生异地灾难时在几分钟内提供 RTO。

关键在于评估完整应用程序堆栈的要求,然后为 Azure Database for PostgreSQL 灵活服务器实例选择正确的配置。 例如,如果应用程序不具有 AZ 复原能力,则在 AZ 复原能力配置中配置 Azure Database for PostgreSQL 灵活服务器将一无所获。

若要了解详细信息,请参阅灵活服务器中的高可用性体系结构

5. 合并数据库和服务器

合并数据库可以是 Azure Database for PostgreSQL 灵活服务器的节省成本策略。 将多个数据库合并到单个 Azure Database for PostgreSQL 灵活服务器实例可以减少实例数和运行 Azure Database for PostgreSQL 灵活服务器的总体成本。 可按照以下步骤合并数据库并节省成本:

  1. 访问服务器:标识可合并的服务器,同时考虑数据库的大小、地理区域、配置(CPU、内存、IOPS)、性能要求、工作负荷类型和数据一致性需求。
  2. 创建新的 Azure Database for PostgreSQL 灵活服务器实例:使用足够的 vCPU、内存和存储创建新的 Azure Database for PostgreSQL 灵活服务器实例,以支持合并的数据库。
  3. 重复使用现有的 Azure Database for PostgreSQL 灵活服务器实例:如果已有服务器,请确保它有足够的 vCPU、内存和存储来支持合并的数据库。
  4. 迁移数据库:将数据库迁移到新的 Azure Database for PostgreSQL 灵活服务器实例。 可以使用 pg_dump 和 pg_restore 等工具来导出和导入数据库。
  5. 监视性能:监视合并的 Azure Database for PostgreSQL 灵活服务器实例的性能,并根据需要调整资源以确保最佳性能。

合并数据库可以通过减少运行所需的 Azure Database for PostgreSQL 灵活服务器实例数,并使你能够使用比较小实例更具成本效益的更大实例来帮助节省成本。 请务必评估合并对数据库性能的影响,并确保合并的 Azure Database for PostgreSQL 灵活服务器实例的大小适当,以满足所有数据库需求。

要了解详细信息,请参阅使用 Azure 顾问提高 Azure 应用程序的性能

6. 将测试服务器放置在经济高效的地理区域中

在经济高效的 Azure 区域中创建测试服务器可能是 Azure Database for PostgreSQL 灵活服务器的节省成本策略。 通过在计算资源成本较低的区域中创建测试服务器,可以降低运行测试服务器的成本,并最大程度地降低运行 Azure Database for PostgreSQL 灵活服务器的成本。 以下几个步骤可帮助你在经济高效的 Azure 区域中创建测试服务器:

  1. 标识经济高效的区域:确定计算资源成本较低的 Azure 区域。
  2. 创建新的 Azure Database for PostgreSQL 灵活服务器实例:在针对你的测试环境具有合适配置的经济高效区域中创建新的 Azure Database for PostgreSQL 灵活服务器实例。
  3. 迁移测试数据:将测试数据迁移到新的 Azure Database for PostgreSQL 灵活服务器实例。 可以使用 pg_dump 和 pg_restore 等工具来导出和导入数据库。
  4. 监视性能:监视测试服务器的性能,并根据需要调整资源以确保最佳性能。

通过在经济高效的 Azure 区域中创建测试服务器,可以降低运行测试服务器的成本,并最大程度地降低运行 Azure Database for PostgreSQL 灵活服务器的成本。 请务必评估区域对测试服务器的性能和组织的特定区域要求的影响。 这可确保你的用例可以接受网络延迟和数据传输成本。

若要了解详细信息,请参阅 Azure 区域

7. 启动和停止服务器

启动和停止服务器可能是 Azure Database for PostgreSQL 灵活服务器的成本节省策略。 只需在需要时运行服务器,就可以降低运行 Azure Database for PostgreSQL 灵活服务器的成本。 以下几个步骤可帮助你启动和停止服务器并节省成本:

  1. 标识服务器:标识要启动和停止的 Azure Database for PostgreSQL 灵活服务器实例。
  2. 启动服务器:在需要时启动 Azure Database for PostgreSQL 灵活服务器实例。 可以使用 Azure 门户、Azure CLI 或 Azure REST API 启动服务器。
  3. 停止服务器:在不需要时停止 Azure Database for PostgreSQL 灵活服务器实例。 可以使用 Azure 门户、Azure CLI 或 Azure REST API 停止服务器。
  4. 此外,如果服务器已连续数周处于停止(或空闲)状态,则可以考虑在经过必要的严格评估后删除服务器。

通过根据需要启动和停止服务器,可以降低运行 Azure Database for PostgreSQL 灵活服务器的成本。 为确保数据库性能平稳,必须评估启动和停止服务器的影响,并根据需要为这些操作制定可靠的流程。 若要了解详细信息,请参阅停止/启动 Azure Database for PostgreSQL 灵活服务器实例

8. 存档旧数据以用于冷存储

将不常访问的数据存档到 Azure 存档存储(同时仍保持访问)有助于降低成本。 将数据从 Azure Database for PostgreSQL 灵活服务器导出到 Azure 存档存储,并将其存储在成本较低的存储层中。

  1. 设置 Azure Blob 存储帐户并为数据库备份创建容器。
  2. 使用 pg_dump 将旧数据导出到文件。
  3. 使用 Azure CLI 或 PowerShell 将导出的文件上传到 Blob 存储容器。
  4. 在 Blob 存储容器上设置保留策略以自动删除旧备份。
  5. 修改备份脚本,以将旧数据导出到 Blob 存储,而不是本地存储。
  6. 测试备份和还原过程,以确保可以根据需要还原存档的数据。

还可以使用 Azure 数据工厂自动执行此过程。

若要了解详细信息,请参阅使用转储和还原迁移 Azure Database for PostgreSQL 灵活服务器数据库

成本权衡

在 Azure Database for PostgreSQL 灵活服务器上设计应用程序数据库时,请考虑权衡成本优化与设计的其他方面(例如安全性、可伸缩性、复原能力和可操作性)。

成本与可靠性

成本与可靠性有直接关系。

成本与性能效率

提高性能将导致更高的成本。

成本与安全性

提高工作负载的安全性也将增加成本。

成本与卓越运营

虽然在系统监视和自动化方面的投资最初可能会增加成本,但随着时间的推移会降低成本。

后续步骤

要了解有关成本优化的详细信息,请参阅: