
[Compute] Step Functions 컨셉 노트
시험 빈출 Step functions 컨셉 노트
AWS Step Functions for SAA-C03
One-Line Summary
Step Functions는 여러 작업(주로 Lambda·ECS 등)을 정해진 순서·분기·병렬로 엮어 하나의 워크플로로 실행하고, 각 단계의 상태·재시도·오류 처리를 대신 관리해주는 서버리스 오케스트레이션이다. 다단계 작업과 15분을 넘는 장기 작업이 핵심 키워드다.
Why It Exists
여러 Lambda를 코드로 직접 호출해 이으면 상태 저장·재시도·오류 처리·진행 추적을 전부 직접 구현해야 하고 디버깅이 어렵다.
Step Functions는 이 오케스트레이션 로직을 선언적 워크플로로 분리한다.
Lambda들을 코드로 직접 연결
-> 상태/재시도/오류 처리/추적을 사람이 다 구현, 디버깅 어려움
Step Functions
-> 순서·분기·병렬을 상태 기계(State Machine)로 선언
-> 상태 추적·재시도·오류 처리·시각화를 서비스가 대신
시험 감각:
"여러 작업을 순서대로, 재시도·오류 처리까지 관리하며 조율" = Step Functions.
Abbreviations
| 약어 | 풀네임 | 의미 |
|---|---|---|
Step Functions | AWS Step Functions | 서버리스 워크플로 오케스트레이션 |
State Machine | State Machine | 워크플로를 상태(State)의 흐름으로 표현한 것 |
ASL | Amazon States Language | 워크플로를 정의하는 JSON 기반 언어 |
Retry | Retry | 실패 시 자동 재시도 규칙 |
Catch | Catch | 실패 시 대체 경로로 오류를 처리하는 규칙 |
어떻게 작업을 연결하고 무엇을 관리하나
Start -> [작업A] -> [조건 분기 Choice] -> [작업B] / [작업C] -> [병렬 Parallel] -> End
- 각 단계(State)의 순서·분기(Choice)·병렬(Parallel)·대기(Wait)를 선언적으로 정의
- 각 단계 실행 상태를 추적하고 시각화
- 실패하면 자동 재시도(Retry) / 대체 경로(Catch)로 오류 처리
- 상태 저장·재시도 로직을 사람이 코드로 관리할 필요 없음
| 항목 | 의미 |
|---|---|
| 목적 | 다단계 작업을 순서/분기/병렬로 조율 |
| 자동 관리 | 실행 상태 추적, 재시도(Retry), 실패 처리(Catch), 시각화 |
| 실행 시간 | Standard 워크플로 최대 1년 → Lambda의 15분 한계를 넘는 장기 작업 가능 |
| 언제 쓰나 | 다단계·조건·재시도가 필요한 비즈니스 프로세스, ETL, 주문 처리 등 |
Standard vs Express
| 구분 | Standard | Express |
|---|---|---|
| 최대 실행 시간 | 최대 1년 | 최대 5분 |
| 실행 보장 | 정확히 1회(exactly-once) | 최소 1회/at-most-once |
| 적합 | 장기·감사 필요한 워크플로 | 초고빈도·짧은 이벤트 처리 |
직접 서비스 통합 (Lambda가 전부는 아니다)
모든 단계를 Lambda로 감쌀 필요가 없다. Step Functions는 워크플로 단계에서 여러 AWS 서비스를 직접 호출할 수 있다. 단순 서비스 호출에 굳이 Lambda를 두면 코드·비용·유지보수만 늘어난다.
| 직접 호출 가능한 대표 서비스 | 용도 예시 |
|---|---|
Lambda | 커스텀 로직 실행 |
SQS / SNS | 메시지 전송·알림 |
DynamoDB | 항목 읽기/쓰기 |
ECS / AWS Batch | 컨테이너·배치 작업 실행 |
시험 감각:
"워크플로 단계에서 단순히 DynamoDB에 쓰거나 SNS로 알림" → Lambda 없이 Step Functions 직접 통합으로 충분.
왜 코드로 직접 엮지 않고 Step Functions인가
여러 Lambda를 코드로 이으면 상태·재시도·오류 처리·추적을 직접 구현해야 한다. Step Functions는 이를 서비스가 대신하고 시각적으로 추적하게 해줘, 장애 지점 파악과 유지보수가 쉬워진다.
시험 감각:
"작업이 15분을 넘는다" → Lambda 단독 대신 Step Functions로 오케스트레이션.
Common Wrong Directions
| 오답 방향 | 왜 부족한가 |
|---|---|
| 다단계 재시도/오류 처리를 Lambda 코드 안에 다 넣음 | 상태·재시도·분기 관리는 Step Functions가 정석 |
| 15분 넘는 다단계 작업을 Lambda 하나로 | Lambda는 15분 한계 → Step Functions로 장기 조율 |
| 단순 단일 함수 호출에 Step Functions 도입 | 한 단계뿐이면 오케스트레이션 불필요, Lambda로 충분 |
| 단순 서비스 호출마다 Lambda로 감쌈 | SQS/SNS/DynamoDB 등은 직접 통합으로 호출 가능 |
Exam Triggers
| 문제에서 이런 표현이 나오면 | 떠올릴 것 |
|---|---|
| "orchestrate multiple steps", "coordinate multiple Lambda functions" | Step Functions |
| "retry / error handling / state management" | Step Functions |
| "visualize workflow / audit each step" | Step Functions |
| "workflow runs longer than 15 minutes" | Step Functions (Standard) |
| "very high-volume short workflows" | Step Functions (Express) |
| "call SQS/SNS/DynamoDB from a workflow without Lambda" | Step Functions 직접 서비스 통합 |
Memory Sentence
Step Functions는 여러 작업을 상태 기계(ASL)로 순서·분기·병렬로 엮고 재시도·오류 처리·추적을 대신해준다. 다단계 조율이거나 15분 넘는 장기 작업이면 Step Functions(Standard 최대 1년, Express는 초고빈도·짧은 실행).
References
댓글
아직 댓글이 없습니다.