시작, 종료 및 스로틀링 처리 - Amazon Kinesis Data Streams

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

시작, 종료 및 스로틀링 처리

다음은 Amazon Kinesis Data Streams 애플리케이션 설계에 통합할 몇 가지 추가 고려 사항입니다.

데이터 생산자 및 데이터 소비자 시작하기

기본적으로 는 가장 최근에 추가된 레코드인 스트림의 끝에서 레코드를 읽기 KCL 시작합니다. 이 구성에서 수신 레코드 프로세서가 실행되기 전에 데이터 생성 애플리케이션이 레코드를 스트림에 추가하면 레코드 프로세서가 시작된 후 레코드 프로세서에서 레코드를 읽지 않습니다.

항상 스트림 시작부터 데이터를 읽도록 레코드 프로세서 동작을 변경하려면 Amazon Kinesis Data Streams 애플리케이션의 속성 파일에서 다음 값을 설정하세요.

initialPositionInStream = TRIM_HORIZON

기본적으로 Amazon Kinesis Data Streams는 모든 데이터를 24시간 동안 저장합니다. 또한 최대 7일의 연장 보존과 최대 365일의 장기 보존을 지원합니다. 이 기간을 보존 기간이라고 합니다. 시작 위치를 TRIM_HORIZON으로 설정하면 보존 기간에 정의된 대로 스트림의 가장 오래된 데이터부터 레코드 프로세서가 시작됩니다. TRIM_HORIZON 설정을 사용하더라도 보존 기간보다 오랜 시간이 지난 후에 레코드 프로세서가 시작되면 스트림의 일부 레코드를 더 이상 사용할 수 없게 됩니다. 따라서 항상 소비자 애플리케이션이 스트림에서 데이터를 GetRecords.IteratorAgeMilliseconds 읽도록 하고 CloudWatch 지표를 사용하여 애플리케이션이 들어오는 데이터를 따라잡고 있는지 모니터링해야 합니다.

일부 시나리오에서는 레코드 프로세서가 스트림의 처음 레코드 몇 개를 놓쳐도 문제가 되지 않습니다. 예를 들어 스트림을 통해 일부 초기 레코드를 실행하여 스트림이 end-to-end 예상대로 작동하는지 테스트할 수 있습니다. 이 초기 확인을 수행한 후 작업자를 시작하고 스트림에 프로덕션 데이터를 입력하기 시작합니다.

TRIM_HORIZON 설정에 관한 자세한 내용은 샤드 이터레이터를 사용하세요.를 참조하십시오.

Amazon Kinesis Data Streams 애플리케이션을 종료합니다.

Amazon Kinesis Data Streams 애플리케이션이 의도한 작업을 완료하면 실행 중인 인스턴스를 종료하여 애플리케이션을 EC2 종료해야 합니다. AWS Management Console 또는 AWS CLI를 사용하여 인스턴스를 종료할 수 있습니다.

Amazon Kinesis Data Streams 애플리케이션을 종료한 후에는 애플리케이션 상태를 추적하는 데 사용한 Amazon DynamoDB 테이블을 삭제해야 KCL 합니다.

읽기 스로틀링

스트림 처리량은 샤드 수준에서 프로비저닝됩니다. 각 샤드의 읽기 처리량은 초당 최대 5개의 트랜잭션이며, 최대 총 데이터 읽기 속도는 초당 2MB입니다. 애플리케이션(또는 동일한 스트림에서 작동하는 애플리케이션 그룹)이 더 빠른 속도로 샤드에서 데이터를 가져오려고 시도하면 Kinesis Data Streams가 해당 Get 작업을 조절합니다.

Amazon Kinesis Data Streams 애플리케이션에서 레코드 프로세서가 장애 조치의 경우와 같이 제한보다 빨리 데이터를 처리하면 제한이 발생합니다. 애플리케이션과 Kinesis Data Streams 간의 상호 작용을 KCL 관리하기 때문에 제한 예외는 애플리케이션 코드가 아닌 코드에서 KCL 발생합니다. 하지만 이러한 예외는 KCL 로그에 기록되므로 로그에서 해당 예외를 확인할 수 있습니다.

애플리케이션이 일관되게 조절되는 경우 스트림의 샤드 수를 늘려야 합니다.