Kafka 이벤트 소스의 저지연 처리
AWS Lambda는 100밀리초 미만의 일관된 종단 간 지연 시간이 요구되는 애플리케이션에 대해 저지연 이벤트 처리를 기본적으로 지원합니다. 이 페이지에서는 지연 시간이 짧은 워크플로를 활성화하기 위한 구성 세부 정보와 권장 사항을 제공합니다.
저지연 처리 활성화
Kafka 이벤트 소스 매핑에서 저지연 처리를 활성화하려면 다음과 같은 기본 구성이 필요합니다.
-
프로비저닝된 모드를 활성화합니다. 자세한 내용은 프로비저닝된 모드 구성 섹션을 참조하세요.
-
이벤트 소스 매핑의
MaximumBatchingWindowInSeconds
파라미터를 0으로 설정합니다. 자세한 내용은 일괄 처리 동작 섹션을 참조하세요.
지연 시간이 짧은 Kafka ESM 미세 조정
짧은 지연 시간을 위해 Kafka 이벤트 소스 매핑을 최적화하려면 다음 권장 사항을 고려하세요.
프로비저닝 모드 구성
Kafka 이벤트 소스 매핑을 위해 프로비저닝 모드에서 Lambda를 사용하면 이벤트 폴러라는 리소스의 최소 및 최대 개수를 구성하여 이벤트 소스 매핑의 처리량을 미세 조정할 수 있습니다. 이벤트 폴러(또는 폴러)는 프로비저닝 모드에서 이벤트 소스 매핑을 뒷받침하고 최대 5MB/s의 처리량을 할당하는 컴퓨팅 리소스를 의미합니다. 각 이벤트 폴러는 최대 5개의 동시 Lambda 간접 호출을 지원합니다.
애플리케이션에 대한 최적의 폴러 구성을 결정할 때 최대 수집 속도와 처리 요구 사항을 고려하세요. 간소화된 예시를 살펴보겠습니다.
배치 크기가 레코드 20개이고 대상 함수의 평균 시간이 50ms인 경우 각 폴러는 5MB/s 제한에 따라 초당 2,000개의 레코드를 처리할 수 있습니다. 이는 (레코드 20개 × 1,000ms/50ms) × 동시 Lambda 간접 호출 5개로 계산됩니다. 따라서 원하는 최대 수집 속도가 초당 20,000개의 레코드인 경우 최소 10개의 이벤트 폴러가 필요합니다.
참고
지속적으로 최대 용량으로 작동하지 않도록 버퍼용 이벤트 폴러를 추가로 프로비저닝하는 것이 좋습니다.
프로비저닝된 모드는 구성된 최소 및 최대 이벤트 폴러 내에서 트래픽 패턴에 따라 이벤트 폴러를 자동으로 조정하므로 리밸런싱을 트리거할 수 있으며 이에 따라 추가 지연 시간이 발생할 수 있습니다. 최소 및 최대 이벤트 폴러에 대해 동일한 값을 구성하여 오토 스케일링을 비활성화할 수 있습니다.
추가 고려 사항
몇 가지 추가 고려 사항은 다음과 같습니다.
Lambda 대상 함수를 간접 호출하여 콜드 스타트를 수행하면 종단 간 지연 시간이 늘어날 수 있습니다. 이 위험을 줄이려면 이벤트 소스 매핑의 대상 함수에서 프로비저닝된 동시성 또는 SnapStart를 활성화하는 것이 좋습니다. 또한 함수의 메모리 할당을 최적화하여 일관된 최적의 실행을 보장합니다.
-
MaximumBatchingWindowInSeconds
가 0으로 설정되면 Lambda가 전체 배치 크기를 채울 때까지 기다리지 않고 사용 가능한 레코드를 즉시 처리합니다. 예를 들어 배치 크기가 레코드 1,000개로 설정되었지만 레코드 100개만 사용할 수 있는 경우 Lambda는 전체 1,000개의 레코드가 누적될 때까지 기다리지 않고 해당 레코드 100개를 즉시 처리합니다.
중요
저지연 처리를 위한 최적의 구성은 특정 워크로드에 따라 크게 달라집니다. 실제 워크로드로 다양한 구성을 테스트하여 사용 사례에 가장 적합한 설정을 결정하는 것이 좋습니다.