기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Step Functions란 무엇입니까?
상태 관리 및 데이터 변환
Step Functions는 최근에 상태 및 변환 데이터를 관리하기 JSONata 위해 변수 및를 추가했습니다.
변수를 사용하여 데이터 전달 및 를 사용하여 데이터 변환에 JSONata대해 알아봅니다.
를 사용하면 라고도 하는 워크플로를 생성상태 시스템하여 분산 애플리케이션을 구축하고, 프로세스를 자동화하고, 마이크로서비스를 오케스트레이션하고, 데이터 및 기계 학습 파이프라인을 생성할 AWS Step Functions수 있습니다.
Step Functions는 상태 시스템과 작업에 기반합니다. Step Functions에서는 상태 시스템을 워크플로라고 하며, 이는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 예를 들어 작업 상태는 다른 AWS 서비스 또는를 호출하는 등 다른 AWS 서비스가 수행하는 작업 단위를 나타냅니다API. 작업을 수행하는 워크플로 실행 인스턴스를 Step Functions에서 실행이라고 합니다.
상태 시스템 작업에서의 작업은 Step Functions 외부에 있는 작업자 활동를 사용하여 수행할 수도 있습니다.

Step Functions 콘솔에서 애플리케이션의 워크플로를 시각화, 편집 및 디버깅할 수 있습니다. 워크플로의 각 단계 상태를 검사하여 애플리케이션이 순서대로 그리고 예상대로 실행되는지 확인할 수 있습니다.
사용 사례에 따라 Step Functions가 Lambda와 같은 AWS 서비스를 호출하여 작업을 수행하도록 할 수 있습니다. Step Functions가 추출, 변환 및 로드 워크플로를 생성하는 등의 AWS 서비스를 제어 AWS Glue하도록 할 수 있습니다. 또한 사람의 상호 작용이 필요한 애플리케이션을 위해 오래 실행되는 자동화된 워크플로를 만들 수 있습니다.
Step Functions를 사용할 수 있는 전체 AWS 리전 목록은 AWS 리전 테이블
Step Functions 사용 방법 알아보기
Step Functions를 사용하는 방법을 알아보려면 Step Functions 워크숍
표준 및 Express 워크플로 유형
Step Functions에는 두 가지 워크플로 유형이 있습니다.
-
표준 워크플로에서는 실행 내역과 시각적 디버깅을 보여주므로 감사가 가능한 장기 실행 워크플로에 적합합니다.
표준 워크플로는 워크플로를 정확히 1회 실행하며 최대 1년 동안 실행될 수 있습니다. 즉, 표준 워크플로의 각 단계는 정확히 1회 실행됩니다.
-
Express 워크플로는 스트리밍 데이터 처리 및 IoT 데이터 수집과 같은 워크로드에 high-event-rate 적합합니다.
Express 워크플로는 at-least-once 워크플로를 실행하며 최대 5분 동안 실행할 수 있습니다. 즉, Express 워크플로의 단계 하나 이상은 1회 넘게 실행되지만 워크플로의 각 단계는 최소 1회 이상 실행됩니다.
표준 워크플로 | Express 워크플로 |
---|---|
실행 속도 1초당 2,000 | 실행 속도 1초당 100,000 |
상태 전환 속도 1초당 4,000 | 무제한에 가까운 상태 전환 속도 |
상태 전환을 기준으로 요금 책정 | 실행 횟수 및 기간을 기준으로 요금 책정 |
실행 내역 및 시각적 디버깅 표시 | 로그 수준을 기반으로 실행 내역과 시각적 디버깅 표시 |
Step Functions의 실행 기록 참조 |
로 실행 기록 전송 CloudWatch |
모든 서비스와의 통합을 지원합니다. 일부 서비스와의 최적화된 통합을 지원합니다. |
모든 서비스와의 통합을 지원합니다. |
모든 서비스에 대한 요청 응답 패턴 지원 특정 서비스에서 작업 실행 및/또는 콜백 대기 패턴 지원(자세한 내용은 다음 섹션 참조) |
모든 서비스에 대한 요청 응답 패턴 지원 |
Step Functions 요금 및 워크플로 유형 선택에 대한 자세한 내용은 다음을 참조하세요.
다른 서비스와 통합
Step Functions는 여러 AWS 서비스와 통합됩니다. 다른 AWS 서비스를 호출하려면 두 가지 통합 유형을 사용할 수 있습니다.
-
AWS SDK 통합을 통해 상태 시스템에서 직접 모든 AWS 서비스를 호출할 수 있으므로 수천 가지 API 작업에 액세스할 수 있습니다.
-
최적화된 통합은 상태 시스템에서 이러한 서비스를 사용하기 위한 사용자 지정 옵션을 제공합니다.
Step Functions를 다른 서비스와 결합하는 데는 3가지 서비스 통합 패턴이 있습니다.
-
서비스를 호출하고 Step Functions가 HTTP 응답을 받은 후 다음 상태로 진행하도록 합니다.
-
서비스를 직접적으로 호출하고 작업이 완료될 때까지 Step Functions가 기다리도록 합니다.
-
작업 토큰(.waitForTaskToken)을 사용하여 콜백을 기다립니다.
작업 토큰이 포함된 서비스를 직접적으로 호출하고 작업 토큰이 콜백과 함께 반환될 때까지 Step Functions가 기다리도록 합니다.
표준 워크플로 및 Express 워크플로는 동일한 통합을 지원하지만 동일한 통합 패턴은 지원하지 않습니다.
-
표준 워크플로는 요청 응답 통합을 지원합니다. 특정 서비스는 작업 실행(.sync) 또는 콜백 대기(.waitForTaskToken)를 지원하며, 경우에 따라 둘 다 지원합니다. 자세한 내용은 다음 최적화된 통합 표를 참조하세요.
-
Express 워크플로는 요청 응답 통합을 지원합니다.
Step Functions에서 워크플로 유형 선택 섹션을 참조하면 두 유형 중 하나를 결정하는 데 도움이 됩니다.
AWS SDK Step Functions의 통합
통합 서비스 | 요청 및 응답 | 작업 실행 - .sync | 콜백 대기 - .waitForTaskToken |
---|---|---|---|
200개 이상의 서비스 | 표준 및 Express | 지원되지 않음 | 표준 |
Step Functions의 최적화된 통합
통합 서비스 | 요청 및 응답 | 작업 실행 - .sync | 콜백 대기 - .waitForTaskToken |
---|---|---|---|
Amazon API Gateway | 표준 및 Express | 지원되지 않음 | 표준 |
Amazon Athena | 표준 및 Express | 표준 | 지원되지 않음 |
AWS Batch | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon Bedrock | 표준 및 Express | 표준 | 표준 |
AWS CodeBuild | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon DynamoDB | 표준 및 Express | 지원되지 않음 | 지원되지 않음 |
Amazon ECS/Fargate | 표준 및 Express | 표준 | 표준 |
Amazon EKS | 표준 및 Express | 표준 | 표준 |
Amazon EMR | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon EMR on EKS | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon EMR Serverless | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon EventBridge | 표준 및 Express | 지원되지 않음 | 표준 |
AWS Glue | 표준 및 Express | 표준 | 지원되지 않음 |
AWS Glue DataBrew | 표준 및 Express | 표준 | 지원되지 않음 |
AWS Lambda | 표준 및 Express | 지원되지 않음 | 표준 |
AWS Elemental MediaConvert | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon SageMaker AI | 표준 및 Express | 표준 | 지원되지 않음 |
Amazon SNS | 표준 및 Express | 지원되지 않음 | 표준 |
Amazon SQS | 표준 및 Express | 지원되지 않음 | 표준 |
AWS Step Functions | 표준 및 Express | 표준 | 표준 |
워크플로 사용 사례의 예
Step Functions는 애플리케이션의 구성 요소와 로직을 관리하므로 코드 작성을 줄이고 애플리케이션을 빠르게 빌드하고 업데이트하는 데 집중할 수 있습니다. 다음 이미지는 Step Functions 워크플로에 대한 6가지 사용 사례를 보여줍니다.

-
작업 오케스트레이션 - 일련의 작업 또는 단계를 특정 순서로 오케스트레이션하는 워크플로를 생성할 수 있습니다. 예를 들어 작업 A는 작업 B의 다른 Lambda 함수에 대한 입력을 제공하는 Lambda 함수일 수 있습니다. 워크플로의 마지막 단계는 최종 결과를 제공합니다.
-
데이터를 기반으로 작업 선택 -
Choice
상태를 사용하면 Step Functions에서 상태 입력에 따라 결정을 내리도록 할 수 있습니다. 예를 들어 고객이 신용 한도 증가를 요청한다고 가정해 보겠습니다. 요청이 고객의 사전 승인된 신용 한도를 초과하는 경우 Step Functions에서 고객의 요청을 승인하기 위해 관리자에게 보내도록 할 수 있습니다. 요청이 고객의 사전 승인된 신용 한도보다 적은 경우 Step Functions에서 요청을 자동으로 승인하도록 할 수 있습니다. -
오류 처리(
Retry
/Catch
) - 실패한 작업을 다시 시도하거나 실패한 작업을 캡처하고 대체 단계를 자동으로 실행할 수 있습니다.예를 들어 고객이 사용자 이름을 요청한 후 검증 서비스에 대한 첫 번째 호출이 실패하여 워크플로에서 요청을 다시 시도할 수 있습니다. 두 번째 요청이 성공하면 워크플로를 진행할 수 있습니다.
또는 고객이 유효하지 않거나 사용할 수 없는 사용자 이름을 요청한 경우
Catch
문으로 인해 Step Functions 워크플로 단계에서 대체 사용자 이름을 제안할 수 있습니다.Retry
및Catch
의 예제는 Step Functions 워크플로의 오류 처리 섹션을 참조하세요. -
휴먼 인 더 루프 - Step Functions는 워크플로에 사람 승인 단계를 포함할 수 있습니다. 예를 들어 은행 고객이 친구에게 자금을 보내려고 한다고 가정해 보겠습니다. 콜백 및 작업 토큰을 사용하면 Step Functions에서 고객의 친구가 송금을 확인할 때까지 기다린 다음 Step Functions가 워크플로를 계속 진행하여 전송이 완료되었음을 은행 고객에게 알립니다.
예시는 Amazon SQS, Amazon SNS, Lambda를 사용하여 콜백 패턴 예제 생성에서 확인하십시오.
-
병렬 단계로 데이터 처리 - Step Functions는
Parallel
상태를 사용하여 입력 데이터를 병렬 단계로 처리할 수 있습니다. 예를 들어 한 고객이 시청자가 여러 장치에서 비디오를 시청할 수 있도록 비디오 파일을 여러 디스플레이 해상도로 변환해야 할 수 있습니다. 워크플로는 원본 비디오 파일을 여러 Lambda 함수로 보내거나 최적화된 AWS Elemental MediaConvert 통합을 사용하여 비디오를 여러 디스플레이 해상도로 동시에 처리할 수 있습니다. -
동적으로 데이터 요소 처리 - Step Functions는
Map
상태를 사용하여 데이터세트의 각 항목에 대해 일련의 워크플로 단계를 실행할 수 있습니다. 반복은 동시에 실행되므로 데이터세트를 빠르게 처리할 수 있습니다. 예를 들어, 고객이 30개의 품목을 주문할 때 시스템은 동일한 워크플로를 적용하여 각 품목을 배송할 준비를 해야 합니다. 모든 품목을 수거하여 배송을 위해 포장한 후 다음 단계로 고객에게 추적 정보가 포함된 확인 이메일을 신속하게 보내야 할 수 있습니다.스타터 템플릿 예시를 보려면 Map으로 데이터 처리 섹션을 참조하세요.