Amazon Kinesis Firehose缓冲到S3

Bro*_*oks 5 amazon-s3 amazon-web-services amazon-kinesis amazon-kinesis-firehose

我试图对部署到AWS的流数据/分析应用程序进行定价,并考虑使用Kinesis Firehose将数据转储到S3中。

我的问题是,当为此定价S3成本时,我需要弄清楚我将需要多少个PUT。

因此,我知道Firehose会缓冲数据,然后将其刷新到S3,但是我不清楚它是否将写入一个“文件”,并累积到该点的所有记录,或者是否将单独写入每个记录。

因此,假设我根据记录的大小将缓冲区大小/间隔设置为最佳数量,那么S3 PUT的数目是否仍等于记录数或Firehose执行的刷新数?

Mic*_*bot 4

在阅读了大量的 AWS 文档后,我非常不同意 S3 不会向您收费的说法。

您将需要单独支付与 Amazon S3和 Amazon Redshift 使用相关的费用,包括存储和读/写请求。但是,您无需为 Amazon Kinesis Firehose 加载到 Amazon S3 和 Amazon Redshift 的数据支付数据传输费用。有关更多详细信息,请参阅 Amazon S3 定价和 Amazon Redshift 定价。[强调我的]

https://aws.amazon.com/kinesis/firehose/pricing/

他们说,除了 0.035 美元/GB 之外, Kinesis Firehose不会向您收取任何额外的传输费用,但您需要为与存储桶的交互付费。(入站到存储桶的数据始终免收实际的每 GB 传输费用)。

但归根结底,您似乎可以PUT根据一些可调参数来控制针对存储桶的请求的粗略数量:

问:什么是缓冲区大小和缓冲区间隔?

Amazon Kinesis Firehose 将传入的流数据缓冲到特定大小或特定时间段,然后再将其传送到目的地。您可以在创建传输流时配置缓冲区大小和缓冲区间隔。缓冲区大小以 MB 为单位,范围从 1MB 到 128MB。缓冲时间间隔以秒为单位,范围为 60 秒至 900 秒。

https://aws.amazon.com/kinesis/firehose/faqs/#creating-delivery-streams

除非它正在收集记录并将其聚合到大文件中,否则我不明白为什么缓冲区大小和缓冲区间隔会存在一个点...但是,在不启动服务并试一试的情况下,我可以(不幸的是)只是真正的推测。