你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
计划和管理 Azure Blob 存储的成本
本文可帮助你计划和管理 Azure Blob 存储的成本。
首先,请熟悉每个计费计量器以及如何查找每个计量器的价格。 然后,可以使用 Azure 定价计算器来估算成本。 使用成本管理功能来设置预算和监视成本。 还可以查看预测的成本并监视支出趋势以确定可能需要实施措施的领域。
请记住,Blob 存储的成本只是 Azure 账单中每月成本的一部分。 尽管本文介绍了如何估算和管理 Blob 存储的成本,但你需要为 Azure 订阅中使用的所有 Azure 服务和资源(包括第三方服务)付费。 在熟悉了如何管理 Blob 存储的成本之后,可以应用类似的方法来管理订阅中使用的所有 Azure 服务的成本。
了解 Azure Blob 存储的完整计费模型
Azure Blob 存储在 Azure 基础结构上运行。当你部署新资源时,该基础结构会产生成本。 用户务必了解,是否可能产生其他基础结构成本。
Azure Blob 存储的计费方式
创建或使用 Blob 存储资源时,将按以下计量器计费:
计量 | 单位 |
---|---|
数据存储 | 每 GB/每月 |
Index | 每 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 Blob 存储的使用成本。
数据传输计量器
任何离开 Azure 区域的数据都会产生数据传输和网络带宽费。 这些费用通常出现在将帐户配置为异地冗余存储,或将对象复制策略配置为向另一个区域中的帐户复制数据的情况下。 但是,这些费用也适用于下载到本地客户端的数据。 网络带宽价格不会显示在 Azure 存储定价页中。 若要查找网络带宽价格,请参阅带宽定价。
与功能相关的计量器
启用 Blob 存储功能不会产生成本。 只有三项功能(SFTP 支持、加密范围和 Blob 索引标记)在启用后会产生被动费用。 对于所有其他功能,你需要为功能输出和使用该功能而执行的操作所占用的存储空间付费。 例如,如果启用版本控制,则账单将反映存储版本的成本,以及执行列出或检索版本的操作的成本。 某些功能具有附加的计量器。 有关完整列表,请参阅本文的 Azure Blob 存储的计费方式部分。
如果使用这些功能的时间少于一个月,则可以根据基于时间的计量器按比例付费。 例如,“加密范围”按月计费。 如果加密范围的部署时间少于一个月,你可以通过计算每日成本来估算对每月账单的影响。 任意给定月份中的天数有所不同。 因此,若要获得给定月份的成本的最佳近似值,请确保将每月成本除以该月的天数。
查找每个计量器的单价
若要查找单价,请打开正确的定价页并选择适当的文件结构。 然后应用适当的冗余、区域和货币筛选器。 每个计量的价格会显示在一个表中。 价格因帐户中的其他设置(例如数据冗余选项、访问层和性能层)而异。
正确的定价页和文件结构主要影响数据的读取和写入成本,因为这些选择在本质上不会改变数据的存储成本。 若要准确估算数据的读取和写入成本,首先请确定要使用哪些存储帐户终结点客户端、应用程序和工作负载来读取和写入数据。
对 Blob 服务终结点的请求
Blob 服务终结点的格式为 https://<storage-account>.blob.core.windows.net
,它是与 Blob 存储交互的工具和应用程序的最常用终结点。
请求可以来自以下任何源:
使用来自 Azure 存储客户端库的 Blob 存储 REST API 或 Blob 存储 API 的客户端
传输到装载了网络文件系统 (NFS) 3.0 的容器
使用 SSH 文件传输协议 (SFTP) 进行的传输
使用 WASB 驱动程序的 Hadoop 工作负载
这些请求的正确定价页是块 Blob 定价页。
对此终结点的请求也可能发生在具有分层命名空间的帐户中。 事实上,若要使用 NFS 3.0 和 SFTP 协议,必须首先启用帐户的分层命名空间功能。
如果为帐户启用了分层命名空间功能,请确保“文件结构”下拉列表设置为“分层命名空间(NFS v3.0,SFTP 协议)”。 否则,请确保将其设置为“平面命名空间”。
对 Data Lake Storage 终结点的请求
Data Lake Storage 终结点的格式为 https://<storage-account>.dfs.core.windows.net
,它是分析工作负载和应用程序最常用的终结点。 此终结点通常与具有分层命名空间的帐户一起使用,但并非总是如此。
请求可以来自以下任何源:
使用 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 定价计算器页面上,选择“存储帐户”磁贴。
向下滚动页面,找到“你的估算”的“存储帐户”部分。
从下拉列表选择选项。
修改这些下拉列表的值时,成本估算随即发生变化。 该估算值显示估算页面的上角和底部。
更改“类型”下拉列表的值时,此工作表上显示的其他选项也会随之更改。 使用“详细信息”部分中的链接详细了解每个选项的含义,以及这些选项如何影响与存储相关的操作的价格。
修改剩余的选项,查看其对估算的影响。
对 Azure Blob 存储使用 Azure 预付款
可以使用 Azure 预付款(之前称为货币承诺)额度支付 Azure Blob 存储费用。 但是,不能使用 Azure 预付款额度来支付第三方产品和服务(包括 Azure 市场中的)的费用。
优化成本
如果已使用 Blob 存储一段时间,应定期查看容器的内容来确定降低成本的机会。 通过了解 Blob 在生产环境中的存储、组织和使用方式,可更好地优化可用性、成本和性能之间的权衡。 查看下面任何一篇文章,逐项分析你现有的容器和 Blob:
如果可以模拟未来的容量需求,则可以使用 Azure 存储预留容量来节省资金。 Azure 存储预留容量适用于大多数访问层,如果你承诺预留一年或三年,则它可为标准存储帐户中的块 Blob 和 Azure Data Lake Storage 数据提供容量折扣。 预留在预留期内提供固定数量的存储容量。 Azure 存储预留容量可大幅降低用于块 Blob 和 Azure Data Lake Storage 数据的容量成本。 若要了解详细信息,请参阅借助预留容量优化 Blob 存储的成本。
还可通过将 Blob 数据放入最经济高效的访问层来降低成本。 在三个专为优化数据使用成本设计的层中选择。 例如,热层的存储成本较高,但访问成本较低。 因此,如果计划频繁访问数据,则热层可能是最经济高效的选择。 如果计划不经常访问数据,冷层或存档层可能最适用,因为它们会提高访问数据的成本,同时降低存储数据的成本 。 查看下列任何文章:
使用生命周期管理策略定期在层之间移动数据,以最大化地节省成本。 这些策略可以使用指定的规则移动数据。 例如,可以创建一个规则,如果 blob 在 90 天内未修改,就将其移动到存档层。 通过创建调整数据访问层的策略,可根据需求设计出成本最低的存储方案。 若要了解详细信息,请参阅管理 Azure Blob 存储生命周期。
创建预算
可以创建预算来管理成本,并创建警报以自动通知利益干系人支出异常和超支风险。 警报基于与预算和成本阈值相比的支出。 预算和警报是针对 Azure 订阅和资源组创建的,作为总体成本监视策略的一部分,它们非常有用。 但是,因为它们设计为在较高级别跟踪成本,因此在管理单个 Azure 服务成本(如 Azure 存储的成本)方面的功能可能有限。
监视成本
将 Azure 资源用于 Azure 存储时,会产生成本。 资源使用情况单位成本因时间间隔(秒、分钟、小时和天)或单位使用情况(字节、MB 等)而异。Azure 存储一经使用,即会产生成本。 可以在 Azure 门户的成本分析窗格中看到成本。
使用成本分析时,可以在图表中查看不同时间间隔的 Azure 存储成本。 有些示例是按天、当前、上个月和年划分的。 还可以对比预算和预测的成本来查看成本。 切换到时间更长的视图有助于确定支出趋势,以及了解可能超支的领域。 如果已创建预算,还可以轻松查看超支的地方。
注意
成本分析支持各种 Azure 帐户类型。 若要查看支持的帐户类型的完整列表,请参阅了解成本管理数据。 若要查看成本数据,你至少需要对 Azure 帐户具有读取访问权限。 若要了解如何分配对 Microsoft 成本管理数据的访问权限,请参阅分配对数据的访问权限。
在成本分析中查看 Azure 存储成本:
登录 Azure 门户。
打开“成本管理 + 计费”窗口,从菜单中选择“成本管理”,然后选择“成本分析” 。 然后,可以从“范围”下拉列表中更改特定订阅的范围。
若仅查看 Azure 存储的成本,请选择“添加筛选器”,然后选择“服务名称” 。 然后,从列表中选择“存储”。
下面的示例只显示了 Azure 存储的成本:
在前面的示例中,可查看服务的当前成本。 还显示了按 Azure 区域(位置)和按资源组筛选的成本。 也可以添加其他筛选器(例如:用于查看特定存储帐户的成本的筛选器)。
导出成本数据
还可以将成本数据导出到存储帐户。 当你或其他人需要进行有关成本的额外数据分析时,这非常有用。 例如,财务团队可以使用 Excel 或 Power BI 来分析数据。 可以按每天、每周或每月计划导出成本,并设置自定义的日期范围。 建议导出成本数据来检索成本数据集。
避免计费意外
某些操作(例如更改帐户的默认访问层)可能会产生意想不到的费用。 虽然有关每个功能的文章都包含关于如何避免意外成本的信息,但此表列出了常见原因。
类别 | 操作 | 对计费的潜在影响 |
---|---|---|
访问层级 | 更改默认访问层设置 | 如果帐户包含大量推断访问层的 Blob,则更改此设置可能会产生大量成本。 对存储账户的默认访问层设置的更改适用于帐户中尚未显式设置访问层的所有 Blob。 例如,如果在常规用途 v2 帐户中将默认访问层设置从热层切换为冷层,则按推断访问层的所有 Blob 的写入操作次数(以 10,000 次为单位)收费。 如果在常规用途 v2 帐户中从冷层切换为热层,则按读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。 有关详细信息,请参阅默认帐户访问层设置。 |
访问层级 | 从存档中解除冻结 | 从存档中解除冻结高优先级可能会导致比正常计费更高的费用。 Microsoft 建议保留高优先级解除冻结,以用于需要紧急还原数据的情况。 有关详细信息,请参阅解除冻结优先级。 |
访问层级 | 删除、覆盖 Blob 或将其移动到另一层 | 使用复制 Blob 操作更新 Blob 的工具或应用程序将覆盖 Blob。 如果 Blob 在达到层级要求的最短天数之前被删除或、覆盖或移动到其他层级,则会受到提前删除处罚。 |
数据保护 | 启用 Blob 软删除 | 覆盖 Blob 可能会生成 Blob 快照。 与删除 Blob 的情况不同,不会记录这些快照的创建。 这可能会导致意外的存储成本。 考虑是否应将频繁覆盖的数据置于未启用软删除的帐户中。 有关详细信息,请参阅启用软删除时如何处理覆盖。 |
数据保护 | 启用 Blob 版本控制 | 针对 Blob 的每个写入操作都会创建一个新版本。 与启用 Blob 软删除的情况一样,考虑是否应将频繁覆盖的数据置于未启用版本控制的帐户中。 有关详细信息,请参阅针对写入操作的版本控制。 |
监视 | 启用存储分析日志(经典日志) | 如果未设置保留策略,存储分析日志会随着时间的推移在帐户中累积。 确保设置保留策略,以避免日志累积,这可能会导致意外的容量费用。 有关详细信息,请参阅修改日志数据保留期 |
协议 | 启用 SSH 文件传输协议 (SFTP) 支持 | 启用 SFTP 终结点需要按小时付费。 要避免被动费用,可考虑仅在主动使用 SFTP 传输数据时才启用它。 有关如何启用和随后禁用 SFTP 支持的指导,请参阅使用 SSH 文件传输协议 (SFTP) 连接到 Azure Blob 存储。 |
常见问题 (FAQ)
请参阅管理成本常见问题解答。
后续步骤
- 详细了解 Azure 存储的定价方式。 请参阅 Azure 存储概述定价。
- 了解 blob 和容器在生产环境中的存储、组织和使用方式,以便可以更好地优化成本和性能之间的权衡。 请参阅教程:分析 blob 清单报表。
- 借助预留容量优化 Blob 存储的成本。
- 了解如何通过 Microsoft 成本管理优化云投资。
- 详细了解如何通过成本分析来管理成本。
- 了解如何防止意外成本。
- 参与成本管理引导式学习课程。