할당량 및 제한 - Amazon Kinesis Data Streams

할당량 및 제한

다음 표에서는 Amazon Kinesis Data Streams에 대한 스트림 및 샤드 할당량 및 제한을 설명합니다.

할당량 온디맨드 모드 프로비저닝된 모드

데이터 스트림 수

AWS 계정 내의 스트림 수는 상한 할당량이 없습니다. 기본적으로 온디맨드 용량 모드를 사용하면 최대 50개의 데이터 스트림을 생성할 수 있습니다. 이 할당량을 늘려야 하는 경우 지원 티켓을 제출하세요.

계정 내 프로비저닝된 모드의 스트림 수에는 상한 할당량이 없습니다.

샤드 수

상한이 없습니다. 샤드 수는 모은 데이터의 양과 필요한 처리량 수준에 따라 다릅니다. Kinesis Data Streams는 데이터 볼륨 및 트래픽의 변화에 따라 샤드 수를 자동으로 조정합니다.

상한이 없습니다. 기본 샤드 할당량은 미국 동부(버지니아 북부), 미국 서부(오레곤) 및 유럽(아일랜드) AWS 리전의 AWS 계정당 샤드 500개입니다. 다른 모든 리전의 AWS 계정당 기본 샤드 할당량은 200개입니다. 데이터 스트림당 샤드 할당량 증가를 요청하려면 할당량 증가 요청을 참조하세요.

데이터 스트림 처리량

기본적으로 온디맨드 용량 모드로 생성된 새 데이터 스트림의 쓰기 처리량은 4MB/s이고 읽기 처리량은 8MB/s입니다. 트래픽이 증가함에 따라 온디맨드 용량 모드의 데이터 스트림은 최대 200MB/s의 쓰기 및 400MB/s의 읽기 처리량으로 스케일 업됩니다. 쓰기 용량 2GB/s 및 읽기 용량 4GB/s로 늘려야 하는 경우 지원 티켓을 제출하세요.

상한이 없습니다. 최대 처리량은 스트림에 대해 프로비저닝된 샤드 수에 따라 달라집니다. 각 샤드는 최대 1MB/s 또는 1,000레코드/초의 쓰기 처리량 또는 최대 2MB/s 또는 2,000레코드/초 읽기의 처리량을 지원할 수 있습니다. 추가 수집 용량이 필요한 경우 AWS Management Console 또는 UpdateShardCount API를 사용하여 스트림의 샤드 수를 쉽게 확장할 수 있습니다.

데이터 페이로드 크기

base64-encoding 전 레코드의 데이터 페이로드 최대 크기는 1MB입니다.

GetRecords 트랜잭션 크기

GetRecords는 단일 샤드에서 호출당 최대 10MB의 데이터와 호출당 최대 10,000개의 레코드를 검색할 수 있습니다. 모든 GetRecords 호출은 1개의 읽기 트랜잭션으로 간주됩니다. 각 샤드는 초당 최대 5개의 읽기 트랜잭션을 지원합니다. 각 읽기 트랜잭션은 최대 10,000개의 레코드를 제공하며, 트랜잭션당 상한 할당량은 10MB입니다.

샤드당 데이터 읽기 속도

각 샤드는 GetRecords를 통해 초당 2MB의 최대 총 데이터 읽기 속도를 지원합니다. GetRecords 호출이 10MB를 반환하면, 다음 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 5TPS 계정별

한 계정에서 사용할 수 있는 스트림 수는 상한 할당량이 없습니다. 다음 중 하나를 수행하려고 할 때 CreateStream을 요청하면 LimitExceededException이 발생합니다.

  • 언제든지 CREATING 상태에 5개 이상의 스트림이 있어야 합니다.

  • 계정에 대해 승인된 것보다 더 많은 샤드를 생성합니다.

DecreaseStreamRetentionPeriod 5TPS 스트림당 데이터 스트림 보존 기간의 최소값은 24시간입니다.
DeleteResourcePolicy 5TPS 계정별 이 한도를 늘려야 하는 경우 지원 티켓을 제출하세요.
DeleteStream 5TPS 계정별
DeregisterStreamConsumer 5TPS 스트림당
DescribeLimits 1TPS 계정별
DescribeStream 10TPS 계정별
DescribeStreamConsumer 20TPS 스트림당
DescribeStreamSummary 20TPS 계정별
DisableEnhancedMonitoring 5TPS 스트림당
EnableEnhancedMonitoring 5TPS 스트림당
GetResourcePolicy 5TPS 계정별 이 한도를 늘려야 하는 경우 지원 티켓을 제출하세요.
IncreaseStreamRetentionPeriod 5TPS 스트림당 스트림 보존 기간의 최대값은 8,760시간(365일)입니다.
ListShards 1000TPS 스트림당
ListStreamConsumers 5TPS 스트림당
ListStreams 5TPS 계정별
ListTagsForStream 5TPS 스트림당
MergeShards 5TPS 스트림당 프로비저닝됨에만 적용됩니다.
PutResourcePolicy 5TPS 계정별 이 한도를 늘려야 하는 경우 지원 티켓을 제출하세요.
RegisterStreamConsumer 5TPS 스트림당 데이터 스트림당 최대 20명의 소비자를 등록할 수 있습니다. 해당 소비자는 한 번에 하나의 데이터 스트림에 등록될 수 있습니다. 동시에 5명의 소비자를 생성할 수 있습니다. 즉, 동시에 CREATING 상태의 소비자가 5명 이상 있을 수 없습니다. CREATING CREATING 상태의 소비자가 5개인데 6번째 소비자를 등록합니다.
RemoveTagsFromStream 5TPS 스트림당
SplitShard 5TPS 스트림당 프로비저닝됨에만 적용됩니다.
StartStreamEncryption 스트림당 24시간 동안 서버 측 암호화에 새로운 AWS KMS 키를 25회 성공적으로 적용할 수 있습니다.
StopStreamEncryption 스트림당 24시간 동안 서버 쪽 암호화를 25회 성공적으로 비활성화할 수 있습니다.
UpdateShardCount 스트림당 프로비저닝됨에만 적용됩니다. 샤드 수의 기본 제한은 1만 개입니다. 이 API에는 추가 제한이 있습니다. 자세한 내용은 UUpdateShardCount를 참조하세요.
UpdateStreamMode 스트림당

AWS 계정의 각 데이터 스트림에 대해 24시간 내에 두 번 온디맨드 용량 모드와 프로비저닝된 용량 모드 사이를 전환할 수 있습니다.

KDS 데이터 플레인 API 제한

다음 단원에서는 KDS 데이터 플레인 API에 대한 제한에 대해 설명합니다. KDS 데이터 플레인 API를 사용하면 데이터 스트림을 사용하여 데이터 레코드를 실시간으로 수집하고 처리할 수 있습니다. 이러한 제한은 데이터 스트림 내의 샤드당 적용됩니다.

데이터 영역 API 한도
API API 호출 제한 페이로드 제한 추가 세부 정보
GetRecords 5TPS 호출당 반환할 수 있는 최대 레코드 수는 10,000개입니다. GetRecords가 반환할 수 있는 최대 데이터 크기는 10MB입니다. 호출이 이 양의 데이터가 반환하면, 다음 5초 안에 이루어지는 호출에서 ProvisionedThroughputExceededException이 발생합니다. 스트림에 프로비저닝된 처리량이 충분하지 않으면, 다음 1초 안에 이루어지는 호출에서 ProvisionedThroughputExceededException이 발생합니다.
GetShardIterator 5TPS 샤드 반복자는 요청자에게 반환되고 5분 후에 만료됩니다. GetShardIterator를 너무 자주 요청하면 ProvisionedThroughputExceededException이 발생합니다.
PutRecord 1000TPS 각 샤드는 초당 최대 1,000개의 레코드 쓰기를 지원할 수 있으며 최대 데이터 쓰기 총계는 초당 1MB입니다.
PutRecords 각 PutRecords 요청은 최대 500개의 레코드를 지원할 수 있습니다. 요청에 포함되는 각 레코드 크기의 상한은 1MB이며, 파티션 키를 포함해 전체 요청당 최대 5MB로 제한됩니다. 각 샤드는 초당 최대 1,000개의 레코드 쓰기를 지원할 수 있으며 최대 데이터 쓰기 총계는 초당 1MB입니다.
SubscribeToShard 샤드별로 등록된 소비자당 SubscribeToShard를 초당 한 번 호출할 수 있습니다. 호출이 성공한 후 5초 이내에 동일한 ConsumerARN 및 ShardId를 사용하여 SubscribeToShard를 다시 호출하면 ResourceInUseException이 발생합니다.

할당량 증가

할당량을 조정할 수 있는 경우 Service Quotas를 사용하여 할당량 증가를 요청할 수 있습니다. 일부 요청은 자동으로 해결되고, 일부는 AWS Support에 제출됩니다. AWS Support에 제출된 할당량 증가 요청의 상태를 추적할 수 있습니다. Service Quotas 증가 요청은 우선 순위 지원을 받지 못합니다. 긴급한 요청이 있는 경우 AWS Support에 문의하세요. 자세한 내용은 What Is Service Quotas?를 참조하십시오.

서비스 할당량 증가를 요청하려면 할당량 증가 요청에 설명된 절차를 따르십시오.