Amazon EventBridge Pipes 일괄 처리 및 동시성 - Amazon EventBridge

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

Amazon EventBridge Pipes 일괄 처리 및 동시성

일괄 처리 동작

EventBridge Pipes는 소스에서 그리고 이를 지원하는 타겟으로의 배칭을 지원합니다. 또한 및 에 대해 농축을 위한 일괄 처리가 지원됩니다. AWS Lambda AWS Step Functions서비스마다 지원하는 일괄 처리 수준이 다르기 때문에 대상에서 지원하는 것보다 더 큰 배치 크기로 파이프를 구성할 수 없습니다. 예를 들어 Amazon Kinesis 스트림 소스는 최대 10,000개의 레코드 배치 크기를 지원하지만 Amazon Simple Queue Service는 배치당 메시지를 최대 10개까지 대상으로 지원합니다. 따라서 Kinesis 스트림에서 Amazon SQS 대기열로 가는 파이프는 소스에서 구성된 최대 배치 크기가 10개일 수 있습니다.

일괄 처리를 지원하지 않는 보강 또는 대상으로 파이프를 구성하면 소스에서 일괄 처리를 활성화할 수 없습니다.

소스에서 일괄 처리가 활성화되면 JSON 레코드 배열이 파이프를 통해 전달된 다음 지원되는 보강 또는 API 대상의 배치에 매핑됩니다. 입력 변환기는 어레이 전체가 아닌 어레이의 각 개별 JSON 레코드에 개별적으로 적용됩니다. 이러한 배열의 예를 보려면 아마존 EventBridge 파이프 소스 섹션을 참조하여 특정 소스를 선택하세요. 배치 API 크기가 1인 경우에도 파이프는 지원되는 농축 또는 목표로 배치를 사용합니다. 보강 또는 대상에 일괄 처리가 API 없지만 Lambda 및 Step Functions와 같은 전체 JSON 페이로드를 수신하는 경우 JSON 전체 어레이가 요청 한 번으로 전송됩니다. 요청은 배치 크기가 1인 경우에도 JSON 배열로 전송됩니다.

파이프가 소스에서 일괄 처리되도록 구성되어 있고 대상이 배칭을 지원하는 경우 강화에서 JSON 항목 배열을 반환할 수 있습니다. 이 배열에는 원본 소스보다 짧거나 긴 배열이 포함될 수 있습니다. 그러나 배열이 대상에서 지원하는 배치 크기보다 크면 파이프가 대상을 간접 호출하지 않습니다.

지원되는 배치 가능 대상

대상 최대 배치 크기
CloudWatch 로그 10,000개
EventBridge 이벤트 버스 10
Firehose 스트림 500
Kinesis 스트림 500
Lambda 함수 고객 정의
Step Functions 상태 시스템 고객 정의
아마존 SNS 토픽 10
아마존 SQS 큐 10

다음 보강 및 대상은 처리를 위해 전체 배치 이벤트 페이로드를 수신하며 배치 크기가 아닌 이벤트의 총 페이로드 크기로 제한됩니다.

  • Step Functions 상태 시스템(262,144자)

  • Lambda 함수(6MB)

부분적 배치 실패

Amazon SQS 및 Kinesis 및 DynamoDB와 같은 스트림 소스의 경우 EventBridge Pipes는 대상 장애에 대한 부분 일괄 실패 처리를 지원합니다. 대상이 일괄 처리를 지원하는데 일괄 처리 중 일부만 성공하면 나머지 페이로드에 대한 일괄 처리를 EventBridge 자동으로 재시도합니다. 가장 up-to-date 풍부한 콘텐츠의 경우 구성된 보강을 다시 호출하는 것을 포함하여 전체 파이프를 통해 이러한 재시도가 이루어집니다.

보강에 대한 부분적 배치 장애 처리는 지원되지 않습니다.

Lambda 및 Step Functions 대상의 경우 대상에서 구조가 정의된 페이로드를 반환하여 부분 장애를 지정할 수도 있습니다. 이는 재시도해야 하는 이벤트를 나타냅니다.

부분 장애 페이로드 구조 예시

{ "batchItemFailures": [ { "itemIdentifier": "id2" }, { "itemIdentifier": "id4" } ]

이 예시에서 itemIdentifier는 대상이 원본 소스에서 처리한 이벤트의 ID와 일치합니다. 아마존의 SQS 경우 이것이 바로 messageId 그것입니다. Kinesis와 DynamoDB의 경우 eventID입니다. EventBridge Pipes가 대상의 부분적 배치 실패를 적절하게 처리하려면 이러한 필드를 보강에서 반환되는 모든 배열 페이로드에 포함해야 합니다.

처리량 및 동시성 동작

파이프가 수신하여 보강 또는 대상으로 이동하는 모든 이벤트 또는 이벤트 배치는 파이프 실행으로 간주됩니다. STARTED 상태에 있는 파이프는 소스의 이벤트를 지속적으로 폴링하여 사용 가능한 백로그와 구성된 일괄 처리 설정에 따라 규모를 확장하거나 축소합니다.

동시 파이프 실행에 대한 할당량, 계정 및 리전별 파이프 수에 대한 내용은 EventBridge 파이프 할당량 섹션을 참조하세요.

기본적으로 단일 파이프는 소스에 따라 다음과 같은 최대 동시 실행 수로 확장됩니다.

  • DynamoDB - 동시 실행은 파이프에 구성된 ParallelizationFactor에 스트림의 샤드 수를 곱한 만큼 증가할 수 있습니다.

  • Apache Kafka - 동시 실행은 주제에 대한 파티션 수를 최대 1,000개까지 늘릴 수 있습니다.

  • Kinesis - 동시 실행은 파이프에 구성된 ParallelizationFactor에 스트림의 샤드 수를 곱한 만큼 증가할 수 있습니다.

  • Amazon MQ – 5

  • 아마존 SQS — 1250

최대 폴링 처리량 또는 동시성 한도를 높이기 위한 요구 사항이 있는 경우 지원팀에 문의하세요.

참고

실행 한도는 최선의 안전 제한으로 간주됩니다. 폴링이 이러한 값 아래로 제한되지 않지만 파이프나 계정이 해당 권장 값보다 높게 버스트될 수 있습니다.

파이프 실행은 보강 및 대상 처리를 포함하여 최대 5분으로 제한됩니다. 현재 이 한도는 늘릴 수 없습니다.

Amazon SQS FIFO 대기열, Kinesis 및 DynamoDB Streams 또는 Apache Kafka 주제 등 소스가 엄격하게 정렬된 파이프는 대기열의 메시지 그룹 수 또는 Kinesis 대기열의 샤드 수와 같은 소스 구성에 따라 동시성이 추가로 제한됩니다. IDs FIFO 이러한 제약 조건 내에서 순서가 엄격하게 보장되므로 정렬된 소스가 있는 파이프는 이러한 동시성 한도를 초과할 수 없습니다.