Amazon Web Services 한국 블로그

AWS Lambda, 신규 SQS 이벤트 소스 매핑 프로비저닝 모드로 이벤트 처리 향상

오늘은 AWS Lambda의 프로비저닝 모드를 Amazon Simple Queue Service(Amazon SQS) 이벤트 소스 매핑(ESM)이라는 새 특성과 함께 사용할 수 있도록 정식 출시한다는 소식을 알려드립니다. 이 특성을 사용하면 고객이 전용 폴링 리소스를 구성해 이벤트 기반 애플리케이션의 처리량을 최적화할 수 있습니다. 스케일링 속도가 3배 빨라지고 동시성이 16배 향상된 이 새 기능을 사용하면 짧은 지연 시간으로 이벤트를 처리하고, 갑작스러운 트래픽 급등에 더 효과적으로 대처하며, 이벤트 처리 리소스에 대한 정밀한 통제력을 유지할 수 있습니다.

최신 애플리케이션은 서비스가 이벤트 및 메시지를 통해 통신을 주고받는 이벤트 기반 아키텍처에 대한 의존도가 높습니다. Amazon SQS는 Lambda 함수에 보편적으로 사용되는 이벤트 소스입니다. 개발자는 이를 통해 느슨하게 결합된 확장 가능한 애플리케이션을 빌드할 수 있습니다. SQS ESM은 대기열 폴링과 함수 간접 호출을 자동으로 처리하지만, 성능 요구 사항이 엄격한 고객들로부터 폴링 동작에 대한 주도권을 강화해 달라는 요청이 접수되었습니다. 그래야 스파이크가 많은 트래픽 패턴에 대처하고 처리 지연 시간을 짧게 유지할 수 있기 때문입니다.

SQS ESM용 프로비저닝 모드는 이벤트 폴러를 도입해 이러한 요구 사항에 부응합니다. 이벤트 폴러란 예상되는 트래픽 패턴을 처리할 준비가 된 상태를 유지하는 전용 리소스입니다. 이러한 이벤트 폴러는 분당 동시 실행 최대 1,000건까지 자동으로 스케일업할 수 있고, 전보다 세 배 이상 빠른 속도로 이벤트 트래픽 급증을 처리할 수 있으며 최대 20,000개의 동시성을 제공하여 Lambda 함수로 이벤트 수백만 건을 처리하는 용량이 전보다 16배 많습니다. 이렇게 향상된 스케일링 동작을 이용하면 트래픽이 급증하더라도 고객이 예측 가능한 짧은 지연 시간을 유지하는 데 도움이 됩니다.

금융 서비스부터 게임 업체까지 다양한 업종의 엔터프라이즈에서 AWS Lambda를 Amazon SQS와 함께 사용해 미션 크리티컬 애플리케이션의 실시간 이벤트를 처리하고 있습니다. 대규모 온라인 게임 플랫폼과 금융 기관을 포함한 이러한 조직에서는 특히 사용량이 피크인 시간을 위주로 이벤트 기반 워크로드의 처리 시간을 1초 미만으로 일정하게 유지해야 합니다. SQS ESM의 프로비저닝 모드는 엄격한 성능 요구 사항에 부합하면서도 비용 조절을 유지하는 데 사용할 수 있는 기능입니다.

향상된 제어와 성능

프로비저닝 모드를 사용하면 SQS ESM의 이벤트 폴러 최소, 최대 숫자를 둘 다 구성할 수 있습니다. 각각의 이벤트 폴러는 Lambda 함수를 호출하기 전에 대기열 폴링, 이벤트 배칭, 필터링을 처리하는 컴퓨팅 단위입니다. 이벤트 폴러 한 개당 최대 초당 1MB의 처리량, 동시 간접 호출 최대 10건, 또는 초당 SQS 폴링 API 직접 호출 최대 10건까지 처리할 수 있습니다. 이벤트 폴러 최소 숫자를 설정하면 애플리케이션이 갑작스러운 트래픽 증가를 즉시 처리할 수 있는 기준 처리 용량을 유지하게 할 수 있습니다. 알려진 피크 워크로드 요구 사항을 처리하는 데 필요한 최소한의 이벤트 폴러를 설정하는 것이 좋습니다. 선택 사항인 최댓값 설정을 이용하면 총 처리량을 제한해 다운스트림 시스템에 과부하가 걸리지 않게 방지할 수 있습니다.

이 새로운 모드는 이벤트 기반 애플리케이션이 변동 폭이 큰 워크로드를 처리하는 방식을 대폭 개선합니다. 트래픽이 늘어나면 ESM이 몇 초 이내에 늘어나는 백로그를 탐지해 이벤트 폴러를 구성된 최솟값과 최댓값 사이에서 동적으로 규모를 조정하며, 이 작업을 처리하는 속도가 전보다 세 배 빠릅니다. 이렇게 향상된 스케일링 기능을 보완하고자 처리 용량을 대폭 늘렸습니다. 집계 트래픽의 경우 최대 2GB, 동시 요청의 경우 최대 20,000건까지 지원되어 이전에 가능했던 수준보다 16배 향상되었습니다. 바로 사용 가능한 이벤트 폴러 최소 숫자를 유지하면 애플리케이션이 예측 가능한 성능을 실현하고, 리소스 스케일업과 관련해 보통 발생하는 지연 없이 갑작스러운 트래픽 스파이크를 처리할 수 있습니다. 트래픽이 적은 기간에는 ESM이 구성된 이벤트 폴러 최소 숫자에 맞춰 스케일다운하므로, 반응성을 유지하면서 비용을 최적화할 수 있습니다.

직접 사용해 보기

AWS Management Console에서 프로비저닝 모드를 활성화하는 방법은 간단합니다. 이미 SQS 대기열과 Lambda 함수를 구성해 놓았어야 합니다. 시작하려면 Lambda 함수의 구성 탭에서 트리거를 선택하고 트리거 추가를 선택합니다. 이렇게 하면 트리거를 구성할 수 있는 사용자 인터페이스를 불러옵니다. 드롭다운 메뉴에서 소스로 SQS를 선택한 다음 사용하고자 하는 SQS 대기열을 선택하세요.

이제 이벤트 폴러 구성 아래에 프로비저닝 모드라는 새 옵션이 표시되어 있을 것입니다. 구성을 선택해 최소 이벤트 폴러최대 이벤트 폴러 설정을 표시합니다. 각각 기본값과 최솟값, 최댓값이 표시되어 있습니다.

SQS 프로비저닝 모드의 구성 패널

프로비저닝 모드를 구성하고 나면 트리거를 저장할 수 있습니다. 나중에 변경해야 하는 경우, AWS Lambda 구성 섹션의 트리거 탭 아래에서 현재 구성을 찾을 수 있고, 여기에서 현재 설정을 수정하면 됩니다.

SQS 프로비저닝된 폴러 구성

모니터링 및 관찰성

프로비저닝 모드 사용량은 Amazon CloudWatch 지표를 사용해 모니터링할 수 있습니다. ProvisionedPollers 지표에 1분의 시간 동안 활성 이벤트 폴러 처리 이벤트 수가 표시됩니다.

정식 출시

Lambda SQS ESM 프로비저닝 모드는 모든 상용 AWS 리전에서 오늘부터 사용할 수 있습니다. 이 특성은 AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 통해 사용하면 됩니다. 요금은 프로비저닝된 이벤트 폴러의 수와, 이벤트 폴러가 프로비저닝된 기간 기준이며 이벤트 폴러 단위(EPU)로 측정합니다. 각 EPU는 이벤트 폴러 한 개장 초당 최대 1MB의 처리량 용량을 지원하며, ESM당 이벤트 폴러 최소 개수는 2개입니다. EPU 요금에 관한 자세한 내용은 AWS 요금 페이지를 참조하세요.

SQS ESM 프로비저닝 모드에 관해 자세히 알아보려면 AWS Lambda 설명서를 참조하시기를 바랍니다. 오늘 바로 이벤트 처리 리소스에 대한 주도권을 강화하고 반응성이 우수한 이벤트 기반 애플리케이션을 빌드하세요.