Azure Database for PostgreSQL是基于 PostgreSQL Community Edition 的 Microsoft 云中的关系数据库服务。 它是完全托管的数据库即服务产品,能够处理任务关键型工作负荷,并提供可预测的性能和动态可伸缩性。
本文提供了优化Azure Database for PostgreSQL灵活服务器成本的建议列表。 该列表包括设计注意事项、配置清单和建议的数据库设置,可帮助你优化工作负载。
- 使用预留容量定价。
- 扩展或缩减计算资源。
- 使用Azure 顾问建议。
- 评估高可用性(HA)和灾难恢复(DR)要求。
- 合并数据库和服务器。
- 将测试服务器置于经济高效的区域中。
- 启动和停止服务器。
- 存档旧数据以用于冷存储。
1. 使用预留容量定价
Azure Database for PostgreSQL 预留容量定价允许你承诺使用特定容量 1-3年,从而在使用 Azure Database for PostgreSQL 灵活服务器时节省成本。 与即用即付定价相比,可实现显著的成本节省,具体取决于预留容量和期限长度。 可以按 vCore 和存储增量购买预留容量。 预留容量涵盖同一区域中Azure Database for PostgreSQL灵活服务器的成本,适用于Azure订阅。 Azure Database for PostgreSQL 的预留定价可为预留容量的客户节省成本:一年期承诺最高可节省 40%,三年期承诺最高可节省 60%。 有关详细信息,请参阅定价计算器 |Microsoft Azure。 若要了解详细信息,请参阅什么是 Azure 预留?
2. 扩大或缩减计算资源
向上或向下调整 Azure Database for PostgreSQL 灵活服务器的资源有助于优化成本。 可根据需要调整 vCore 和存储,以仅支付必要的资源费用。 可以通过Azure门户、Azure CLI或Azure REST API 进行缩放。 可以随时纵向扩展或缩减计算资源,但需要重启服务器。 监视数据库使用模式并相应地调整资源,以优化成本并确保性能。 有关详细信息,请参阅 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 为零);除了应用程序必须重新连接外,连接字符串无需更改。 同样,数据和事务日志存储在三个同步副本中,而且会自动检测存储损坏并采取纠正措施。 对于大多数开发/测试工作负载以及许多生产工作负载,此配置应足以满足要求。
如果工作负载需要 AZ 复原能力和较低的 RTO,则可以使用区域内或跨 AZ 待机启用高可用性 (HA)。 此选项可增加部署成本,但也提供更高的 SLA。 要实现应用程序的异地复原能力,可以设置成本较低但 RTO 更高的 GeoBackup。 或者,可以设置双倍成本的 GeoReadReplica,这会在发生异地灾难时在几分钟内提供 RTO。
评估完整应用程序堆栈的要求,然后为Azure Database for PostgreSQL灵活服务器选择正确的配置。 例如,如果您的应用程序不具备可用区容错能力,那么将 Azure Database for PostgreSQL flexible server 配置为可用区容错也不会带来任何收益。
若要了解详细信息,请参阅 Azure Database for PostgreSQL 中的高可用性。
5. 合并数据库和服务器
合并数据库可以通过 Azure Database for PostgreSQL 灵活服务器帮助你节省成本。 通过将多个数据库合并到单个Azure Database for PostgreSQL灵活服务器,可以减少实例数,降低运行Azure Database for PostgreSQL的总体成本。 可按照以下步骤合并数据库并节省成本:
- 访问服务器:确定可以合并的服务器,考虑数据库的大小、异地区域、配置(CPU、内存、IOPS)、性能要求、工作负荷类型和数据一致性需求。
- 创建新的Azure Database for PostgreSQL灵活服务器:创建具有足够 vCPU、内存和存储的新Azure Database for PostgreSQL灵活服务器以支持合并的数据库。
- 重复使用现有的Azure Database for PostgreSQL灵活服务器:如果已有服务器,请确保它有足够的 vCPU、内存和存储来支持合并的数据库。
- 迁移数据库:将数据库迁移到新的Azure Database for PostgreSQL灵活服务器。 使用诸如
pg_dump和pg_restore导出和导入数据库之类的工具。 - 监视性能:监视合并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区域中创建测试服务器:
- 标识经济高效的区域:确定计算资源成本较低的 Azure 区域。
- 创建新的 Azure Database for PostgreSQL 灵活服务器:在具有成本效益的区域中创建新的 Azure Database for PostgreSQL 灵活服务器,并为测试环境选择合适的配置。
- 迁移测试数据:将测试数据迁移到新的Azure Database for PostgreSQL灵活服务器。 使用诸如
pg_dump和pg_restore导出和导入数据库之类的工具。 - 监视性能:监视测试服务器的性能,并根据需要调整资源以确保最佳性能。
通过在经济高效的Azure区域中创建测试服务器,可以降低运行测试服务器的成本,并最大程度地降低运行Azure Database for PostgreSQL的成本。 评估区域对测试服务器性能和组织的特定区域要求的影响。 这项评估可确保,对于你的用例而言,网络延迟和数据传输成本处于可接受范围内。
7. 启动和停止服务器
使用Azure Database for PostgreSQL灵活服务器时,启动和停止服务器可帮助你节省资金。 只需在需要时运行服务器,即可降低运行Azure Database for PostgreSQL的成本。 按照以下步骤启动和停止服务器并节省成本:
- 确定服务器:确定要启动和停止的 Azure Database for PostgreSQL 灵活服务器。
- 启动服务器:在需要时启动Azure Database for PostgreSQL灵活服务器。 可以使用Azure门户、Azure CLI或Azure REST API 启动服务器。
- 停止服务器:在不需要使用 Azure Database for PostgreSQL 灵活服务器时,请将其停止。 可以使用 Azure 门户、Azure CLI或 Azure REST API 停止服务器。
- 如果服务器处于停止运行(或空闲)状态已连续数周,请考虑在完成必要的审查后弃用该服务器。
通过根据需要启动和停止服务器,可以降低运行Azure Database for PostgreSQL灵活服务器的成本。 若要确保数据库性能流畅,请评估启动和停止服务器的影响,并根据需要对这些操作执行可靠的进程。 有关详细信息,请参阅 停止服务器计算 和 启动服务器的计算。
8. 存档旧数据以用于冷存储
将不常访问的数据存档到 Azure 存档存储(同时仍保持访问)有助于降低成本。 将数据从Azure Database for PostgreSQL灵活服务器导出到Azure存档存储,并将其存储在成本较低的存储层中。
- 设置 Azure Blob 存储帐户并为数据库备份创建容器。
- 使用
pg_dump将旧数据导出到文件。 - 使用 Azure CLI 或 PowerShell 将导出的文件上传到 Blob 存储容器。
- 在 Blob 存储容器上设置保留策略以自动删除旧备份。
- 修改备份脚本,以将旧数据导出到 Blob 存储,而不是本地存储。
- 测试备份和还原过程,以确保可以根据需要还原存档的数据。
还可以使用 Azure 数据工厂自动执行此过程。
有关更多信息,请参阅 通过使用转储和还原迁移 PostgreSQL 数据库。
成本权衡
在 Azure Database for PostgreSQL 上设计应用程序数据库时,请考虑成本优化与设计的其他方面之间的权衡,例如安全性、可伸缩性、复原能力和可作性。
成本与可靠性
成本与可靠性有直接关系。
成本与性能效率
提高性能会导致更高的成本。
成本与安全性
提高工作负荷的安全性会增加成本。
成本与卓越运营
投资系统监视和自动化最初可能会增加成本,但随着时间的推移可以降低成本。