获取总 AWS 账单中文件贡献的成本或带宽

Get cost or bandwidth contributed by a file in total AWS bill

我正在使用 AWS S3 为我的网站提供资产,现在即使我已将 cache-control 元数据 header 添加到我的所有资产,我的每日总体带宽使用量在过去一个月几乎翻了一番。 我确信我网站上的流量并没有因为 S3 带宽使用量的增加而急剧增加。

有没有办法找出一个文件在带宽或成本方面对总账单的贡献?

我正在通过 cloudfare 路由我的所有流量,因此应该保护它免受 DDoS 攻击。

我希望我的 S3 存储桶的带宽减少或得到一些正当的理由来解释为什么在日常流量没有增加的情况下带宽几乎翻了一番。

您需要在您的内容桶上启用 Server Access Logging。执行此操作后,所有存储桶访问都将写入存储在(不同的)S3 存储桶中的日志文件。

您可以使用自定义程序(您可以在网络上找到示例)或 AWS Athena 分析这些日志文件,这样您就可以针对结构化数据编写 SQL 查询。

我会关注请求者的远程 IP 地址,以了解通过 CloudFlare 提供服务的请求与直接进入您的存储桶的人的请求比例。

如果您发现 CloudFlare 不断从存储桶中重新加载内容,您需要考虑一下 cache-control headers,或者作为S3 中 object 或您的 CloudFlare 配置中的元数据。

发件人:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-cloudtrail-events.html

为 S3 存储桶中的对象启用 CloudTrail 数据事件日志记录:

登录 AWS 管理控制台并在 https://console.aws.amazon.com/s3/ 打开 Amazon S3 控制台。

在“存储桶名称”列表中,选择您想要的存储桶名称。

选择属性。

选择对象级日志记录。

在下拉菜单中选择一个现有的 CloudTrail 跟踪。您 select 的跟踪必须与您的存储桶位于同一 AWS 区域,因此下拉列表仅包含与存储桶位于同一区域的跟踪或为所有区域创建的跟踪。

如果需要创建跟踪,选择CloudTrail控制台link进入CloudTrail控制台。有关如何在 CloudTrail 控制台中创建跟踪的信息,请参阅 AWS CloudTrail 用户指南中的使用控制台创建跟踪。

在事件下,select读取以指定您希望 CloudTrail 记录 Amazon S3 读取 API,例如 GetObject。 Select 写入日志 Amazon S3 写入 API,例如 PutObject。 Select 读取和写入记录读取和写入对象 API。有关 CloudTrail 为 Amazon S3 对象记录的受支持数据事件的列表,请参阅 Amazon Simple Storage Service 开发人员指南中的 CloudTrail 日志记录跟踪的 Amazon S3 对象级操作。

选择创建为存储桶启用对象级日志记录。

要为存储桶禁用对象级日志记录,您必须转到 CloudTrail 控制台并从跟踪的数据事件中删除存储桶名称。