Amazon Kinesis Data Streams 용어 및 개념 - Amazon Kinesis Data Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Kinesis Data Streams 용어 및 개념

Amazon Kinesis Data Streams를 시작할 때 아키텍처와 용어를 이해하면 도움이 될 수 있습니다.

Kinesis Data Streams 상위 수준 아키텍처

다음 다이어그램은 Kinesis Data Streams의 상위 수준 아키텍처를 보여줍니다. 생산자가 계속해서 Kinesis Data Streams에 데이터를 푸시하고 소비자가 실시간으로 데이터를 처리합니다. 소비자 (예: Amazon EC2에서 실행되는 사용자 지정 애플리케이션 또는 Amazon Data Firehose 전송 스트림) 는 Amazon DynamoDB, Amazon Redshift 또는 Amazon S3와 같은 AWS 서비스를 사용하여 결과를 저장할 수 있습니다.


                Kinesis Data Streams 상위 수준 아키텍처 다이어그램

Kinesis Data Streams 용어

Kinesis 데이터 스트림

Kinesis 데이터 스트림은 샤드의 집합입니다. 샤드마다 데이터 레코드 시퀀스가 있습니다. 각 데이터 레코드에는 Kinesis Data Streams에서 할당한 시퀀스 번호가 있습니다.

데이터 레코드

데이터 레코드는 Kinesis 데이터 스트림에 저장되는 데이터의 단위입니다. 데이터 레코드는 시퀀스 번호, 파티션 키 및 변경할 수 없는 바이트 시퀀스인 데이터 blob으로 구성됩니다. Kinesis Data Streams는 어떤 방식으로든 blob의 데이터를 검사, 해석 또는 변경하지 않습니다. 데이터 blob은 최대 1MB일 수 있습니다.

용량 모드

데이터 스트림 용량 모드는 용량이 관리되는 방식과 데이터 스트림 사용에 대한 요금이 청구되는 방식을 결정합니다. 현재 Kinesis Data Streams에서는 데이터 스트림에 대해 온디맨드 모드와 프로비저닝 모드 중에서 선택할 수 있습니다. 자세한 설명은 데이터 스트림 용량 모드 선택 섹션을 참조하세요.

온디맨드 모드에서 Kinesis Data Streams는 필요한 처리량을 제공하기 위해 샤드를 자동으로 관리합니다. 사용한 실제 처리량에 대해서만 요금이 부과되며 Kinesis Data Streams는 증가하거나 감소할 때 워크로드의 처리량 요구 사항을 자동으로 수용합니다. 자세한 설명은 온디맨드 모드 섹션을 참조하세요.

프로비저닝된 모드에서는 데이터 스트림의 샤드 수를 지정해야 합니다. 데이터 스트림의 총 용량은 해당 샤드 용량의 합계입니다. 필요에 따라 데이터 스트림의 샤드 수를 늘리거나 줄일 수 있으며 샤드 수에 대해 시간당 요금이 부과됩니다. 자세한 설명은 프로비저닝된 모드 섹션을 참조하세요.

보존 기간

보존 기간은 데이터 레코드를 스트림에 추가한 후 데이터 레코드에 액세스할 수 있는 시간의 길이입니다. 스트림 보존 기간은 기본적으로 생성 후 24시간으로 설정됩니다. 작업을 사용하면 보존 기간을 최대 8760시간 (365일) 까지 늘리고, IncreaseStreamRetentionPeriod작업을 사용하면 보존 기간을 최소 24시간으로 줄일 수 있습니다. DecreaseStreamRetentionPeriod 24시간을 초과하여 보존 기간을 설정하면 스트림에 추가 요금이 적용됩니다. 자세한 내용은 Amazon Kinesis Data Streams 요금을 참조하십시오.

생산자

생산자는 레코드를 Amazon Kinesis Data Streams에 저장합니다. 예를 들어, 스트림에 로그 데이터를 보내는 웹 서버가 생산자입니다.

소비자

소비자는 Amazon Kinesis Data Streams의 레코드를 가져와서 처리합니다. 이 소비자를 Amazon Kinesis Data Streams 애플리케이션이라고 합니다.

Amazon Kinesis Data Streams 애플리케이션

Amazon Kinesis Data Streams 애플리케이션은 EC2 인스턴스의 플릿에서 공통적으로 실행되는 스트림의 소비자입니다.

공유 팬아웃 소비자와 향상된 팬아웃 소비자의 두 가지 유형 소비자를 개발할 수 있습니다. 두 유형 간의 차이와 각 유형의 소비자를 만드는 방법을 살펴보려면 Amazon Kinesis Data Streams에서 데이터 읽기 단원을 참조하십시오.

Kinesis Data Streams 애플리케이션의 출력은 다른 스트림의 입력이 될 수 있으며 실시간으로 데이터를 처리하는 복잡한 토폴로지를 생성할 수 있도록 해줍니다. 또한 애플리케이션은 다양한 다른 AWS 서비스에 데이터를 보낼 수 있습니다. 스트림 하나에 여러 애플리케이션이 있을 수 있으며 각 애플리케이션이 동시에 독립적으로 스트림의 데이터를 소비할 수 있습니다.

샤드

샤드는 스트림에서 고유하게 식별되는 데이터 레코드 시퀀스입니다. 스트림은 하나 이상의 샤드로 구성되며 각 샤드는 고정된 용량 단위를 제공합니다. 각 샤드는 읽기의 경우 초당 최대 5개의 트랜잭션, 초당 최대 2MB의 총 데이터 읽기 속도, 쓰기의 경우 초당 최대 1,000개의 레코드, 초당 최대 1MB의 총 데이터 쓰기 속도를 지원할 수 있습니다(파티션 키 포함). 스트림의 데이터 용량은 스트림에 지정하는 샤드 수의 함수입니다. 스트림의 총 용량은 해당 샤드의 용량의 합계입니다.

데이터 속도가 증가하면 스트림에 할당된 샤드 수를 늘리거나 줄일 수 있습니다. 자세한 설명은 스트림 리샤딩 섹션을 참조하세요.

파티션 키

파티션 키는 스트림 내의 샤드에서 데이터를 그룹화하는 데 사용됩니다. Kinesis Data Streams는 스트림에 속하는 데이터 레코드를 여러 샤드로 분리합니다. 각 데이터 레코드와 연결된 파티션 키를 사용하여 해당 데이터 레코드가 속한 샤드를 확인합니다. 파티션 키는 각 키에 대한 최대 길이 제한이 256자인 유니코드 문자열입니다. 파티션 키를 128비트 정수 값에 매핑하고 샤드의 해시 키 범위를 사용하여 연결된 데이터 레코드를 샤드에 매핑하기 위해 MD5 해시 함수가 사용됩니다. 애플리케이션이 데이터를 스트림에 넣을 때는 파티션 키를 지정해야 합니다.

시퀀스 번호

각 데이터 레코드에는 샤드 내 파티션 키별로 고유한 시퀀스 번호가 있습니다. Kinesis Data Streams는 client.putRecords 또는 client.putRecord를 사용하여 스트림에 쓴 후 시퀀스 번호를 할당합니다. 같은 파티션 키의 시퀀스 번호는 일반적으로 시간이 지나면서 증가합니다. 쓰기 요청 간의 기간이 길수록 시퀀스 번호가 커집니다.​

참고

같은 스트림에 있는 데이터 세트의 인덱스로 시퀀스 번호를 사용할 수 없습니다. 데이터 세트를 논리적으로 분리하려면 파티션 키를 사용하거나 데이터 세트마다 별도의 스트림을 만드십시오.

Kinesis Client Library

Kinesis Client Library는 결함이 있어도 정상적으로 스트림의 데이터를 소비할 수 있도록 애플리케이션에 컴파일됩니다. Kinesis Client Library는 각 샤드에 대해 해당 샤드를 실행하고 처리하는 레코드 프로세서가 있도록 보장합니다. 또한 라이브러리는 스트림에서 데이터를 읽는 과정을 간소화합니다. Kinesis Client Library는 Amazon DynamoDB 테이블을 사용하여 제어 데이터를 저장합니다. 데이터를 처리하는 애플리케이션마다 테이블 하나를 만듭니다.

Kinesis Client Library에는 두 가지 주요 버전이 있습니다. 사용하는 버전은 만들려는 소비자 유형에 따라 결정됩니다. 자세한 설명은 Amazon Kinesis Data Streams에서 데이터 읽기 섹션을 참조하세요.

애플리케이션 이름

Amazon Kinesis Data Streams 애플리케이션의 이름은 애플리케이션을 식별합니다. 각 애플리케이션에는 애플리케이션에서 사용하는 AWS 계정 및 지역으로 범위가 지정된 고유한 이름이 있어야 합니다. 이 이름은 Amazon DynamoDB의 제어 테이블 이름과 Amazon 지표의 네임스페이스 이름으로 사용됩니다. CloudWatch

서버 측 암호화

Amazon Kinesis Data Streams는 생산자가 민감한 데이터를 스트림에 입력할 때 자동으로 암호화할 수 있습니다. Kinesis Data Streams는 암호화에 AWS KMS 마스터 키를 사용합니다. 자세한 설명은 Amazon Kinesis Data Streams의 데이터 보호 섹션을 참조하세요.

참고

암호화된 스트림에서 읽거나 쓰려면 마스터 키에 액세스할 권한이 생산자 및 소비자 애플리케이션에 있어야 합니다. 생산자 및 소비자 애플리케이션에 권한을 부여하는 데 대한 자세한 내용은 사용자 생성 KMS 마스터 키 사용 권한를 참조하십시오.

참고

서버 측 암호화를 사용하면 () 비용이 발생합니다. AWS Key Management Service AWS KMS자세한 내용은 AWS Key Management Service 요금을 참조하세요.