https://docs.aws.amazon.com/streams/latest/dev/introduction.html
Kinesis Data Streams
- 대규모 실시간 데이터 스트림을 수집, 처리, 분석해 주는 서비스
- aws의 여러 서비스와 통합하기 쉽다. (Kinesis Firehose을 사용하여 S3, Redshift, Opensearch 등으로 전송할 수 있다.)
- 스트림을 여러 샤드로 분할하여 데이터를 분산 처리하고 다양한 응용 프로그램이 데이터를 읽을 수 있도록 한다.
Kinesis Data Streams 장점
- 실시간으로 데이터를 처리할 수 있다.
- 데이터 양에 따라 쉽게 스트림의 처리 능력을 확장할 수 있다.
- 여러 AWS의 다른 서비스와 쉽게 통합이 가능하다.
- 설정된 보존 기간 동안 데이터를 유지하고, 보관이 가능하다.
Kinesis Data Streams 단점
- 비용 관리가 필요하다.
- 설정 관리를 위해 AWS 서비스에 대한 이해와 구성이 필요하다.
- 실시간 데이터 처리 시스템을 설계하고 구현이 복잡할 수 있다.
Kinesis 도입 체크
- 대규모 실시간 데이터를 처리해야 하는 경우
- 다양한 AWS 다른 서비스와 통합 할 경우
- 실시간 데이터를 분석하고 모니터링이 필요한 경우
Kinesis Data Streams 용어 정리
스트림(Strema)
- 시간 순서에 따라 순차적으로 흐르는 데이터 시퀀스를 관리한다.
- 고유한 이름을 가지고 데이터 레코드를 저장하는 컨테이너 역할을 한다.
- 데이터 흐름을 관리한고, 프로듀서가 생성한 데이터 레코드를 스트림에 저장하며, 컨슈머가 데이터를 읽어 처리하게 도와준다.
- 사용자가 브로커를 직접 관리하지 않고 데이터를 저장하고 스트림을 생성, 설정 및 관리에 집중할 수 있게 해 준다.
샤드(Shard)
- 데이터 레코드를 저장하고 처리하는 단위
- 스트림은 하나 이상의 샤드로 구성된다.
- 읽기의 경우 초당 최대 5개 트랜잭션, 초당 최대 2MB
- 쓰기의 경우 최대 1000개의 레코드, 초당 최대 1MB
데이터 레코드(Data Record)
- 데이터 스트림에 저장되는 데이터 단위
- 시퀀스 번호, 파티션키, 본문으로 구성되며 변경할 수 없는 데이터로 구성된다.
- 최대 크기는 1MB까지 가능하다.
파티션 키(Partition Key)
- 데이터 레코드를 스트림의 샤드에 분배하는 데 사용되는 키
- 샤드는 고유한 키를 가지고 있는다.
- 데이터 코드의 순서를 보존하며, 연관성 있는 데이터를 그룹화하는데 유용하다.
시퀀스 번호(Sequence Number)
- 데이터 레코드의 고유한 식별자
- 데이터 레코드가 스트림을 따라 전파될 때 순서를 추적하는 데 사용한다. (일반적으로 시간에 따라 증가)
프로듀서(Producer)
- 레코드를 생성하여 데이터 스트림에 레코드를 넣는다.
컨슈머(consumer)
- 데이터 스트림에서 레코드를 가져와 처리하는 역할을 한다.
'AWS' 카테고리의 다른 글
[AWS Submit Seoul] AWS 컨퍼런스 5/3 후기 (0) | 2023.05.03 |
---|