AWS CLI를 사용한 Kinesis 예시 - AWS Command Line Interface

이 문서는 AWS CLI의 버전 1에만 해당합니다. AWS CLI의 버전 2와 관련된 문서는 버전 2 사용 설명서를 참조하세요.

AWS CLI를 사용한 Kinesis 예시

다음 코드 예시는 Kinesis와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

주제

작업

다음 코드 예시에서는 add-tags-to-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림에 태그 추가

다음 add-tags-to-stream 예시에서는 키 samplekey 및 값 example이 있는 태그를 지정된 스트림에 할당합니다.

aws kinesis add-tags-to-stream \ --stream-name samplestream \ --tags samplekey=example

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조AddTagsToStream을 참조하세요.

다음 코드 예시에서는 create-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 생성

다음 create-stream 예시에서는 샤드 3개가 포함된 samplestream이라는 데이터 스트림을 생성합니다.

aws kinesis create-stream \ --stream-name samplestream \ --shard-count 3

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 생성을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateStream을 참조하세요.

다음 코드 예시에서는 decrease-stream-retention-period의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 보존 기간 줄이기

다음 decrease-stream-retention-period 예시에서는 samplestream이라는 스트림의 보존 기간(데이터 레코드가 스트림에 추가된 후 액세스할 수 있는 시간)을 48시간으로 줄입니다.

aws kinesis decrease-stream-retention-period \ --stream-name samplestream \ --retention-period-hours 48

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서데이터 보존 기간 변경을 참조하세요.

다음 코드 예시에서는 delete-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 삭제

다음 delete-stream 예시에서는 지정된 데이터 스트림을 삭제합니다.

aws kinesis delete-stream \ --stream-name samplestream

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 삭제를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DeleteStream을 참조하세요.

다음 코드 예시에서는 deregister-stream-consumer의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 소비자 등록 취소

다음 deregister-stream-consumer 예시에서는 지정된 데이터 스트림에서 지정된 소비자의 등록을 취소합니다.

aws kinesis deregister-stream-consumer \ --stream-arn arn:aws:kinesis:us-west-2:123456789012:stream/samplestream \ --consumer-name KinesisConsumerApplication

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API를 사용하여 향상된 팬아웃으로 소비자 개발을 참조하세요.

다음 코드 예시에서는 describe-limits의 사용 방법을 보여줍니다.

AWS CLI

샤드 제한 설명

다음 describe-limits 예시에서는 현재 AWS 계정의 샤드 제한 및 사용량을 표시합니다.

aws kinesis describe-limits

출력:

{ "ShardLimit": 500, "OpenShardCount": 29 }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 리샤딩을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DescribeLimits를 참조하세요.

다음 코드 예시에서는 describe-stream-consumer의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 소비자 설명

다음 describe-stream-consumer 예시에서는 지정된 데이터 스트림에 등록된 지정된 소비자에 대한 설명을 반환합니다.

aws kinesis describe-stream-consumer \ --stream-arn arn:aws:kinesis:us-west-2:012345678912:stream/samplestream \ --consumer-name KinesisConsumerApplication

출력:

{ "ConsumerDescription": { "ConsumerName": "KinesisConsumerApplication", "ConsumerARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream/consumer/KinesisConsumerApplication:1572383852", "ConsumerStatus": "ACTIVE", "ConsumerCreationTimestamp": 1572383852.0, "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream" } }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Amazon Kinesis Data Streams에서 데이터 읽기를 참조하세요.

다음 코드 예시에서는 describe-stream-summary의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 요약 설명

다음 describe-stream-summary 예시에서는 지정된 데이터 스트림에 대한 요약 설명을 제공합니다(샤드 목록 없음).

aws kinesis describe-stream-summary \ --stream-name samplestream

출력:

{ "StreamDescriptionSummary": { "StreamName": "samplestream", "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream", "StreamStatus": "ACTIVE", "RetentionPeriodHours": 48, "StreamCreationTimestamp": 1572297168.0, "EnhancedMonitoring": [ { "ShardLevelMetrics": [] } ], "EncryptionType": "NONE", "OpenShardCount": 3, "ConsumerCount": 0 } }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 생성 및 관리를 참조하세요.

다음 코드 예시에서는 describe-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 설명

다음 describe-stream 예시에서는 지정된 데이터 스트림의 세부 정보를 반환합니다.

aws kinesis describe-stream \ --stream-name samplestream

출력:

{ "StreamDescription": { "Shards": [ { "ShardId": "shardId-000000000000", "HashKeyRange": { "StartingHashKey": "0", "EndingHashKey": "113427455640312821154458202477256070484" }, "SequenceNumberRange": { "StartingSequenceNumber": "49600871682957036442365024926191073437251060580128653314" } }, { "ShardId": "shardId-000000000001", "HashKeyRange": { "StartingHashKey": "113427455640312821154458202477256070485", "EndingHashKey": "226854911280625642308916404954512140969" }, "SequenceNumberRange": { "StartingSequenceNumber": "49600871682979337187563555549332609155523708941634633746" } }, { "ShardId": "shardId-000000000002", "HashKeyRange": { "StartingHashKey": "226854911280625642308916404954512140970", "EndingHashKey": "340282366920938463463374607431768211455" }, "SequenceNumberRange": { "StartingSequenceNumber": "49600871683001637932762086172474144873796357303140614178" } } ], "StreamARN": "arn:aws:kinesis:us-west-2:123456789012:stream/samplestream", "StreamName": "samplestream", "StreamStatus": "ACTIVE", "RetentionPeriodHours": 24, "EnhancedMonitoring": [ { "ShardLevelMetrics": [] } ], "EncryptionType": "NONE", "KeyId": null, "StreamCreationTimestamp": 1572297168.0 } }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 생성 및 관리를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DescribeStream을 참조하세요.

다음 코드 예시에서는 disable-enhanced-monitoring의 사용 방법을 보여줍니다.

AWS CLI

샤드 수준 지표에 대한 향상된 모니터링 비활성화

다음 disable-enhanced-monitoring 예시에서는 샤드 수준 지표에 대한 향상된 Kinesis 데이터 스트림 모니터링을 비활성화합니다.

aws kinesis disable-enhanced-monitoring \ --stream-name samplestream --shard-level-metrics ALL

출력:

{ "StreamName": "samplestream", "CurrentShardLevelMetrics": [ "IncomingBytes", "OutgoingRecords", "IteratorAgeMilliseconds", "IncomingRecords", "ReadProvisionedThroughputExceeded", "WriteProvisionedThroughputExceeded", "OutgoingBytes" ], "DesiredShardLevelMetrics": [] }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Amazon Kinesis Data Streams의 스트림 모니터링을 참조하세요.

다음 코드 예시에서는 enable-enhanced-monitoring의 사용 방법을 보여줍니다.

AWS CLI

샤드 수준 지표에 대한 향상된 모니터링 활성화

다음 enable-enhanced-monitoring 예시에서는 샤드 수준 지표에 대한 향상된 Kinesis 데이터 스트림 모니터링을 활성화합니다.

aws kinesis enable-enhanced-monitoring \ --stream-name samplestream \ --shard-level-metrics ALL

출력:

{ "StreamName": "samplestream", "CurrentShardLevelMetrics": [], "DesiredShardLevelMetrics": [ "IncomingBytes", "OutgoingRecords", "IteratorAgeMilliseconds", "IncomingRecords", "ReadProvisionedThroughputExceeded", "WriteProvisionedThroughputExceeded", "OutgoingBytes" ] }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Amazon Kinesis Data Streams의 스트림 모니터링을 참조하세요.

다음 코드 예시에서는 get-records의 사용 방법을 보여줍니다.

AWS CLI

샤드에서 레코드 가져오기

다음 get-records 예시에서는 지정된 샤드 반복자를 사용하여 Kinesis 데이터 스트림의 샤드에서 데이터 레코드를 가져옵니다.

aws kinesis get-records \ --shard-iterator AAAAAAAAAAF7/0mWD7IuHj1yGv/TKuNgx2ukD5xipCY4cy4gU96orWwZwcSXh3K9tAmGYeOZyLZrvzzeOFVf9iN99hUPw/w/b0YWYeehfNvnf1DYt5XpDJghLKr3DzgznkTmMymDP3R+3wRKeuEw6/kdxY2yKJH0veaiekaVc4N2VwK/GvaGP2Hh9Fg7N++q0Adg6fIDQPt4p8RpavDbk+A4sL9SWGE1

출력:

{ "Records": [], "MillisBehindLatest": 80742000 }

자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API 및 Java용 AWS SDK를 사용하여 소비자 개발을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetRecords를 참조하세요.

다음 코드 예시에서는 get-shard-iterator의 사용 방법을 보여줍니다.

AWS CLI

샤드 반복자 가져오기

다음 get-shard-iterator 예시에서는 AT_SEQUENCE_NUMBER 샤드 반복자 유형을 사용하고 샤드 반복자를 생성하여 지정된 시퀀스 번호로 표시된 위치에서 데이터 레코드를 정확히 읽기 시작합니다.

aws kinesis get-shard-iterator \ --stream-name samplestream \ --shard-id shardId-000000000001 \ --shard-iterator-type LATEST

출력:

{ "ShardIterator": "AAAAAAAAAAFEvJjIYI+3jw/4aqgH9FifJ+n48XWTh/IFIsbILP6o5eDueD39NXNBfpZ10WL5K6ADXk8w+5H+Qhd9cFA9k268CPXCz/kebq1TGYI7Vy+lUkA9BuN3xvATxMBGxRY3zYK05gqgvaIRn94O8SqeEqwhigwZxNWxID3Ej7YYYcxQi8Q/fIrCjGAy/n2r5Z9G864YpWDfN9upNNQAR/iiOWKs" }

자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API 및 Java용 AWS SDK를 사용하여 소비자 개발을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetShardIterator를 참조하세요.

다음 코드 예시에서는 increase-stream-retention-period의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 보존 기간 늘리기

다음 increase-stream-retention-period 예시에서는 지정된 스트림의 보존 기간(데이터 레코드를 스트림에 추가한 후 액세스할 수 있는 시간)을 168시간으로 늘립니다.

aws kinesis increase-stream-retention-period \ --stream-name samplestream \ --retention-period-hours 168

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서데이터 보존 기간 변경을 참조하세요.

다음 코드 예시에서는 list-shards의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림의 샤드 나열

다음 list-shards 예시에서는 지정된 스트림에서 지정된 shardId-000000000000exclusive-start-shard-id 뒤에 ID가 바로 오는 샤드부터 시작하여 모든 샤드를 나열합니다.

aws kinesis list-shards \ --stream-name samplestream \ --exclusive-start-shard-id shardId-000000000000

출력:

{ "Shards": [ { "ShardId": "shardId-000000000001", "HashKeyRange": { "StartingHashKey": "113427455640312821154458202477256070485", "EndingHashKey": "226854911280625642308916404954512140969" }, "SequenceNumberRange": { "StartingSequenceNumber": "49600871682979337187563555549332609155523708941634633746" } }, { "ShardId": "shardId-000000000002", "HashKeyRange": { "StartingHashKey": "226854911280625642308916404954512140970", "EndingHashKey": "340282366920938463463374607431768211455" }, "SequenceNumberRange": { "StartingSequenceNumber": "49600871683001637932762086172474144873796357303140614178" } } ] }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서샤드 나열을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListShards를 참조하세요.

다음 코드 예시에서는 list-streams의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 나열

다음 list-streams 예시에서는 현재 계정 및 리전의 모든 활성 데이터 스트림을 나열합니다.

aws kinesis list-streams

출력:

{ "StreamNames": [ "samplestream", "samplestream1" ] }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 나열을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListStreams를 참조하세요.

다음 코드 예시에서는 list-tags-for-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림의 태그 나열

다음 list-tags-for-stream 예시에서는 지정된 데이터 스트림에 연결된 태그를 나열합니다.

aws kinesis list-tags-for-stream \ --stream-name samplestream

출력:

{ "Tags": [ { "Key": "samplekey", "Value": "example" } ], "HasMoreTags": false }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListTagsForStream을 참조하세요.

다음 코드 예시에서는 merge-shards의 사용 방법을 보여줍니다.

AWS CLI

샤드 병합

다음 merge-shards 예시에서는 지정된 데이터 스트림에서 ID가 shardId-000000000000 및 shardId-000000000001인 2개의 인접 샤드를 병합하여 단일 샤드로 결합합니다.

aws kinesis merge-shards \ --stream-name samplestream \ --shard-to-merge shardId-000000000000 \ --adjacent-shard-to-merge shardId-000000000001

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 가이드2개의 샤드 병합을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조MergeShards를 참조하세요.

다음 코드 예시에서는 put-record의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림에 레코드 쓰기

다음 put-record 예시에서는 지정된 파티션 키를 사용하여 지정된 데이터 스트림에 단일 데이터 레코드를 씁니다.

aws kinesis put-record \ --stream-name samplestream \ --data sampledatarecord \ --partition-key samplepartitionkey

출력:

{ "ShardId": "shardId-000000000009", "SequenceNumber": "49600902273357540915989931256901506243878407835297513618", "EncryptionType": "KMS" }

자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API 및 Java용 AWS SDK를 사용하여 생산자 개발을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutRecord를 참조하세요.

다음 코드 예시에서는 put-records의 사용 방법을 보여줍니다.

AWS CLI

스트림에 여러 레코드 쓰기

다음 put-records 예시에서는 단일 직접 호출에서 지정된 파티션 키를 사용하여 데이터 레코드를 쓰고 다른 파티션 키를 사용하여 또 하나의 데이터 레코드를 씁니다.

aws kinesis put-records \ --stream-name samplestream \ --records Data=blob1,PartitionKey=partitionkey1 Data=blob2,PartitionKey=partitionkey2

출력:

{ "FailedRecordCount": 0, "Records": [ { "SequenceNumber": "49600883331171471519674795588238531498465399900093808706", "ShardId": "shardId-000000000004" }, { "SequenceNumber": "49600902273357540915989931256902715169698037101720764562", "ShardId": "shardId-000000000009" } ], "EncryptionType": "KMS" }

자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API 및 Java용 AWS SDK를 사용하여 생산자 개발을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutRecord를 참조하세요.

다음 코드 예시에서는 register-stream-consumer의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 소비자 등록

다음 register-stream-consumer 예시에서는 KinesisConsumerApplication이라는 소비자를 지정된 데이터 스트림에 등록합니다.

aws kinesis register-stream-consumer \ --stream-arn arn:aws:kinesis:us-west-2:012345678912:stream/samplestream \ --consumer-name KinesisConsumerApplication

출력:

{ "Consumer": { "ConsumerName": "KinesisConsumerApplication", "ConsumerARN": "arn:aws:kinesis:us-west-2: 123456789012:stream/samplestream/consumer/KinesisConsumerApplication:1572383852", "ConsumerStatus": "CREATING", "ConsumerCreationTimestamp": 1572383852.0 } }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Kinesis Data Streams API를 사용하여 향상된 팬아웃으로 소비자 개발을 참조하세요.

다음 코드 예시에서는 remove-tags-from-stream의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림에서 태그 제거

다음 remove-tags-from-stream 예시에서는 지정된 데이터 스트림에서 지정된 키가 있는 태그를 제거합니다.

aws kinesis remove-tags-from-stream \ --stream-name samplestream \ --tag-keys samplekey

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 태그 지정을 참조하세요.

다음 코드 예시에서는 split-shard의 사용 방법을 보여줍니다.

AWS CLI

샤드 분할

다음 split-shard 예시에서는 새 시작 해시 키 10을 사용하여 지정된 샤드를 두 개의 새 샤드로 분할합니다.

aws kinesis split-shard \ --stream-name samplestream \ --shard-to-split shardId-000000000000 \ --new-starting-hash-key 10

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서샤드 분할을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조SplitShard를 참조하세요.

다음 코드 예시에서는 start-stream-encryption의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 암호화 활성화

다음 start-stream-encryption 예시에서는 지정된 AWS KMS 키를 사용하여 지정된 스트림의 서버 측 암호화를 활성화합니다.

aws kinesis start-stream-encryption \ --encryption-type KMS \ --key-id arn:aws:kms:us-west-2:012345678912:key/a3c4a7cd-728b-45dd-b334-4d3eb496e452 \ --stream-name samplestream

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Amazon Kinesis Data Streams의 데이터 보호를 참조하세요.

다음 코드 예시에서는 stop-stream-encryption의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림 암호화 비활성화

다음 stop-stream-encryption 예시에서는 지정된 AWS KMS 키를 사용하여 지정된 스트림의 서버 측 암호화를 비활성화합니다.

aws kinesis start-stream-encryption \ --encryption-type KMS \ --key-id arn:aws:kms:us-west-2:012345678912:key/a3c4a7cd-728b-45dd-b334-4d3eb496e452 \ --stream-name samplestream

이 명령은 출력을 생성하지 않습니다.

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서Amazon Kinesis Data Streams의 데이터 보호를 참조하세요.

다음 코드 예시에서는 update-shard-count의 사용 방법을 보여줍니다.

AWS CLI

데이터 스트림의 샤드 수 업데이트

다음 update-shard-count 예시에서는 지정된 데이터 스트림의 샤드 수를 6으로 업데이트합니다. 이 예시에서는 동일한 크기의 샤드를 생성하는 균일한 스케일링을 사용합니다.

aws kinesis update-shard-count \ --stream-name samplestream \ --scaling-type UNIFORM_SCALING \ --target-shard-count 6

출력:

{ "StreamName": "samplestream", "CurrentShardCount": 3, "TargetShardCount": 6 }

자세한 설명은 Amazon Kinesis Data Streams 개발자 안내서스트림 리샤딩을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UpdateShardCount를 참조하세요.