为什么选择 Kinesis Data Streams?
Amazon Kinesis Data Streams 是一种完全托管的、无服务器的流式数据服务,可以轻松地实时提取和存储日志、事件、点击流和其他形式的流式数据。Kinesis Data Streams 使用简单的按需付费定价结构。没有预付费用或最低费用,并且您仅需为使用的资源付费。Kinesis Data Streams 有两种按需和预置的容量模式,都带有特定的计费选项。单击以下选项卡了解有关这些选项的详细信息。
AWS 定价计算器
在单次估计中计算您的 Amazon Kinesis Data Streams 和架构成本。
-
按需模式
-
预置模式
-
按需模式
-
在按需容量模式下,您需要为从数据流中写入和读取的每 GB 数据付费。您不需要指定希望应用程序执行的读写吞吐量。Kinesis Data Streams 在上升或下降时立即适应您的工作负载。
在按需模式下,定价基于提取和检索的数据量以及您帐户中每个数据流的每小时费用。可选功能有额外的费用:延长数据保留时间(超过前24小时,在前7天内)、长期数据保留时间(7天以上,最多一年),以及增强型扇出。 您的账户中以按需容量模式运行的每条流也按小时收费。
如果您创建具有未知工作负载的新数据流、具有不可预测的应用程序流量或不希望管理容量,按需容量模式可能是最好的选择。
关键术语
数据输入: 提取到 Kinesis Data Streams 中的数据按写入数据流的 GB 计费。 将发送到服务的数据记录数乘以每个记录的大小,四舍五入到最接近的1KB(1024字节)。例如,如果每条数据记录的大小为 4.5 KB,Kinesis Data Streams 会将其计为 5KB 的提取数据。预设情况下,提取到 Kinesis Data Streams 中的所有数据都会存储 24 小时,并且不需要额外收费。
数据输出:从 Kinesis Data Streams 检索的数据按从数据流读取的每 GB 计费。这是通过检索的记录数乘以每条记录的大小来计算的。此计算没有应用四舍五入系数。如果每条数据记录的大小为 4.5 KB,Kinesis Data Streams 会将其计为 4.5 KB 的注入数据。
每流:您的账户中以按需容量模式运行的每条流也按小时收费。
扩展数据保留:预设情况下,Amazon Kinesis Data Streams 会将您的数据存储 24 小时。延长数据保留为将您数据流的存储期延长至长达 7 天的选项。对于存储时间超过24小时(最多7天)的数据,您将收取 GB 月费率。
长期数据保留:长期数据保留为您提供了存储数据流长达 365 天的选项。在最初的七天,您将收取延长的数据保留率,然后在指定的保留期内,对存储超过七天的数据收取较低的 GB 月费率。
增强型扇出功能:增强型扇出功能通过为每个数据使用者提供每个分片的读取吞吐量(最高2 MB /秒),从而改善读取并行性。当使用者使用增强型扇出功能时,每 GB 检索的数据会产生额外费用。
按区域定价
定价示例
假设您每秒发送1000条流数据记录,每条记录大小为3KB,发送到美国东部按需容量模式运行的 Amazon Kinesis Data Stream。您希望将数据保留一天,并使用单个使用者进行处理。您的每月费用按以下方式计算:
记录大小向上取整为 3KB 的倍数,即 1 KB = 3 KB
提取的数据(GB/秒)=(1000 条记录/秒 * 3KB/记录)/1048576KB/GB = 0.00286 GB/秒
提取的数据(GB/月)= 30 天/月 * 86400 秒/天 * 0.00286 GB/秒 = 7,413.12 GB/月
由于您只有一个使用者:
检索的数据(GB/秒)= 1 (使用者) * (1,000 条记录秒 * 3 KB/记录) / 1,048,576 KB/GB = 0.00286 GB/秒检索的数据 (GB/月) = 30 天/月 * 86,400 秒/天 * 0.00286 GB/秒 = 7,413.12 GB/月
一天的保留期包含在数据提取费用中。
美国东部的价格为每 GB 提取的数据为 0.08 USD。
数据输入月度费用 = 7,413.12 GB x 0.08 USD/GB = 593.04 USD
美国东部的价格为每 GB 检索的数据为 0.040 USD
数据输出月度费用 = 7,413.12 GB x 0.040 USD/GB = 296.50 USD
由于数据流在一个月内使用30天:
每流费用 = 30 x 24 x 0.040 (费率)= 28.80 USD月度总费用= 593.04 USD + 296.50 USD + 28.80 USD = 918.34 USD
-
预置模式
-
使用配置容量模式,可以根据应用程序的写入和读取请求速率指定应用程序所需的分区数。分区是一种容量单位,可提供 1 MB/秒的写入和 2 MB/秒的读取。
如果您有可预测的应用程序流量,运行流量一致或逐渐增加的应用程序,或可以预测容量需求以控制成本,预置容量模式可能是最好的选择。
关键术语
分区小时:分区是 Amazon Kinesis 数据流的基本吞吐量单位。您可以根据吞吐量要求指定数据流所需的分区数量。您可以按小时对每个分区付费。
一个分区可以提供 1MB/秒 的提取容量或 1000 个记录/秒。
当数据使用者选择使用增强型扇出功能时,每个分区可以为每个使用者提供高达 2MB/秒的数据输出。
当数据使用者不使用增强型扇出时,无论从一个分区并行处理数据的使用者的数量是多少,每个分区都可以提供高达 2MB /秒的数据输出。
PUT Payload Unit (25 KB):记录是数据生产者添加到 Amazon Kinesis 数据流的数据。PUT Payload Unit 以组成一条记录的 25KB 有效载荷“块”计算。例如,5 KB 记录包含一个 PUT Payload Unit,45 KB 记录包含两个 PUT Payload Unit,而 1 MB 记录则包含 40 个 PUT Payload Unit。PUT Payload Unit 以每百万 PUT Payload Unit 费率收费。
增强型扇出功能: 增强型扇出功能通过为每个数据使用者提供每个分区的读取吞吐量(最高2 MB /秒),从而改善读取并行性。当使用者使用增强型扇出时,每个使用者分区小时和每 GB 检索的数据会按小时产生费用。
扩展数据保留:预设情况下,Amazon Kinesis Data Streams 会将您的数据存储 24 小时。延长数据保留为将您数据流的存储期延长至长达 7 天的选项。一旦您启用延长数据保留后,您需要按照您的数据流产生的每个分区小时支付额外的费用。
长期数据保留:长期数据保留为您提供了存储数据流长达 365 天的选项。对于前 7 天的数据保留,将向您收取延长数据保留费用,对于存储超过 7 天直至您指定的保留期的数据,将按照每月每 GB 的费率收费。
检索长期保留数据:如果您使用 GetRecords API 检索数据,那么对于存储超过 7 天的数据检索将按照每 GB 费率收费。对于原定设置存储 24 小时或依延长数据保留存储长达 7 天的数据,将不会收取检索费用。如果使用了增强型扇出功能使用者 (SubscribeToShard API),则不会收取长期数据检索费用。
按区域定价
定价示例
让我们假定您的数据生产者平均每秒输入 100 个记录,每个记录大小为 35KB。在这种情况下,总数据总输入速率为 3.4MB/秒(100 个记录/秒*35KB/记录除以 1024 = 3.4 MB/秒)。为方便起见,我们假设每次交易的吞吐量和记录大小全天都是稳定不变的。请注意,我们可以随时动态调整 Amazon Kinesis 流处理的吞吐量。
首先,我们可以计算数据流达到所需吞吐量所需的分区数量。由于一个分区每秒可提供 1 MB 的数据输入容量并支持 1000 个记录,四个分区每秒可提供 4 MB 的数据输入容量和 4000 个记录。所以,具有四个分区的数据流可在 100 个记录/秒的速率下实现 3.4 MB/秒的所需吞吐量。
然后,我们使用美国东部地区的定价计算 Kinesis Data Streams 的月度费用:
分区小时:一个分区每小时的费用为 0.015 USD,或每天 0.36 USD(0.015 USD x 24)。我们的数据流具有四个分区,因此它每天的费用为 1.44 USD (0.36 USD*4)。若一个月有 31 天,我们的分区时间月度费用为 44.64 USD (1.44 USD*31)。
PUT Payload Unit (25KB):由于我们的记录是 35 KB,因此每条记录包含两个 PUT Payload Unit。我们的数据创建器合计每秒存放 100 条记录或 200 个 PUT Payload Unit。即每月 267840000 条记录或 535680000 个 PUT Payload Unit。由于 100 万 PUT Payload Unit 费用为 0.014 USD,我们每月的 PUT Payload Unit 成本为 7.499 USD(0.014*535.68 USD)。
另外,我们可以选择将数据流的数据保留期间从 24 小时延长至最多 7 天。在本示例中,我们假定数据流已在整个月内启用了延长数据保留。您也可以仅在对防止数据丢失至关重要的时候选择扩展数据保留,这样可以节省扩展保留的成本。
延长数据保留(最多 7 天):延长数据保留费用为每分区小时额外需要 0.020 USD。由于我们的数据流每月产生 2976 个分区小时(4 个分区*24 小时/天*31 天/月),因此每月的延长数据保留费用为 59.52 USD (0.020 USD*2976 )
将分区时间费用和 PUT Payload Unit 费用相加,得出 Amazon Kinesis Data Streams 的总费用为每天 1.68 USD,或每月 52.14 USD。每天花费 1.68 USD,我们可以使用完全托管的流处理数据基础设施,从而以灵活可靠的方式每秒持续提取 4 MB 数据或每月 337 GB 数据。此外,您可以将保留期从 24 小时最多延长至 7 天,这样每月需要额外支付 59.52 USD。
您还可以选择保留数据超过 7 天,并使用增强型扇出功能。
长期数据保留(超过 7 天的数据):让我们假设您想要将您的数据流保留 30 天。您将需要支付从 24 小时到长达 7 天的延长数据保留分区小时定价(参见上述计算方法)和超过 7 天到 30 天(23 天期限)的长期数据保留定价所产生的费用。对于 23 天的长期保留定价,如果您使用原定设置使用者 (GetRecords API),则须额外支付 0.023 USD/每月每 GB 的存储费用和 0.021 USD/每 GB 的数据检索费用。基于 3.4MB/秒 的数据输入速率计算,一小时内您将累积 3.4(输入速率)*1024 *1024*3600 = 12,902,400,000 字节。
在月底,您的使用量如下:
3,565,158 x 23天 x 24 小时/天 = 7,122,124,800,000 字节-小时
转换为 GB 月使用量:
7,122,124,800,000 字节-小时/ 1,073,741,824 字节/GB = 6,633 GB /月因此 23 天保留期的总存储成本 = 6633*0.023 USD = 152.56 USD 每月。
长期数据检索(超过 7 天的数据):如果您使用利用 GetRecords API 来获取记录的单个使用者来检索所有长期数据,那么只有存储超过首 7 天的数据才会产生检索费用。由于您正在检索 6623 GB 的数据,因此在月底将向您收取6623 x 0.021=139.08 USD 的费用。使用增强型扇出使用者检索的长期数据检索,将按照下列方式产生增强型扇出功能数据检索费率:
增强型扇出使用者分区小时:增强型扇出的每个分区需要额外支付 0.015 USD,每个数据使用者产生的该费用需要相加。由于我们的数据流每月产生 2976 个分区小时(4 个分区 x 24 小时/天 x 31 天/月),因此在此期间使用增强型扇出的每个使用者将产生 44.64 USD (2976 x 0.015 USD) 的费用。同一期间内的两名使用者将产生 89.28 USD 的费用。
增强型扇出数据检索:使用者使用增强型扇出从数据流中检索的数据将产生 0.013 USD/GB 的费用。如果超过一个月,两个分区流提取 50000 MB 数据,2 个数据使用者使用增强型扇出功能并在该月内检索了所有这些数据,检索的数据总量为 100000 MB(50000 MB x 2 个数据使用者)或 97.6 GB。由于每个 GB 的费用为 0.013 美元,因此增强型扇出成本总计为1.26美元(97.6 x 0.013 USD)。
* 对于原定设置存储 24 小时或依延长数据保留存储长达 7 天的数据,从 Amazon Kinesis 数据流获取记录为免费。对于依长期保留存储超过 7 天直至 365 天限制的数据检索,将按照每 GB 费率收费。
* 如果您选择使用增强型扇出功能,则每个使用者分区小时和每 GB 检索的数据会按小时产生费用。
* AWS 不会针对数据创建器传输到 Amazon Kinesis Data Streams 的数据,或从 Amazon Kinesis 数据流到您的消费应用程序的数据收取传输费用(如果所有资源位于同一区域)。
* 如果您的数据创建器正在写入不同地区的 Kinesis Data Stream,AWS 不收取数据传输费用。但是,在按需模式下,如果您的消费应用程序正在从不同 AWS 区域的数据流读取数据,会产生额外费用。您将支付标准 AWS 数据传输费用。
* 请注意,AWS 免费套餐中目前不包括 Amazon Kinesis Data Streams。AWS 免费套餐计划为您提供一系列 AWS 服务的免费试用。有关 AWS Free Tier 的更多详细信息,请参阅 AWS Free Tier。
服务等级协议
访问我们的常见问题,了解 Amazon Kinesis Data Streams 服务等级协议。