Lambda 함수가 100개를 넘기 시작하면 같은 질문이 반복된다. "이 함수가 끝나면 저 함수를 부르고, 실패하면 보상 트랜잭션을 돌리고, 30분 대기 후 사람의 승인을 기다리는 로직을 어디에 둘 것인가?" 답으로 SQS·SNS·EventBridge를 엮어 함수끼리 메시지를 주고받게 하면 곧 분산 디버깅 지옥이 시작된다. 어느 함수가 어느 메시지를 받았는지, 왜 retry가 두 번 발생했는지, 7번째 단계에서 왜 멈췄는지 — 추적이 거의 불가능하다.
Step Functions는 이 문제에 대한 AWS의 답이다. 2016년 12월에 출시된 이 서비스의 본질은 선언적 상태 머신 엔진으로, 워크플로의 모든 상태 전이를 ASL(Amazon States Language)이라는 JSON DSL로 기술하고, AWS가 실행·재시도·이력 추적을 보장한다. 개발자가 작성할 코드의 양이 90% 줄어들고, 무엇보다 모든 실행이 시각적 다이어그램으로 100% 추적 가능해진다.
오늘은 Standard와 Express의 본질적 차이, .waitForTaskToken이라는 외부 콜백 메커니즘, Distributed Map의 대용량 병렬 처리, 그리고 멀티 리전 배포 워크플로를 Step Functions로 표현하는 실전 패턴을 본다. DOP 시험은 "복잡한 배포 흐름" 시나리오에 거의 항상 Step Functions를 정답으로 두므로, 어느 패턴이 어떤 ASL 구조에 매핑되는지를 외워두는 게 중요하다.