DynamoDB Streams Kinesis 어댑터를 사용하여 스트림 레코드 처리
Amazon Kinesis 어댑터 사용은 Amazon DynamoDB의 스트림을 소비할 때 권장되는 방법입니다. DynamoDB Streams API는 Kinesis Data Streams와 유사합니다. 두 서비스 모두 데이터 스트림이 샤드로 구성되어 있습니다. 샤드란 스트림 레코드의 컨테이너입니다. 두 서비스의 API 모두 Kinesis Data Streams의 API와 의도적으로 유사하게 설계된 DynamoDB Streams API를 포함하고 있습니다. 두 서비스 모두 데이터 스트림이 샤드로 구성되어 있습니다. 샤드란 스트림 레코드의 컨테이너입니다. 두 서비스의 API에는 ListStreams
, DescribeStream
, GetShards
및 GetShardIterator
작업이 포함되어 있습니다. (이러한 DynamoDB Streams 작업은 Kinesis Data Streams의 해당 작업과 유사하지만 100% 동일하지는 않습니다.)
DynamoDB Streams 사용자라면 Kinesis Client Library(KCL) 내에서 찾을 수 있는 설계 패턴을 활용해 DynamoDB Streams 샤드와 스트림 레코드를 처리할 수 있습니다. 이렇게 하려면 DynamoDB Streams Kinesis 어댑터를 사용합니다. Kinesis 어댑터는 DynamoDB Streams의 레코드를 사용 및 처리하는 데 KCL을 사용할 수 있도록 Kinesis Data Streams 인터페이스를 구현합니다. DynamoDB Streams Kinesis 어댑터를 설정하고 설치하는 방법에 대한 지침은 GitHub 리포지토리
DynamoDB Streams 사용자는 KCL에 있는 디자인 패턴을 활용하여 DynamoDB Streams 샤드와 스트림 레코드를 처리할 수 있습니다. 이렇게 하려면 DynamoDB Streams Kinesis 어댑터를 사용합니다. Kinesis 어댑터는 DynamoDB Streams의 레코드를 사용 및 처리하는 데 KCL을 사용할 수 있도록 Kinesis Data Streams 인터페이스를 구현합니다. DynamoDB Streams Kinesis 어댑터를 설정하고 설치하는 방법에 대한 지침은 GitHub 리포지토리
Kinesis Client Library(KCL)를 사용하여 Kinesis Data Streams의 애플리케이션을 작성할 수 있습니다. KCL은 하위 수준의 Kinesis Data Streams API에 유용한 추상화를 제공하여 코딩을 단순화합니다. KCL에 대한 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서의 Kinesis Client Library를 사용하여 소비자 개발을 참조하세요.
DynamoDB는 AWS SDK for Java v2.x와 함께 KCL 버전 3.x를 사용할 것을 권장합니다. AWS SDK for Java v1.x를 사용하는 현재 KCL 버전 1.x는 AWS SDK 및 도구 유지 관리 정책에 따라 전환 기간 동안 의도한 대로 수명 주기 전체에 걸쳐 계속 완전히 지원됩니다.
참고
Amazon Kinesis Client Library(KCL) 버전 1.x 및 2.x는 오래되었습니다. KCL 1.x는 2026년 1월 30일에 지원이 종료됩니다. 버전 1.x를 사용하는 KCL 애플리케이션을 2026년 1월 30일 이전에 최신 KCL 버전으로 마이그레이션하는 것이 좋습니다. 최신 KCL 버전을 찾으려면 GitHub의 Amazon Kinesis Client Library
다음 다이어그램은 이러한 라이브러리가 서로 상호 작용하는 방법을 보여 줍니다.

DynamoDB Streams Kinesis 어댑터가 준비되어 있으면 DynamoDB Streams 엔드포인트로 원활하게 전달되는 API 호출을 통해 KCL 인터페이스 개발을 시작할 수 있습니다.
애플리케이션이 시작되면 KCL을 호출하여 작업자를 인스턴스화합니다. 작업자에게 애플리케이션의 구성 정보를 제공해야 합니다. 제공해야 하는 구성 정보에는 스트림 서술자와 AWS 자격 증명, 제공하는 레코드 프로세서 클래스의 이름 등이 있습니다. 레코드 프로세서에서 코드를 실행하면 작업자는 다음 작업을 수행합니다.
-
스트림에 연결합니다
-
스트림 내 샤드를 열거합니다.
-
스트림 내에서 닫힌 상위 샤드의 하위 샤드를 확인하고 열거
-
스트림 내에서 닫힌 상위 샤드의 하위 샤드를 확인하고 열거
-
샤드 연결을 다른 작업자(있는 경우)와 조정합니다.
-
관리하는 모든 샤드의 레코드 프로세서를 인스턴스화합니다
-
스트림에서 레코드를 가져옵니다.
-
해당하는 레코드 프로세서로 레코드를 푸시합니다
-
처리된 레코드에 대해 체크포인트를 수행합니다
-
작업자 인스턴스 수가 변경되면 샤드-작업자 연결을 조정합니다
-
샤드가 분할되면 샤드-작업자 연결을 조정합니다.
참고
여기에 나온 KCL 개념에 대한 설명은 Amazon Kinesis Data Streams 개발자 안내서의 Kinesis Client Library를 사용하여 소비자 개발을 참조하세요.
AWS Lambda에 스트림을 사용하는 방법에 대한 자세한 내용은 DynamoDB Streams 및 AWS Lambda 트리거 섹션을 참조하세요.