SUD*_*HAN 6 amazon-s3 amazon-web-services
我有一个应用程序,其中
每天会生成 100 万到 1 亿个甚至更多的小 xml 文件,我必须将其加载到 S3 存储桶之一中,就像仅加载单个 xml 文件一样。该 S3 存储桶链接到 CloudFront,以便我们世界各地的客户可以更快地访问 xml 文件。
除了成本部分之外,一切对我来说都很好。随着文件数量的增加,S3 put 请求的成本每天都在增加。文件应在出现后立即推送,并且应可从 cloudFront 访问。
有什么解决方案可以节省我的成本吗?xml 文件的大小最大为 2 kb。
让我在这里详细阐述我迄今为止尝试过的一些要点。我想在本地合并所有小 xml,然后将其推送到 S3,但问题是我们应该在 AWS 中进行一些计算,以将其再次提取到小文件中,因为最终用户只接受单独的 xml 文件。提取并创建小文件并再次保存到 S3 中的成本会更高。
因此,请随意建议一些可能适合此用例的其他系统,而不是 S3。我也尝试过 HBASE,但在 AWS 中运行和管理 HBASE 是一个问题。我们还尝试了 Dynamo DB,但成本也更高。
小智 0
API 调用按每个对象收费,无论其大小如何。上传 1 字节的费用与上传 1GB 的费用相同。所以通常小对象会导致 API 成本飙升。
在以下场景中,您可以批量处理多个对象并将其作为单个文件上传到 S3 存储桶。
接下来,您需要编写一个 Lambda 函数(无服务器架构)来将上传的文件解压到同一个存储桶中。
由于您已经提到所有最终用户都将仅访问 XML 文件。因此,您应该上传一个批处理文件并使用 Lambda 函数将所有文件提取到同一个存储桶中。
这将为您节省 PUT 数据传输成本。
| 归档时间: |
|
| 查看次数: |
8259 次 |
| 最近记录: |