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

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

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

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

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

1. 纵向扩展/缩减计算

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

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

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

2. 使用 Azure 顾问建议

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

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

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

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

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

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

关键是评估完整应用程序堆栈的要求,然后为 Azure Database for PostgreSQL 灵活服务器实例选择正确的配置。 例如,如果您的应用程序不具备 AZ 高可用性,那么在 AZ 高可用性配置中配置 Azure Database for PostgreSQL 灵活服务器是没有任何好处的。

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

4. 合并数据库和服务器

合并数据库可以是 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 应用程序的性能

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

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

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

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

6. 启动和停止服务器

启动和停止服务器可能是 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 灵活服务器启动 Azure Database for PostgreSQL 灵活服务器

7. 将用于冷存储的旧数据存档

将不常访问的数据存档到 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 灵活服务器上设计应用程序数据库时,请考虑成本优化与设计的其他方面之间的权衡,例如安全性、可伸缩性、复原能力和可作性。

成本与可靠性

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

成本与性能效率

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

成本与安全性

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

成本与卓越运营

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