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