 |
|
안녕하세요, AI 서비스 & 솔루션 프로바이더 베스핀글로벌입니다.
AWS re:Invent 2025의 [Simplifying orchestrations with JSONata and AWS Step Functions]을 확인해보시기 바랍니다.
|
☑️ Keynote
| 세션명 |
Simplifying orchestrations with JSONata and AWS Step Functions |
| 세션코드 |
API323 |
| 발표일자 |
2025.12.10 |
| 강연자 |
Ishita Chakraborty |
| 키워드 |
1. AWS Step Functions: 로우 코드 시각적 워크플로우 서비스, 오케스트레이션, 오류 처리, 재시도
2. JSONata: JSON의 경량 쿼리 및 변환 언어, 오픈 소스, XPath에서 영감, 네이티브 통합
3. 오케스트레이션 간소화 (Simplification): Step Functions와 JSONata를 활용하여 워크플로우를 단순화
4. Lambda 확산 (Lambda Sprawl): 불필요하게 많은 Lambda 함수 사용으로 발생하는 문제점
5. SDK 최적화 통합 (Optimized Service Integration): Step Functions에서 AWS 서비스를 직접 호출하는 기능 (예: DynamoDB, SNS)
6. 데이터 변환 및 조작 (Data Transformation/Manipulation): JSONata의 주요 기능
7. GenAI 에이전트 워크플로우 (Generative AI Agent Workflow): 생성형 AI 및 LLM을 활용한 자율 워크플로우
8. Amazon Q Developer: JSONata 쿼리 작성을 돕는 도구 |
| 핵심 내용 및 요약 |
ㆍ배경: 기존 Step Functions 아키텍처는 데이터 변환을 위해 다수의 Lambda 함수(Lambda 확산)를 사용하여 유지 관리의 어려움, 지연 시간, 비용 증가 등의 문제를 겪었습니다.
ㆍ해결책 (JSONata 도입): 경량 쿼리 및 변환 언어인 JSONata를 Step Functions와 네이티브로 통합하여 데이터 변환, 집계, 조작 등의 복잡한 작업을 Step Functions 내에서 직접 처리합니다.
ㆍ간소화 전략:
- Lambda 제거: 변환 Lambda 함수를 JSONata로 대체하고, 직접 HTTPS API 호출을 사용합니다.
- SDK 통합 활용: SDK 최적화 통합(예: SNS 게시, DynamoDB 직접 호출)을 사용하고, JSONata로 페이로드를 조작하여 데이터 집계 및 분석을 수행합니다.
- 생성형 AI 워크플로우 적용: GenAI 에이전트 워크플로우에서도 복잡한 변환을 Step Functions 내에서 JSONata로 처리하여 Lambda 의존성을 줄입니다.
ㆍ결과: 람다 종속성을 줄임으로써 유지 관리 간소화, 지연 시간 단축, 비용 절감, 워크플로우 가독성 향상을 달성합니다. |
|
Simplifying orchestrations with JSONata and AWS Step Functions
AWS Step Functions와 JSONata를 활용하여 오케스트레이션 및 워크플로우를 간소화하는 방법에 대해 소개합니다.
|
1. AWS Step Functions 소개 및 기존 접근 방식의 문제점
- Step Functions 정의: AWS 서비스 및 외부 API에 대한 오케스트레이션을 제공하는 로우 코드 시각적 워크플로우 서비스입니다. 병렬, 반복, 휴먼 워크플로우, 장기 실행 등을 지원하며 오류 처리, 재시도, 모니터링 기능이 내장되어 있습니다.
- 일반적인 사용 사례: ETL 시나리오 자동화, 보안 및 IT 자동화, 마이크로서비스 오케스트레이션입니다.
- 기존 접근 방식 (문제점):
- 주식 거래 워크플로우 예시: 주가 확인, 인간 승인, 매수/매도 등의 단계에 각각 Lambda 함수 호출
- 문제: Lambda 확산 (많은 Lambda 함수), 기존 Step Functions의 제한적인 데이터 변환 기능 (JSONPath), 유지 관리 문제 (CI/CD, 폐기 관리), 지연 시간 및 비용 증가

2. JSONata를 활용한 간소화 전략
2-1. JSONata 소개
- 특징: JSON을 위한 경량 쿼리 및 변환 언어, 오픈 소스, XPath 기반. JSON 객체 및 배열 탐색, 평면화, 내장 연산자/함수(숫자, 부울, 문자열) 제공, 사용자 정의 함수 생성이 가능합니다.
- 장점: AWS Step Functions와 네이티브 통합되어 별도의 추가 작업 없이 사용 가능합니다.
2-2. 전략 1: Lambda 제거 및 HTTPS API 직접 호출
- 방법: 기존의 Lambda 함수를 제거하고 Step Functions 내에서 JSONata를 사용하여 페이로드를 최종 시스템에 맞게 변환하면서 직접 HTTPS API를 호출합니다.
- 결과: Lambda 확산이 없어지고, 페이로드 변경 및 구성이 용이해집니다.
2-3. 전략 2: 데이터 집계 및 분석 (SDK 최적화 통합 활용)
- 시나리오: 주식 거래 결과를 집계하고 보고서로 생성하는 데이터 분석 시나리오
- JSONata 활용: 장기/단기 거래 변수 정의, 구매 시점에 따른 필터링, 거래 건수/매도 가치/손익 계산 등 복잡한 수치 계산과 문자열 조작을 Step Functions ASL 내의 JSONata로 직접 수행합니다.
- 서비스 통합: SNS 게시와 같은 최적화된 서비스 통합을 사용하여 보고서를 전송하며, 이 과정에서 JSONata로 모든 복잡한 변환을 처리합니다.
2-4. 전략 3: DynamoDB 직접 SDK 호출 및 Amazon Q 활용)
- 시나리오: 거래 데이터를 DynamoDB에 유지하고 싶을 때
- 문제점: DynamoDB는 특정 형식의 구조(형식이 지정된 방식)를 요구합니다.
- 해결책: JSONata를 사용하여 DynamoDB가 예상하는 정확한 입력 구조로 페이로드를 변환합니다.
- 개발 보조: Amazon Q Developer를 Visual Studio Code IDE에서 사용하여 자연어 쿼리로 DynamoDB 입력-출력에 맞는 복잡한 JSONata 쿼리를 쉽게 생성하고 테스트할 수 있습니다.
- 결과: Step Functions 내에서 직접 SDK 호출을 수행하고 JSONata로 페이로드를 조작하여 단일 단계 내에서 DynamoDB 삽입을 처리할 수 있으며, 이 모든 과정에서 Lambda 함수가 필요 없습니다.

3. 간소화된 오케스트레이션의 이점
- 유지 관리 간소화: 지속적인 런타임 유지 관리, CI/CD 파이프라인, 폐기 관리가 필요한 Lambda 의존성이 감소합니다.
- 지연 시간 단축: Step Functions 내에서 직접 호출이 이루어져 지연 시간이 짧아집니다.
- 비용 절감: 추가적인 Lambda 비용 지불이 불필요합니다.
- 워크플로우 가독성 및 유지 관리성 향상: 모든 것이 Step Functions 내에 내장되어 처리됩니다.

4. 생성형 AI 에이전트 워크플로우에 적용
- 적용: Step Functions를 사용하여 LLM 기반의 자율 생성형 AI 에이전트 워크플로우를 구축 가능합니다 (예: 소셜 미디어 콘텐츠 용도 변경 에이전트).
- 핵심: Bedrock 런타임 호출과 같은 직접 통합을 사용하여 많은 Lambda 함수를 대체하고, Step Functions 자체 내에서 JSONata를 사용하여 상당히 복잡한 변환을 수행함으로써 아키텍처를 단순화합니다.

5. 결론
- JSONata는 Lambda 함수가 수행하던 많은 변환을 대체하여 데이터 조작의 대기 시간과 비용을 줄이고, 워크플로우의 가독성 및 유지 관리성을 향상시키는 "최신 커피 머신"과 같습니다.
|
| |
|
|