如何降低 Amazon S3 的意外高昂成本?

2 分钟阅读
0

我的 AWS 账单上的 Amazon Simple Storage Service(Amazon S3)使用费用高于预期,我想降低这些费用。

简短描述

Amazon S3 费用基于存储、请求和数据检索、数据传输(包括 S3 传输加速使用情况)以及数据管理。

要确定在哪些方面可以降低 Amazon S3 的费用,请查看您当前的 Amazon S3 账单和使用情况。然后,查看成本是如何产生的

以下提示可以帮助您降低 Amazon S3 的账单成本:

  • 清理未完成的分段上传。
  • 删除不需要的对象的先前版本。
  • 查看您的存储类转换成本。
  • 查看您的数据检索成本。
  • 跟踪对您的桶的请求。
  • 检查您的桶大小是否有变化。
  • 查看各个桶的成本。
  • 了解您的使用情况与您的费用有何关系。

您还可以使用以下 Amazon S3 功能来帮助您调查账单问题:

解决方法

清理未完成的分段上传

启动分段上传后,Amazon S3 会保留文件的所有上传部分,直到您完成或关闭分段上传。如果没有完成分段上传,则 Amazon S3 会继续存储上传的分段。因此,您需要支付已上传分段的存储费用。

如果使用 AWS 命令行界面(AWS CLI)关闭分段上传,则该操作会删除未完成的上传分段。但是,如果您使用其他利用 Amazon S3 分段上传 API 的工具,则未完成的分段上传可能会留下已上传的分段。

以下是清理未完成的分段上传时的一些其他最佳做法:

删除不需要的对象的先前版本

**重要事项:**Amazon S3 无法恢复您从桶中删除的任何数据。

如果您在桶上激活了版本控制,则每个对象可以有多个版本。每个对象版本都会增加您的存储成本。

要查看您的对象版本,请使用 Amazon S3 控制台运行 ListObjectVersions API 调用。然后,删除所有不需要的对象版本

**注意:**在已激活版本的桶中,必须指定对象版本 ID 才能永久删除对象版本。如果您对已激活版本的桶中的对象运行简单的删除请求,则 Amazon S3 会向该对象添加删除标记。删除标记会成为对象的当前版本,而实际对象会成为先前版本。但是,这并不会删除该对象及其版本。

您也可以使用以下方法:

查看您的存储类转换成本

当您将对象从一种存储类转换到另一种存储类时,就可能会产生成本。

例如,当对象从 S3 Standard 转换到 S3 Standard-IA 存储类时,每 1,000 个生命周期转换请求需要支付 0.01 美元。当对象从任何存储类转换到 S3 Glacier Flexible Retrieval 存储类时,每 1,000 个生命周期转换请求需要支付 0.03 美元。有关详细信息和定价详情,请参阅 Amazon S3 定价

如果您设置了一个生命周期配置规则,基于此规则将整个桶的对象转换为另一种存储类,则 Amazon S3 费用预计会增加。要确定费用增加是否是由生命周期规则造成的,请查看您的 AWS CloudTrail 事件历史记录。您还可以查看 PutBucketLifecycleConfiguration 调用的 Amazon S3 服务器访问日志,以确定该规则的应用时间。

您还可以使用 S3 存储类分析来确定从不同的存储类检索了多少数据。

**注意:**您必须基于每个桶配置 S3 存储类分析

查看您的数据检索成本

存储在以下存储类中的对象的成本与数据检索有关:

  • S3 Standard-IA
  • S3 One Zone-IA
  • S3 Glacier Flexible Retrieval
  • S3 Glacier Deep Archive 存储类

例如,您可以从 S3 Glacier Flexible Retrieval 存储类中检索 1,500 万个对象。检索的总成本取决于您选择的批量检索选项。

以下示例成本适用于标准检索:

  • 检索请求为 15,000,000 / 1000 \ * 0.05 美元 = 750 美元。
  • 检索为 100,000 \ * 0.01 美元 = 1,000 美元。
  • 总成本为 1,750 美元。

以下示例成本适用于加急检索:

  • 检索请求为 15,000,000 / 1000 * 10 美元 = 150,000 美元。
  • 检索为 100,000 * 0.03 美元 = 3,000 美元。
  • 总成本为 15.3 万美元。

对于存储在 S3 Glacier Flexible Retrieval 中的对象,批量检索不收取任何费用。

**提示:**为了帮助您监控不同的存储请求和数据使用情况,您还可以使用 S3 Storage Lens 存储统计管理工具控制面板

跟踪对您的桶的请求

您可以通过以下方式监控对您的桶的请求:

为了降低数据传出费用所产生的成本,您可以使用 Amazon Elastic Compute Cloud(Amazon EC2)实例访问您的桶。Amazon EC2 实例必须位于与您的桶相同的 AWS 区域内的 Amazon Virtual Private Cloud(Amazon VPC)中。

检查您的桶大小是否有变化

要分离存储成本,请将桶的当前大小与上个月的桶大小进行比较。

1.    打开 Amazon S3 控制台

2.    选择,然后选择您的桶。

3.    选择管理选项卡。

4.    选择指标

您也可以使用 AWS CLI 查看桶的存储大小,或者使用 Amazon CloudWatch 监控您的存储指标。要监控每天、每周和每月的桶大小变化,请使用 S3 Storage Lens 存储统计管理工具。

查看各个桶的成本

要确定哪个桶会产生更高成本,请激活桶上的成本分配标签。然后,使用 AWS Cost Explorer 成本管理服务查看您的桶。有关详细信息,请参阅如何查找我的 Amazon S3 桶的成本?

了解您的使用情况与您的费用有何关系

您的使用情况报告以字节小时为单位记录存储使用情况,账单报告以 GB 月为单位记录存储使用情况。要了解存储使用情况与存储费用之间的关系,请将字节小时数转换为 GB 月。有关此转换的示例,请参阅了解 Amazon S3 的 AWS 账单和使用情况报告

您可以从 AWS 账单与成本管理控制面板下载您的 Amazon S3 使用情况报告。或者,要获取详细的存储和账单指标,请为账户中的所有桶创建 S3 Storage Lens 存储统计管理工具控制面板。

AWS 官方
AWS 官方已更新 1 年前