配額和限制 - Amazon Kinesis Data Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

配額和限制

Amazon Kinesis Data Streams 具有下列串流和碎片配額與限制。

配額 隨需模式 佈建模式

資料串流數目

AWS 帳戶中可擁有的串流數目沒有配額上限。根據預設,透過使用隨需容量模式,您可以建立最多 50 個資料串流。如果您需要提升此配額,請提出支援票證

帳戶中佈建模式可擁有的串流數目沒有配額上限。

碎片數量

沒有上限。碎片數目取決於擷取的資料量和您所需要的輸送量層級。Kinesis Data Streams 會自動擴展碎片數目,以回應資料量和流量的變更。

沒有上限。下列 AWS 區域的預設碎片配額為每個 AWS 帳戶 500 個碎片:美國東部 (維吉尼亞北部)美國西部 (奧勒岡)歐洲 (愛爾蘭)。其餘所有區域的預設碎片配額則是每個 AWS 帳戶 200 個碎片。若要請求提升每個資料串流的碎片配額,請參閱請求提升配額

資料串流輸送量

依預設,使用隨需容量模式建立的新資料串流具有 4 MB/s 的寫入和 8 MB/s 的讀取輸送量。隨著流量增加,使用隨需容量模式的資料串流可縱向擴展為 200 MB/s 的寫入和 400 MB/s 的讀取輸送量。如果您需要提升至 2 GB/s 的寫入和 4 GB/s 的讀取容量,則請提交支援票證

沒有上限。輸送量上限取決於為串流所佈建的碎片數目。每個碎片最多可支援每秒 1 MB 或每秒 1,000 筆記錄的寫入輸送量,或最高每秒 2 MB 或每秒 2,000 筆記錄的讀取輸送量。若您需要更多的擷取容量,可以使用 AWS Management Console 或 UpdateShardCount API 輕鬆擴展串流中的碎片數目。

資料承載大小

記錄經過 base64-encoding 之前的資料承載大小上限為 1 MB。

GetRecords 交易大小

GetRecords 每次呼叫可從單一碎片擷取最多 10 MB 的資料,每次呼叫最多 10,000 筆記錄。每呼叫一次 GetRecords 即計為一筆讀取交易。每個碎片每秒可支援最多 5 筆讀取交易。每筆讀取交易可提供多達 10,000 筆記錄,每筆交易的配額上限為 10 MiB。

每個碎片的資料讀取率

每個碎片透過 GetRecords 每秒可支援最多 2 MB 的總資料讀取速率。如果呼叫 GetRecords 傳回 10 MB,在接下來的 5 秒內發出的後續呼叫將擲回例外狀況。

每個資料串流已註冊的取用者數目

最多可為每個資料串流建立 20 個已註冊的取用者 (增強型散發限制)。

在佈建和隨需模式之間切換

對於 AWS 帳戶中的每個資料串流,在 24 小時內可在隨需和佈建容量模式之間切換兩次。 

API 限制

如同大多數的 AWS API,Kinesis Data Streams API 操作設有速率限制。下列限制適用於每個區域的每個 AWS 帳戶。如需有關 Kinesis Data Streams API 的詳細資訊,請參閱 Amazon Kinesis API 參考

KDS 控制平面 API 限制

下列各節將描述 KDS 控制平面 API 的限制。KDS 控制平面 API 可讓您建立和管理資料串流。這些限制適用於每個區域的每個 AWS 帳戶。

控制平面 API 限制
API API 呼叫限制 每個帳戶/串流  描述
AddTagsToStream 每秒 5 次交易 (TPS) 每個串流 每個資料串流 50 個標籤
CreateStream 5 TPS 每個帳戶

帳戶中可擁有的串流數目沒有配額上限。當您嘗試執行下列其中一項操作,您會在發出 CreateStream 請求時收到 LimitExceededException

  • 在任何時間點有超過五個處於 CREATING 狀態的串流。

  • 建立超過帳戶授權數量的碎片。

DecreaseStreamRetentionPeriod 5 TPS 每個串流 資料串流保留期間的最小值為 24 小時。
DeleteResourcePolicy 5 TPS 每個帳戶 如果您需要增加此限制,請提出支援票證
DeleteStream 5 TPS 每個帳戶
DeregisterStreamConsumer 5 TPS 每個串流
DescribeLimits 1 TPS 每個帳戶
DescribeStream 10 TPS 每個帳戶
DescribeStreamConsumer 20 TPS 每個串流
DescribeStreamSummary 20 TPS 每個帳戶
DisableEnhancedMonitoring 5 TPS 每個串流
EnableEnhancedMonitoring 5 TPS 每個串流
GetResourcePolicy 5 TPS 每個帳戶 如果您需要增加此限制,請提出支援票證
IncreaseStreamRetentionPeriod 5 TPS 每個串流 串流保留期間的最大值為 8760 小時 (365 天)。
ListShards 1000 TPS 每個串流
ListStreamConsumers 5 TPS 每個串流
ListStreams 5 TPS 每個帳戶
ListTagsForStream 5 TPS 每個串流
MergeShards 5 TPS 每個串流 僅適用於已佈建的項目。
PutResourcePolicy 5 TPS 每個帳戶 如果您需要增加此限制,請提出支援票證
RegisterStreamConsumer 5 TPS 每個串流 您可以對每個資料串流註冊最多 20 個消費者。一個指定消費者一次只能註冊一個資料串流。只能同時建立 5 個消費者。換句話說,您不能同時有超過 5 個處於 CREATING 狀態的取用者。在有 5 個取用者處於 CREATING 狀態時註冊第 6 個取用者
RemoveTagsFromStream 5 TPS 每個串流
SplitShard 5 TPS 每個串流 僅適用於已佈建的項目
StartStreamEncryption 每個串流 在輪換的 24 小時期間,您可以針對伺服器端加密成功套用 25 次新的 AWS KMS 金鑰。
StopStreamEncryption 每個串流 在輪換的 24 小時期間,您可以成功停用伺服器端加密 25 次。
UpdateShardCount 每個串流 僅適用於已佈建的項目。預設碎片數量限制為 10,000。還有此 API 的其他限制。如需詳細資訊,請參閱 UpdateShardCount
UpdateStreamMode 每個串流

對於 AWS 帳戶中的每個資料串流,在 24 小時內可在隨需和佈建容量模式之間切換兩次。

KDS 資料平面 API 限制

下節描述 KDS 資料平面 API 的限制。KDS 資料平面 API 可讓您使用資料串流來即時收集和處理資料記錄。這些限制適用於資料串流內的每個碎片。

資料平面 API 限制
API API 呼叫限制 承載限制 其他詳細資訊
GetRecords 5 TPS 每個呼叫可傳回的記錄數目上限為 10,000。GetRecords 可傳回的資料大小上限為 10 MB。 如果呼叫傳回了此資料數量,在接下來 5 秒內發出的後續呼叫會擲回 ProvisionedThroughputExceededException。如果串流上佈建的輸送量不足,接下來 1 秒內發出的後續呼叫會擲回 ProvisionedThroughputExceededException
GetShardIterator 5 TPS 分片反覆運算器會在傳回給要求者之後 5 分鐘到期。如果太常發出 GetShardIterator 請求,則會收到 ProvisionedThroughputExceededException。
PutRecord 1000 TPS 每個碎片可支援最高每秒 1,000 筆記錄的寫入數目,最高每秒 1 MB 的總計資料寫入上限。
PutRecords 每個 PutRecords 請求最高可支援 500 筆記錄。請求中的每筆記錄最大可為 1 MB,整個請求的最高限制為 5 MB,包括分區索引鍵。每個碎片可支援最高每秒 1,000 筆記錄的寫入數目,最高每秒 1 MB 的總計資料寫入上限。
SubscribeToShard 您可以在每個碎片每個註冊消費者每秒對 SubscribeToShard 發出一個呼叫。 如果您使用相同 ConsumerARN 和 ShardId 在成功呼叫的 5 秒內再次呼叫 SubscribeToShard,將會收到 ResourceInUseException。

提高配額

如果配額可調整,您可以使用 Service Quotas 要求增加配額。部分請求會自動解決,而其他請求則會提交至 AWS Support。您可以追蹤提交至 AWS Support 的配額提升請求狀態。增加服務配額的請求不會獲得優先支援。如果您有緊急請求,請聯絡 AWS Support。如需詳細資訊,請參閱什麼是 Service Quotas?

若要請求增加服務配額,請遵循請求增加配額中概述的程序。