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

时间:2019-06-04 09:19:53

标签: amazon-web-services amazon-s3 browser-cache cache-control

我现在正在使用AWS S3将资产提供给我的网站,即使我向所有资产中添加了缓存控制元数据标头,我的每日总带宽使用量在过去一个月中也几乎翻了一番。 我确信我的网站上的访问量并未显着增加,无法说明S3带宽使用量的增加。

是否有一种方法可以确定文件在带宽或成本方面占总账单的多少?

我正在通过Cloudfare路由我的所有流量,因此应防止DDoS攻击。

我希望我的S3存储桶的带宽减少或得到一些合理的原因,这可以解释为什么当每日流量没有增加时带宽几乎翻了一番。

2 个答案:

答案 0 :(得分:1)

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

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

我将重点放在请求者的远程IP地址上,以了解通过CloudFlare服务的请求与直接进入您的存储桶的人员所占的比例。

如果您发现CloudFlare 不断从存储桶中重新加载内容,则需要考虑一下缓存控制标头,无论是S3中对象上的元数据还是CloudFlare中的元数据配置。

答案 1 :(得分:0)

发件人: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跟踪。您选择的跟踪必须与存储桶位于同一AWS区域中,因此下拉列表仅包含与存储桶位于同一区域的跟踪或为所有区域创建的跟踪。

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

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

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

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