Using the Kinesis Producer Library

The Kinesis Producer Library (KPL)

Kinesis Producer Library는 이전 섹션에서 다뤘던 데이터 전송 기능 뿐만 아니라 재시도 및 에러 핸들링를 통해 최적의 쓰기 처리량을 달성하고 다수의 데이터를 통합 일괄 처리하는 방식으로 각 샤드별 초당 처리량을 극대화 할수 있습니다.

Kinesis Producer Library 기능

  • 하나 이상의 Kinesis Data Streams에 데이터를 씁니다.

  • 데이터 전송이 실패할 경우 자동 또는 수동으로 설정 가능한 재시도(retry) 기능을 제공합니다.

  • 레코드를 수집하고 PutRecords API를 이용해서 하나의 요청으로 다수의 레코드를 다수의 샤드에 쓸수 있습니다.

  • Payload 크기와 처리량(Throughput) 향상을 위해서 데이터를 통합(Aggregate)합니다.

  • KCL(Kinesis Client Library)와 연동해서 데이터 소비자(Consumer) 측면에서의 배치 레코드의 분할(De-aggregate)을 지원합니다.

  • Amazon CloudWatch 지표와 통합하여 KPL 성능에 대한 가시성을 제공합니다.

KPL은 Kinesis용 AWS SDK에 대한 추상화 계층을 제공합니다.

Shard Utilization

KPL의 핵심적인 기능은 전송할 레코드를 통합해서 요청당 Payload 크기를 높이고 데이터가 저장될 각각의 샤드별 처리량을 극대화하는데 있습니다.

Kinesis Producer Library는 처리량을 최적화하기 위해 크기가 작은 레코드를 바로 바로 전송하지 않고 버퍼에 우선 저장하고 버퍼 크기가 설장값 이상일때까지 혹은 설정된 시간만큼 기다려서 처리량이 1MiB에 가까워지도록 한 후에 데이터를 전송하도록 구성할수 있습니다.

애플리케이션에 짧은 지연 시간 요구 사항이 있는 경우 Kinesis Producer Library를 사용하지 않는 것을 권장합니다. KPL에서 RecordMaxBufferedTime 파라미터에 지정한 값 만큼의 추가 처리 지연이 발생할 수 있기 때문입니다.

Let's write to the Kinesis Data Stream using the Kinesis Producer Library

Last updated