파이프용 소스로서의 Amazon Kinesis 스트림 EventBridge - Amazon EventBridge

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

파이프용 소스로서의 Amazon Kinesis 스트림 EventBridge

EventBridge Pipes를 사용하여 Kinesis 데이터 스트림의 레코드를 수신할 수 있습니다. 그런 다음, 해당 레코드를 처리를 위해 사용 가능한 대상 중 하나로 보내기 전에 선택적으로 필터링하거나 개선할 수 있습니다. 파이프를 설정할 때 선택할 수 있는 Kinesis 관련 설정이 있습니다. EventBridge Pipes는 데이터를 대상으로 전송할 때 데이터 스트림의 레코드 순서를 유지합니다.

Kinesis 데이터 스트림은 샤드의 집합입니다. 샤드마다 데이터 레코드 시퀀스가 포함되어 있습니다. 소비자는 Kinesis 데이터 스트림의 데이터를 처리하는 애플리케이션입니다. EventBridge 파이프를 공유 처리량 소비자 (표준 이터레이터) 또는 향상된 팬아웃이 있는 전용 처리량 소비자에 매핑할 수 있습니다.

표준 이터레이터의 경우 HTTP 프로토콜을 EventBridge 사용하여 Kinesis 스트림의 각 샤드를 폴링하여 레코드를 찾습니다. 파이프는 샤드의 다른 소비자와 읽기 처리량을 공유합니다.

지연 시간을 최소화하고 읽기 처리량을 최대화하기 위해 향상된 팬아웃으로 데이터 스트림 소비자를 생성할 수 있습니다. 스트림 소비자는 각 샤드에 대해 전용 연결을 설정하므로 스트림에서 읽는 다른 애플리케이션에 영향을 주지 않습니다. 전용 처리량은 많은 애플리케이션에서 동일한 데이터를 읽거나, 큰 레코드를 갖는 스트림을 재처리하는 경우에 유용합니다. Kinesis는 레코드를 /2 이상으로 푸시합니다. EventBridge HTTP Kinesis 데이터 스트림에 대한 자세한 내용은 Amazon Kinesis Data Streams에서 데이터 읽기를 참조하세요.

예제 이벤트

다음 샘플 이벤트는 파이프가 수신한 정보를 보여줍니다. 이 이벤트를 사용하여 이벤트 패턴을 생성 및 필터링하거나 입력 변환을 정의할 수 있습니다. 모든 필드를 필터링할 수 있는 것은 아닙니다. 필터링할 수 있는 필드에 대한 자세한 내용은 Amazon EventBridge 파이프의 이벤트 필터링 섹션을 참조하세요.

[ { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "approximateArrivalTimestamp": 1545084650.987 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" }, { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", "approximateArrivalTimestamp": 1545084711.166 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" } ]

폴링 및 배치 처리 스트림

EventBridge Kinesis 스트림의 샤드를 기본 속도로 초당 4회 폴링하여 레코드를 찾습니다. 레코드를 사용할 수 있게 되면 이벤트를 EventBridge 처리하고 결과가 나올 때까지 기다립니다. 처리가 성공하면 더 많은 레코드를 받을 때까지 폴링을 EventBridge 재개합니다.

기본적으로 레코드를 사용할 수 있게 되면 바로 파이프를 EventBridge 호출합니다. 소스에서 EventBridge 읽는 일괄 처리에 레코드가 하나뿐인 경우 이벤트 하나만 처리됩니다. 적은 수의 레코드를 처리하는 것을 피하려면 배치 기간을 구성하여 파이프가 최대 5분 동안 레코드를 버퍼링하도록 지정하면 됩니다. 이벤트를 처리하기 전에 전체 배치를 수집하거나, 일괄 처리 기간이 만료되거나, 일괄 처리가 페이로드 한도인 6MB에 도달할 때까지 소스에서 레코드를 EventBridge 계속 읽습니다.

또한 각 샤드의 여러 배치를 병렬로 처리하여 동시성을 높일 수 있습니다. EventBridge 각 샤드에서 최대 10개의 배치를 동시에 처리할 수 있습니다. 샤드당 동시 배치 수를 늘려도 파티션 키 수준에서 순서대로 처리되도록 보장할 수 있습니다. EventBridge

Kinesis 또는 DynamoDB 데이터 스트림의 한 샤드와 하나 이상의 파이프 실행을 동시에 처리하도록 ParallelizationFactor 설정을 구성합니다. 병렬화 계수를 통해 샤드에서 EventBridge 폴링하는 동시 배치 수를 1 (기본값) 에서 10까지 지정할 수 있습니다. 예를 들어 2로 설정하면 ParallelizationFactor 최대 200개의 동시 EventBridge 파이프 실행으로 100개의 Kinesis 데이터 샤드를 처리할 수 있습니다. 이는 데이터 볼륨이 일시적이고 IteratorAge가 높을 때 처리량을 확장하는 데 도움을 줍니다. Kinesis 집계를 사용하는 경우에는 병렬화 계수가 작동하지 않습니다.

폴링 및 스트리밍 시작 위치

파이프 생성 및 업데이트 중 스트림 소스 폴링은 최종적으로 일관됩니다.

  • 파이프 생성 중 스트림에서 이벤트 폴링을 시작하는 데 몇 분 정도 걸릴 수 있습니다.

  • 소스 폴링 구성에 대한 파이프 업데이트 중 스트림에서 이벤트 폴링을 중지했다가 다시 시작하는 데 몇 분 정도 걸릴 수 있습니다.

즉, 스트림의 시작 위치로 LATEST를 지정하면 파이프 생성 또는 업데이트 중에 전송된 이벤트가 파이프에서 누락될 수 있습니다. 누락된 이벤트가 없도록 하기 위해서는 스트림 시작 위치를 TRIM_HORIZON 또는 AT_TIMESTAMP로 지정하세요.

배치 항목 실패 보고

소스에서 스트리밍 데이터를 사용하고 처리하는 경우 기본적으로 일괄 처리의 가장 높은 시퀀스 번호로 체크포인트를 지정하지만 일괄 처리가 EventBridge 완료될 때만 검사합니다. 실패한 배치에서 정상 처리된 메시지를 재처리하지 않으려면 성공한 메시지와 실패한 메시지를 나타내는 객체를 반환하도록 보강 또는 대상을 구성하면 됩니다. 이를 부분 일괄 응답이라고 합니다.

자세한 내용은 부분적 배치 실패 단원을 참조하십시오.

성공 및 실패 조건

다음 중 하나를 반환하면 배치를 완전히 성공한 것으로 EventBridge 간주합니다.

  • 비어 있는 batchItemFailure 목록

  • null batchItemFailure 목록

  • 비어 있는 EventResponse

  • null EventResponse

다음 중 하나를 반환하면 배치를 완전한 실패로 EventBridge 간주합니다.

  • 빈 문자열 itemIdentifier

  • null itemIdentifier

  • 키 이름이 잘못된 itemIdentifier

EventBridge 재시도 전략에 따라 실패를 재시도합니다.