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시간으로 설정됩니다. IncreaseStreamRetentionPeriod 작업을 사용하여 보존 기간을 최대 8,760시간(365일)까지 늘릴 수 있으며 DecreaseStreamRetentionPeriod 작업을 사용하여 보존 기간을 최소 24시간까지 줄일 수 있습니다. 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 요금을 참조하세요.