Lambda 워크플로 및 이벤트 관리
Lambda 워크플로 및 이벤트 관리 (Managing Lambda workflows and events)
Lambda로 서버리스 애플리케이션을 구축할 때는 함수 실행을 오케스트레이션하고 이벤트를 처리할 방법이 필요한 경우가 많습니다. AWS는 Lambda 함수를 조정하기 위한 여러 접근 방식을 제공합니다:
- Lambda durable functions — Lambda 내에서 코드 우선(code-first) 워크플로 오케스트레이션
- AWS Step Functions — 여러 서비스에 걸친 시각적 워크플로 오케스트레이션
- Amazon EventBridge Scheduler 및 Amazon EventBridge — 이벤트 기반 아키텍처 및 스케줄링
이러한 접근 방식을 함께 통합할 수도 있습니다. 예를 들어 특정 이벤트가 발생할 때 durable functions 또는 Step Functions 워크플로를 트리거하도록 EventBridge Scheduler를 사용하거나, 정의된 실행 지점에서 EventBridge Scheduler로 이벤트를 게시하도록 워크플로를 구성할 수 있습니다. 이 섹션의 다음 주제는 이러한 오케스트레이션 옵션을 사용하는 방법에 대한 자세한 정보를 제공합니다.
본문
durable functions를 사용한 코드 우선 오케스트레이션
Lambda durable functions는 워크플로 오케스트레이션에 대한 코드 우선 접근 방식을 제공해 Lambda 함수 안에서 직접 상태 저장(stateful) 장기 실행 워크플로를 구축할 수 있게 합니다. 외부 오케스트레이션 서비스와 달리 durable functions는 워크플로 로직을 코드로 유지해 비즈니스 로직과 함께 버전 관리, 테스트, 유지 보수를 더 쉽게 합니다.
durable functions는 다음이 필요할 때 이상적입니다:
- 표준 프로그래밍 언어 사용 — JavaScript, Python 같은 친숙한 프로그래밍 언어로 워크플로 정의
- 장기 실행 프로세스 — 표준 Lambda 함수의 15분 한도를 훨씬 넘는 최대 1년까지 실행할 수 있는 워크플로 실행
- 간소화된 개발 — 워크플로 로직과 비즈니스 로직을 같은 코드베이스에 유지해 유지 보수와 테스트를 쉽게 수행
- 비용 효율적인 대기 — 컴퓨팅 리소스를 소비하지 않고 대기 상태 동안 실행 일시 중지
- 내장 상태 관리 — 외부 저장소 구성 없이 자동 체크포인트 및 상태 영속화
durable functions와 Step Functions 중 선택하는 데 도움이 필요하면 durable functions 또는 Step Functions를 참조하세요. durable functions에 대한 자세한 내용은 Lambda durable functions를 참조하세요.
Step Functions로 워크플로 오케스트레이션
AWS Step Functions는 여러 Lambda 함수와 기타 AWS 서비스를 구조화된 워크플로로 조정하는 데 도움이 되는 워크플로 오케스트레이션 서비스입니다. 이 워크플로는 상태를 유지하고 정교한 재시도 메커니즘으로 오류를 처리하며 대규모로 데이터를 처리할 수 있습니다.
Step Functions는 다양한 오케스트레이션 요구를 충족하기 위해 두 가지 유형의 워크플로를 제공합니다:
- 표준 워크플로(Standard workflows) — 정확히 한 번( exactly-once) 실행 의미 체계가 필요한 장기 실행 감사 가능한 워크플로에 이상적입니다. 최대 1년까지 실행할 수 있고 상세한 실행 기록을 제공하며 시각적 디버깅을 지원합니다. 주문 처리, 데이터 처리 파이프라인, 다단계 분석 작업 같은 프로세스에 적합합니다.
- 익스프레스 워크플로(Express workflows) — 높은 이벤트 속도, 짧은 기간의 워크로드를 위해 설계되었으며 적어도 한 번(at-least-once) 실행 의미 체계를 제공합니다. 최대 5분까지 실행할 수 있으며 대용량 이벤트 처리, 스트리밍 데이터 변환, IoT 데이터 수집 시나리오에 이상적입니다. 표준 워크플로에 비해 더 높은 처리량과 잠재적으로 더 낮은 비용을 제공합니다.
참고
Step Functions 워크플로 유형에 대한 자세한 내용은 Step Functions의 워크플로 유형 선택을 참조하세요.
이 워크플로 안에서 Step Functions는 병렬 처리를 위한 두 가지 유형의 Map 상태를 제공합니다:
- 인라인 Map(Inline Map) — 부모 워크플로의 실행 기록 안에서 JSON 배열의 항목을 처리합니다. 인라인 Map은 최대 40개의 동시 반복을 지원하며 더 작은 데이터 세트 또는 모든 처리를 단일 실행 안에 유지해야 할 때 적합합니다. 자세한 내용은 인라인 모드에서 Map 상태 사용을 참조하세요.
- 분산 Map(Distributed Map) — 256KiB를 초과하거나 40개 이상의 동시 반복이 필요한 데이터 세트를 반복해 대규모 병렬 워크로드 처리를 가능하게 합니다. 최대 10,000개의 병렬 자식 워크플로 실행을 지원하며 Amazon S3에 저장된 반정형 데이터(JSON, CSV 파일 등) 처리에 뛰어나 일괄 처리와 ETL 작업에 이상적입니다. 자세한 내용은 분산 모드에서 Map 상태 사용을 참조하세요.
이러한 워크플로 유형과 Map 상태를 결합하면 Step Functions는 소규모 작업부터 대규모 데이터 처리 파이프라인까지 복잡한 서버리스 애플리케이션을 오케스트레이션하기 위한 유연하고 강력한 도구 세트를 제공합니다.
Lambda를 Step Functions와 함께 사용하는 방법을 시작하려면 Step Functions로 Lambda 함수 오케스트레이션을 참조하세요.
EventBridge 및 EventBridge Scheduler로 이벤트 관리
Amazon EventBridge는 이벤트 기반 아키텍처를 구축하는 데 도움이 되는 이벤트 버스 서비스입니다. AWS 서비스, 통합 애플리케이션, SaaS(Software as a Service) 애플리케이션 간에 이벤트를 라우팅합니다. EventBridge Scheduler는 서버리스 스케줄러입니다. EventBridge Scheduler를 사용하면 하나의 중앙 서비스에서 작업을 생성, 실행, 관리하고 cron 및 rate 표현식을 사용해 일정에 따라 Lambda 함수를 호출하거나 일회성 호출을 구성할 수 있습니다.
Amazon EventBridge와 EventBridge Scheduler는 Lambda로 이벤트 기반 아키텍처를 구축하는 데 도움이 됩니다. EventBridge는 AWS 서비스, 통합 애플리케이션, SaaS 애플리케이션 간에 이벤트를 라우팅하는 반면, EventBridge Scheduler는 반복 또는 일회성으로 Lambda 함수를 호출하는 특정 스케줄링 기능을 제공합니다.
이러한 서비스는 Lambda 함수를 다루기 위한 몇 가지 주요 기능을 제공합니다:
- EventBridge를 사용해 이벤트와 일치하고 Lambda 함수로 라우팅하는 규칙 생성
- EventBridge Scheduler로 cron 및 rate 표현식을 사용해 반복 함수 호출 설정
- 특정 날짜와 시간에 일회성 함수 호출 구성
- 예약된 호출에 대한 유연한 시간 창과 재시도 정책 정의
자세한 내용은 일정에 따라 Lambda 함수 호출을 참조하세요.
더 알아보기 (Learn more)
- Lambda durable functions
- AWS Step Functions 워크플로 유형
- Amazon EventBridge 및 EventBridge Scheduler