Durable functions vs Step Functions
Durable functions vs Step Functions (Durable functions or Step Functions)
Lambda durable functions와 AWS Step Functions는 모두 자동 상태 관리와 장애 복구를 갖춘 안정적인 워크플로 오케스트레이션을 가능하게 해요. 둘은 서로 다른 개발자 선호와 아키텍처 패턴을 위한 것이에요. durable functions는 Lambda 내에서의 애플리케이션 개발에 최적화되어 있고, Step Functions는 AWS 서비스를 아우르는 워크플로 오케스트레이션을 위해 만들어졌어요.
본문
durable functions를 언제 쓸까
다음과 같은 경우 durable functions를 사용하세요.
- 팀이 표준 프로그래밍 언어와 익숙한 개발 도구를 선호하는 경우
- 애플리케이션 로직이 주로 Lambda 함수 안에 있는 경우
- 코드에서 실행 상태를 세밀하게 제어하고 싶은 경우
- 워크플로와 비즈니스 로직 사이에 긴밀한 결합이 있는 Lambda 중심 애플리케이션을 만드는 경우
- 코드와 비주얼/JSON 디자이너를 오가며 빠르게 반복하고 싶은 경우
Step Functions를 언제 쓸까
다음과 같은 경우 Step Functions를 사용하세요.
- 팀 간 가시성을 위한 시각적 워크플로 표현이 필요한 경우
- 여러 AWS 서비스를 오케스트레이션하며 커스텀 SDK 코드 없이 네이티브 통합을 원하는 경우
- 유지보수 없는 인프라(패치, 런타임 업데이트 없음)가 필요한 경우
- 비기술적인 이해관계자가 워크플로 로직을 이해하고 검증해야 하는 경우
결정 프레임워크
다음 질문으로 어떤 서비스가 사용 사례에 맞는지 판단하세요.
- 주된 초점이 무엇인가? Lambda에서의 애플리케이션 개발 → durable functions. AWS 전반의 워크플로 오케스트레이션 → Step Functions.
- 선호하는 프로그래밍 모델은? 표준 프로그래밍 언어 → durable functions. 그래프 기반 DSL 또는 비주얼 디자이너 → Step Functions.
- 관련 AWS 서비스가 몇 개인가? 주로 Lambda → durable functions. 여러 AWS 서비스 → Step Functions.
- 어떤 개발 도구를 쓰는가? Lambda 개발 환경, LLM 에이전트가 있는 IDE, 프로그래밍 언어별 단위 테스트 프레임워크, AWS SAM, AWS CDK, AWS Toolkit → durable functions. 비주얼 워크플로 빌더, 워크플로를 모델링하는 AWS CDK → Step Functions.
- 누가 인프라를 관리하는가? Lambda 내에서 유연성 원함 → durable functions. 완전 관리·무유지보수 원함 → Step Functions.
기능 비교
다음 표는 Step Functions와 Lambda durable functions의 주요 기능을 비교해요.
| 기능 | AWS Step Functions | Lambda durable functions |
|---|---|---|
| 주된 초점 | AWS 전반 워크플로 오케스트레이션 | Lambda에서의 애플리케이션 개발 |
| 서비스 유형 | 독립형 전용 워크플로 서비스 | Lambda 내에서 실행 |
| 프로그래밍 모델 | 그래프 기반, Amazon States Language DSL 또는 AWS CDK | 표준 프로그래밍 언어(JavaScript/TypeScript, Python) |
| 개발 도구 | 콘솔의 비주얼 빌더 / AWS Toolkit IDE 확장, AWS CDK | IDE와 LLM 에이전트 내 Lambda DX, 단위 테스트 프레임워크, AWS SAM, AWS Toolkit IDE 확장 |
| 통합 | 220+ AWS 서비스, 16k API | Lambda 이벤트 기반 프로그래밍 모델 확장(이벤트 소스) |
| 관리 | 완전 관리, 런타임 무관, 무유지보수(패치, 런타임 업데이트 없음) | Lambda 환경 내에서 관리 |
| 가장 잘 맞는 경우 | 비즈니스 프로세스·IT 자동화, 데이터 처리, AI 워크플로 | 분산 트랜잭션, 상태 있는 애플리케이션 로직, 함수 오케스트레이션, 데이터 처리, AI 워크플로 |
하이브리드 아키텍처
많은 애플리케이션은 두 서비스를 함께 사용할 때 이점을 얻어요. 흔한 패턴은 Lambda 내부의 애플리케이션 수준 로직에는 durable functions를 사용하고, Lambda 함수를 넘어 여러 AWS 서비스를 아우르는 상위 수준 워크플로는 Step Functions가 조율하는 것이에요.
마이그레이션 고려 사항
- 단순하게 시작, 복잡하게 진화: Lambda 중심 워크플로에는 durable functions로 시작하세요. 다중 서비스 오케스트레이션이나 비주얼 워크플로 설계가 필요해지면 Step Functions를 추가하세요.
- 기존 Step Functions 사용자: 기존 크로스 서비스 워크플로에는 Step Functions를 유지하세요. 신뢰성이 필요한 새 Lambda 애플리케이션 로직에는 durable functions를 고려하세요.
관련 리소스
- Lambda durable functions
- Step Functions로 Lambda 함수 오케스트레이션
- durable functions 시작하기