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

计划和管理 Azure Blob 存储的成本

本文可帮助你计划和管理 Azure Blob 存储的成本。 首先,使用 Azure 定价计算器估算成本。 创建存储帐户后对其进行优化,以便只为所需的内容付费。 使用成本管理功能来设置预算和监视成本。 还可以查看预测的成本并监视支出趋势以确定可能需要实施措施的领域。

请记住,Blob 存储的成本只是 Azure 账单中每月成本的一部分。 尽管本文介绍了如何估算和管理 Blob 存储的成本,但你需要为 Azure 订阅中使用的所有 Azure 服务和资源(包括第三方服务)付费。 在熟悉了如何管理 Blob 存储的成本之后,可以应用类似的方法来管理订阅中使用的所有 Azure 服务的成本。

估算成本

在创建 Azure 存储帐户并开始向该帐户传输数据之前,先使用 Azure 定价计算器估算成本。

  1. Azure 定价计算器页面上,选择“存储帐户”磁贴。

  2. 向下滚动页面,找到“你的估算”的“存储帐户”部分。

  3. 从下拉列表选择选项。

    修改这些下拉列表的值时,成本估算随即发生变化。 该估算值显示估算页面的上角和底部。

    Screenshot showing your estimate

    更改“类型”下拉列表的值时,此工作表上显示的其他选项也会随之更改。 使用“详细信息”部分中的链接详细了解每个选项的含义,以及这些选项如何影响与存储相关的操作的价格。

  4. 修改剩余的选项,查看其对估算的影响。

支持工具和指南

以下资源还可以帮助你预测使用 Azure Blob 存储的成本:

了解 Azure Blob 存储的完整计费模型

Azure Blob 存储在 Azure 基础结构上运行。当你部署新资源时,该基础结构会产生成本。 用户务必了解,是否可能产生其他基础结构成本。

Azure Blob 存储的计费方式

创建或使用 Blob 存储资源时,将按以下计量计费:

计量 单位
数据存储 每 GB/每月
Operations 每事务
数据传输 每 GB
元数据 每 GB/每月1
Blob 索引标记 每标记2
更改源 每个记录的更改2
加密范围 每月2
查询加速 扫描的每 GB 和返回的每 GB

1 仅适用于具有分层命名空间的帐户。
2 仅当启用了该功能时才适用。

数据流量还可能会产生网络成本。 请参阅带宽定价

在计费周期结束时,将对每个计量标准的费用求和。 账单或发票会将所有 Azure Blob 存储成本显示在一个部分中。 每个计量标准都有单独的一行项目。

数据存储和元数据按每月每 GB 计费。 对于存储时间不到一个月的数据和元数据,你可以通过计算每 GB 每天的成本来估算对每月账单的影响。 你可以使用类似的方法来估算使用时间不到一个月的加密范围的成本。 任意给定月份中的天数有所不同。 因此,若要获得给定月份的成本的最佳近似值,请确保将每月成本除以该月的天数。

存储单元

Azure Blob 存储使用以下 base-2 度量单位表示存储容量:KiB、MiB、GiB、TiB、PiB。 帐单上包含 GB 作为度量单位(例如,每 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 1024 MiB(1,073,741,824 字节)
TiB tebibyte 1024 GiB(1,099,511,627,776 字节)

查找每个计量的单价

若要查找单价,请打开正确的定价页并选择适当的文件结构。 然后应用适当的冗余、区域和货币筛选器。 每个计量的价格会显示在一个表中。 价格因帐户中的其他设置(例如数据冗余选项、访问层和性能层)而异。

正确的定价页和文件结构主要影响数据的读取和写入成本,因为这些选择在本质上不会改变数据的存储成本。 若要准确估算数据的读取和写入成本,首先请确定要使用哪些存储帐户终结点客户端、应用程序和工作负载来读取和写入数据。

对 Blob 服务终结点的定价请求

Blob 服务终结点的格式为 https://<storage-account>.blob.core.windows.net,它是与 Blob 存储交互的工具和应用程序的最常用终结点。

请求可以来自以下任何源:

这些请求的正确定价页是块 Blob 定价页。

对此终结点的请求也可能发生在具有分层命名空间的帐户中。 事实上,若要使用 NFS 3.0 和 SFTP 协议,必须首先启用帐户的分层命名空间功能。

如果为帐户启用了分层命名空间功能,请确保“文件结构”下拉列表设置为“分层命名空间(NFS v3.0,SFTP 协议)”。 否则,请确保将其设置为“平面命名空间”。

对 Data Lake Storage 终结点的定价请求

Data Lake Storage 终结点的格式为 https://<storage-account>.dfs.core.windows.net,它是分析工作负载和应用程序最常用的终结点。 此终结点通常与具有分层命名空间的帐户一起使用,但并非总是如此。

请求可以来自以下任何源:

这些请求的正确定价页是 Azure Data Lake Storage Gen2 定价页。

如果未为帐户启用分层命名空间功能,但你希望客户端、工作负载或应用程序通过帐户的 Data Lake Storage 终结点发出请求,则将“文件结构”下拉列表设置为“平面命名空间”。 否则,请确保将其设置为“分层命名空间”。

查找每个操作的价格

AzCopy 或 Azure 存储资源管理器等工具发出的每个请求都以 REST 操作的形式到达服务。 对于利用 Azure 存储客户端库的自定义应用程序来说也是如此。

要确定每个操作的价格,必须先确定如何根据操作的类型对操作进行分类。 这是因为定价页仅按操作类型列出价格,不会按每个单独操作列出价格。 要查看每个操作如何映射到操作类型,请参阅将每个 REST 操作映射到价格

对 Azure Blob 存储使用 Azure 预付款

可以使用 Azure 预付款(之前称为货币承诺)额度支付 Azure Blob 存储费用。 但是,不能使用 Azure 预付款额度来支付第三方产品和服务(包括 Azure 市场中的)的费用。

优化成本

请考虑使用以下方案来降低成本。

  • 分析现有容器和 Blob

  • 保留存储容量

  • 将数据组织到访问层

  • 在访问层之间自动移动数据

本部分详细介绍了每个方案。

分析现有容器和 Blob

如果已使用 Blob 存储一段时间,应定期查看容器的内容来确定降低成本的机会。 通过了解 Blob 在生产环境中的存储、组织和使用方式,可更好地优化可用性、成本和性能之间的权衡。

查看下面任何一篇文章,逐项分析你现有的容器和 Blob:

保留存储容量

可以借助 Azure 存储预留容量来节约 blob 数据的存储成本。 如果你承诺预留一年或三年,Azure 存储预留容量可为标准存储帐户中的块 blob 和 Azure Data Lake Storage Gen2 数据提供容量折扣。 预留在预留期内提供固定数量的存储容量。 Azure 存储预留容量可大幅降低用于块 blob 和 Azure Data Lake Storage Gen2 数据的容量成本。

若要了解详细信息,请参阅借助预留容量优化 Blob 存储的成本

将数据组织到访问层

可通过将 blob 数据放入最经济高效的访问层来降低成本。 在三个专为优化数据使用成本设计的层中选择。 例如,热层的存储成本较高,但访问成本较低。 因此,如果计划频繁访问数据,则热层可能是最经济高效的选择。 如果计划不经常访问数据,冷层或存档层可能最适用,因为它们会提高访问数据的成本,同时降低存储数据的成本 。

查看下列任何文章:

在访问层之间自动移动数据

使用生命周期管理策略定期在层之间移动数据,以最大化地节省成本。 这些策略可以使用指定的规则移动数据。 例如,可以创建一个规则,如果 blob 在 90 天内未修改,就将其移动到存档层。 通过创建调整数据访问层的策略,可根据需求设计出成本最低的存储方案。

若要了解详细信息,请参阅管理 Azure Blob 存储生命周期

创建预算

可以创建预算来管理成本,并创建警报以自动通知利益干系人支出异常和超支风险。 警报基于与预算和成本阈值相比的支出。 预算和警报是针对 Azure 订阅和资源组创建的,作为总体成本监视策略的一部分,它们非常有用。 但是,因为它们设计为在较高级别跟踪成本,因此在管理单个 Azure 服务成本(如 Azure 存储的成本)方面的功能可能有限。

监视成本

将 Azure 资源用于 Azure 存储时,会产生成本。 资源使用情况单位成本因时间间隔(秒、分钟、小时和天)或单位使用情况(字节、MB 等)而异。Azure 存储一经使用,即会产生成本。 可以在 Azure 门户的成本分析窗格中看到成本。

使用成本分析时,可以在图表中查看不同时间间隔的 Azure 存储成本。 有些示例是按天、当前、上个月和年划分的。 还可以对比预算和预测的成本来查看成本。 切换到时间更长的视图有助于确定支出趋势,以及了解可能超支的领域。 如果已创建预算,还可以轻松查看超支的地方。

注意

成本分析支持各种 Azure 帐户类型。 若要查看支持的帐户类型的完整列表,请参阅了解成本管理数据。 若要查看成本数据,你至少需要对 Azure 帐户具有读取访问权限。 若要了解如何分配对 Microsoft 成本管理数据的访问权限,请参阅分配对数据的访问权限

在成本分析中查看 Azure 存储成本:

  1. 登录 Azure 门户

  2. 打开“成本管理 + 计费”窗口,从菜单中选择“成本管理”,然后选择“成本分析” 。 然后,可以从“范围”下拉列表中更改特定订阅的范围。

    Screenshot showing scope

  3. 若仅查看 Azure 存储的成本,请选择“添加筛选器”,然后选择“服务名称” 。 然后,从列表中选择“存储”。

    下面的示例只显示了 Azure 存储的成本:

    Screenshot showing filter by storage

在前面的示例中,可查看服务的当前成本。 还显示了按 Azure 区域(位置)和按资源组筛选的成本。 也可以添加其他筛选器(例如:用于查看特定存储帐户的成本的筛选器)。

导出成本数据

还可以将成本数据导出到存储帐户。 当你或其他人需要进行有关成本的额外数据分析时,这非常有用。 例如,财务团队可以使用 Excel 或 Power BI 来分析数据。 可以按每天、每周或每月计划导出成本,并设置自定义的日期范围。 建议导出成本数据来检索成本数据集。

避免计费意外

某些操作(例如更改帐户的默认访问层)可能会产生意想不到的费用。 虽然有关每个功能的文章都包含关于如何避免意外成本的信息,但此表列出了常见原因。

类别 操作 对计费的潜在影响
访问层级 更改默认访问层设置 如果帐户包含大量推断访问层的 Blob,则更改此设置可能会产生大量成本。

对存储账户的默认访问层设置的更改适用于帐户中尚未显式设置访问层的所有 Blob。 例如,如果在常规用途 v2 帐户中将默认访问层设置从热层切换为冷层,则按推断访问层的所有 Blob 的写入操作次数(以 10,000 次为单位)收费。 如果在常规用途 v2 帐户中从冷层切换为热层,则按读取操作次数(以 10,000 次为单位)和数据检索量(以 GB 为单位)收费。

有关详细信息,请参阅默认帐户访问层设置
访问层级 从存档中解除冻结 从存档中解除冻结高优先级可能会导致比正常计费更高的费用。 Microsoft 建议保留高优先级解除冻结,以用于需要紧急还原数据的情况。

有关详细信息,请参阅解除冻结优先级
数据保护 启用 Blob 软删除 覆盖 Blob 可能会生成 Blob 快照。 与删除 Blob 的情况不同,不会记录这些快照的创建。 这可能会导致意外的存储成本。 考虑是否应将频繁覆盖的数据置于未启用软删除的帐户中。

有关详细信息,请参阅启用软删除时如何处理覆盖
数据保护 启用 Blob 版本控制 针对 Blob 的每个写入操作都会创建一个新版本。 与启用 Blob 软删除的情况一样,考虑是否应将频繁覆盖的数据置于未启用版本控制的帐户中。

有关详细信息,请参阅针对写入操作的版本控制
监视 启用存储分析日志(经典日志) 如果未设置保留策略,存储分析日志会随着时间的推移在帐户中累积。 确保设置保留策略,以避免日志累积,这可能会导致意外的容量费用。

有关详细信息,请参阅修改日志数据保留期
协议 启用 SSH 文件传输协议 (SFTP) 支持 启用 SFTP 终结点需要按小时付费。 要避免被动费用,可考虑仅在主动使用 SFTP 传输数据时才启用它。

有关如何启用和随后禁用 SFTP 支持的指导,请参阅使用 SSH 文件传输协议 (SFTP) 连接到 Azure Blob 存储

常见问题 (FAQ)

请参阅管理成本常见问题解答

后续步骤