本文可帮助你计划和管理 Azure Blob 存储的成本。
首先,请熟悉每个计费计量器以及如何查找每个计量器的价格。 然后,可以使用 Azure 定价计算器来估算成本。 使用成本管理功能来设置预算和监视成本。 还可以查看预测的成本并监视支出趋势以确定可能需要实施措施的领域。
请记住,Blob 存储的成本只是 Azure 账单中每月成本的一部分。 尽管本文介绍了如何估算和管理 Blob 存储的成本,但你需要为 Azure 订阅中使用的所有 Azure 服务和资源(包括第三方服务)付费。 在熟悉了如何管理 Blob 存储的成本之后,可以应用类似的方法来管理订阅中使用的所有 Azure 服务的成本。
了解 Azure Blob 存储的完整计费模型
Azure Blob 存储在 Azure 基础结构上运行。当你部署新资源时,该基础结构会产生成本。 务必要了解,可能还会产生其他额外的基础设施成本。
Azure Blob 存储的计费方式
创建或使用 Blob 存储资源时,将按以下计量器计费:
| 米 | 单位 |
|---|---|
| 数据存储 | 每 GB/每月 |
| 索引 | 每 GB/每月1 |
| Operations | 每事务 |
| 数据传输 | 每 GB2 |
| 数据检索 | 每 GB3 |
| Blob 索引标记 | 每标记4 |
| 更改源 | 每项记录的更改4 |
| SSH 文件传输协议 (SFTP) | 每小时4 |
| Blob 清单 | 扫描的每百万个对象4 |
| 加密范围 | 每月4 |
| 查询加速 | 扫描的每 GB 和返回的每 GB |
| 处理的时间点还原数据 | 还原的每 MB |
1 仅适用于具有分层命名空间的帐户。
2 仅在将数据复制到另一个区域时才适用。
3 仅适用于凉层、冷层和存档层。
4 仅当启用了该功能时才适用。
在计费周期结束时,将对每个计量表的费用进行求和。 账单或发票会将所有 Azure Blob 存储成本显示在一个部分中。 每个计量表都有单独的一行项目。
数据存储和索引计量器
数据存储和元数据按每月每 GB 计费。 大多数元数据作为 Blob 的一部分存储,包括属性和键值对。 与存档层中的 Blob 关联的元数据单独存储在冷层中。 这样,用户就可以列出 Blob 及其属性、元数据和索引标记。 由于元数据的大小不超过 8 KB,因此其成本占总存储容量的百分比相对较小。
Blob 索引标记作为子资源存储在热层中,具有自身的计费计量器。 “索引”计量器仅适用于具有分层命名空间的帐户,该命名空间是简化分层文件结构(包括与该结构中的对象关联的访问控制列表 (ACL))所需的空间的计费方式。 与索引相关的数据始终存储在热层中。
对于存储时间不到一个月的数据和元数据,你可以通过计算每 GB 每天的成本来估算对每月账单的影响。 任意给定月份中的天数有所不同。 因此,若要获得给定月份的成本的最佳近似值,请确保将每月成本除以该月的天数。
Azure Blob 存储使用以下 base-2 度量单位表示存储容量:KiB、MiB、GiB、TiB、PiB。 虽然账单中的行项包含 GB 作为计量单位,但这些单位由 Azure Blob 存储计算为二进制 GB (GiB)。 例如,账单上显示存储的数据 (GB/月) 为 1 的行项对应于每月使用 1 GiB。 下表介绍了每个 base-2 单位:
| 缩略词 | 单位 | 定义 |
|---|---|---|
| KiB | kibibyte | 1,024 字节 |
| MiB | mebibyte | 1,024 KiB(1,048,576 字节) |
| GiB | gibibyte | 1,024 MiB(1,073,741,824 字节) |
| TiB | tebibyte | 1,024 GiB(1,099,511,627,776 字节) |
操作计量器
客户端发出的每个请求都以 REST 操作的形式到达服务。 你可以监视资源日志,以查看针对数据执行了哪些操作。
定价页不会单独列出每个操作的价格,而是按操作类型列出价格。 若要确定某个操作的价格,必须首先确定该操作划分到了哪种类型。 若要跟踪记录的操作到 REST 操作再到操作类型的映射,请参阅将每个 REST 操作映射到价格。
某些操作(例如删除或元数据操作)可能仅在热层上收费,即使该操作是针对其他层上的对象执行的。 这不会影响操作的价格。
操作类型旁边显示的价格并不是每个操作的支付价格。 大多数情况下,它是 10,000 操作的价格。 若要获取单个操作的价格,请将该价格除以 10,000。 例如,如果写入操作的价格为 ¥0.055,则单个操作的价格为 ¥.0555 / 10,000 = ¥0.0000055。 若要估算文件的上传成本,可以将完成上传所需的写入操作次数乘以单个事务的成本。
数据传输计量器
离开 Azure 区域的任何数据都会产生数据传输或网络带宽费用。 为异地冗余存储配置帐户时,将显示数据传输计量。
当工作负荷或对象复制策略将数据复制到另一区域中的帐户时,网络带宽费用适用。 当下载到本地客户端的数据时,也会显示网络带宽费用。 网络带宽价格不会显示在 Azure 存储定价页中。 若要查找网络带宽价格,请参阅带宽定价。
与功能相关的计量器
启用 Blob 存储功能不会产生成本。 只有三项功能(SFTP 支持、加密范围和 Blob 索引标记)在启用后会产生被动费用。 对于所有其他功能,你需要为功能输出和使用该功能而执行的操作所占用的存储空间付费。 例如,如果启用版本控制,则账单将反映存储版本的成本,以及执行列出或检索版本的操作的成本。 某些功能具有附加的计量器。 有关完整列表,请参阅本文的 Azure Blob 存储的计费方式部分。
如果使用这些功能的时间少于一个月,则可以根据基于时间的计量器按比例付费。 例如,“加密范围”按月计费。 如果加密范围的部署时间少于一个月,你可以通过计算每日成本来估算对每月账单的影响。 任意给定月份中的天数有所不同。 因此,若要获得给定月份的成本的最佳近似值,请确保将每月成本除以该月的天数。
查找每个计量器的单价
若要查找单价,请打开正确的定价页并选择适当的文件结构。 然后应用适当的冗余、区域和货币筛选器。 每个计量的价格会显示在一个表中。 价格因帐户中的其他设置(例如数据冗余选项、访问层和性能层)而异。
正确的定价页和文件结构主要影响数据的读取和写入成本,因为这些选择在本质上不会改变数据的存储成本。 若要准确估算数据的读取和写入成本,首先请确定要使用哪些存储帐户终结点客户端、应用程序和工作负载来读取和写入数据。
对 Blob 服务终结点的请求
Blob 服务终结点的格式为 https://<storage-account>.blob.core.chinacloudapi.cn,它是与 Blob 存储交互的工具和应用程序的最常用终结点。
请求可以来自以下任何源:
使用来自 Azure 存储客户端库的 Blob 存储 REST API 或 Blob 存储 API 的客户端
传输到装载了网络文件系统 (NFS) 3.0 的容器
使用 SSH 文件传输协议 (SFTP) 进行的传输
使用 WASB 驱动程序的 Hadoop 工作负载
这些请求的正确定价页是块 Blob 定价页。
对此终结点的请求也可能发生在具有分层命名空间的帐户中。 事实上,若要使用 NFS 3.0 和 SFTP 协议,必须首先启用帐户的分层命名空间功能。
如果帐户已启用分层命名空间功能,请确保已选择 “常规用途 v2 分层命名空间 ”选项卡。
对 Data Lake Storage 终结点的请求
Data Lake Storage 终结点的格式为 https://<storage-account>.dfs.core.chinacloudapi.cn,它是分析工作负载和应用程序最常用的终结点。 此终结点通常与具有分层命名空间的帐户一起使用,但并非总是如此。
请求可以来自以下任何源:
使用 Azure Blob File System (ABFS) 驱动程序的 Hadoop 工作负载
使用来自 Azure 存储客户端库的 Data Lake Storage REST API 或 Data Lake Storage API 的客户端
这些请求的正确定价页是 Azure Data Lake Storage 定价页。
如果帐户未启用分层命名空间功能,但你希望客户端、工作负荷或应用程序通过帐户的Data Lake Storage终结点发出请求,请选择“平面命名空间”选项卡。否则,请确保选择“分层命名空间”。
估算成本
在创建 Azure 存储帐户并开始向该帐户传输数据之前,先使用 Azure 定价计算器估算成本。
对 Azure Blob 存储使用 Azure 预付款
可以使用 Azure 预付款(之前称为货币承诺)额度支付 Azure Blob 存储费用。 但是,不能使用 Azure 预付款额度来支付第三方产品和服务(包括 Azure 市场中的)的费用。
优化成本
如果已使用 Blob 存储一段时间,应定期查看容器的内容来确定降低成本的机会。 通过了解你的 Blob 数据在生产环境中的存储、组织和使用方式,你可以更好地优化这些 Blob 在可用性、性能和成本之间的权衡。 请参阅以下任一文章,对现有容器和 blob 进行盘点和分析:
如果可以模拟未来的容量需求,则可以使用 Azure 存储预留容量来节省资金。 Azure 存储预留容量适用于大多数访问层,如果你承诺预留一年或三年,则它可为标准存储帐户中的块 Blob 和 Azure Data Lake Storage 数据提供容量折扣。 预留会在其期限内提供固定数量的存储容量。 Azure 存储预留容量可以大幅降低块 Blob 和 Azure 数据湖存储数据的容量成本。 要了解详细信息,请参阅借助预留容量优化 Blob 存储的成本。
还可通过将 Blob 数据放入最经济高效的访问层来降低成本。 在三个专为优化数据使用成本设计的层中选择。 例如,热层的存储成本较高,但访问成本较低。 因此,如果您计划频繁访问数据,那么热存储层可能是最具成本效益的选择。 如果计划不经常访问数据,冷层或存档层可能最适用,因为它们会提高访问数据的成本,同时降低存储数据的成本。
查看下列任何文章:
使用生命周期管理策略定期在层之间移动数据,以最大化地节省成本。 这些策略可以使用您指定的规则来移动数据。 例如,可以创建一个规则,如果 blob 在 90 天内未修改,就将其移动到存档层。 通过创建调整数据访问层的策略,可根据需求设计出成本最低的存储方案。 若要了解详细信息,请参阅管理 Azure Blob 存储生命周期。
创建预算
可以创建预算来管理成本,并创建警报以自动通知利益干系人支出异常和超支风险。 警报是根据支出与预算和成本阈值的比较而生成的。 预算和警报是针对 Azure 订阅和资源组创建的,作为总体成本监视策略的一部分,它们非常有用。 但是,因为它们设计为在较高级别跟踪成本,因此在管理单个 Azure 服务成本(如 Azure 存储的成本)方面的功能可能有限。
导出成本数据
还可以将成本数据导出到存储帐户。 当你或其他人需要进行有关成本的额外数据分析时,这非常有用。 例如,财务团队可以使用 Excel 或 Power BI 来分析数据。 可以按每日、每周或每月计划导出成本,并设置自定义日期范围。 导出成本数据是检索成本数据集的建议方法。
避免计费意外
某些操作(例如更改帐户的默认访问层)可能会产生意想不到的费用。 虽然有关每个功能的文章都包含关于如何避免意外成本的信息,但此表列出了常见原因。
| 类别 | Action | 对计费的潜在影响 |
|---|---|---|
| 访问层级 | 更改默认访问层设置 | 如果帐户包含大量推断访问层的 Blob,则更改此设置可能会产生大量成本。 对存储帐户的默认访问层设置的更改适用于帐户中尚未显式设置访问层的所有 Blob。 例如,如果在常规用途 v2 帐户中将默认访问层设置从热层切换为冷层,则按推断访问层的所有 Blob 的写入操作次数(以 10,000 次为单位)收费。 如果在常规用途 v2 帐户中从冷层切换为热层,则按读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。 有关详细信息,请参阅默认帐户访问层设置。 |
| 访问层级 | 从存档中解除冻结 | 从存档中解除冻结高优先级可能会导致比正常计费更高的费用。 Azure 建议保留高优先级解除冻结,以用于需要紧急数据恢复的情况。 有关详细信息,请参阅解除冻结优先级。 |
| 访问层级 | 删除、覆盖 Blob 或将其移动到另一层 | 使用复制 Blob 操作更新 Blob 的工具或应用程序将覆盖 Blob。 如果 Blob 在达到层级要求的最短天数之前被删除或、覆盖或移动到其他层级,则会受到提前删除处罚。 |
| 应用程序开发 | 上传到 Blob 存储中的流 | 如果在 Blob 存储中打开流并在帐户上启用对象复制时频繁写入该流,则可能会产生巨大的事务成本。 每次写入流都会创建 zip 文件的新版本,并将每个版本复制到目标帐户。 如果启用了 Azure Blob 保管库备份,则情况也是如此,因为保管库备份使用对象复制。 |
| 数据保护 | 启用 Blob 软删除 | 覆盖 Blob 可能会生成 Blob 快照。 与删除 Blob 的情况不同,不会记录这些快照的创建。 这可能会导致意外的存储成本。 考虑是否应将频繁覆盖的数据置于未启用软删除的帐户中。 有关详细信息,请参阅启用软删除时如何处理覆盖。 |
| 数据保护 | 启用 Blob 版本控制 | 针对 Blob 的每个写入操作都会创建一个新版本。 与启用 Blob 软删除的情况一样,考虑是否应将频繁覆盖的数据置于未启用版本控制的帐户中。 有关详细信息,请参阅针对写入操作的版本控制。 |
| 监测 | 启用存储分析日志(经典日志) | 如果未设置保留策略,存储分析日志会随着时间的推移在帐户中累积。 确保设置保留策略,以避免日志累积,这可能会导致意外的容量费用。 有关详细信息,请参阅修改日志数据保留期 |
| 协议 | 启用 SSH 文件传输协议 (SFTP) 支持 | 启用 SFTP 终结点需要按小时付费。 要避免被动费用,可考虑仅在主动使用 SFTP 传输数据时才启用它。 有关如何启用和随后禁用 SFTP 支持的指导,请参阅使用 SSH 文件传输协议 (SFTP) 连接到 Azure Blob 存储。 |
常见问题 (FAQ)
请参阅管理成本常见问题解答。
后续步骤
- 详细了解 Azure 存储的定价方式。 请参阅 Azure 存储概述定价。
- 了解 blob 和容器在生产环境中的存储、组织和使用方式,以便可以更好地优化成本和性能之间的权衡。 请参阅教程:分析 blob 清单报表。
- 借助预留容量优化 Blob 存储的成本。
- 了解 如何使用 Microsoft 成本管理优化云投资。
- 详细了解如何通过成本分析来管理成本。
- 了解如何防止意外成本。