기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Step Functions란 무엇입니까?
를 사용하면 스테이트 머신이라고도 하는 워크플로를 만들어 분산 애플리케이션을 구축하고, 프로세스를 자동화하고, 마이크로서비스를 오케스트레이션하고, 데이터 및 기계 학습 파이프라인을 생성할 수 있습니다. AWS Step Functions
Step Functions는 스테이트 머신과 태스크를 기반으로 합니다. Step Functions에서는 상태 머신을 워크플로라고 하며, 워크플로우는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 예를 들어 작업 상태는 다른 AWS 서비스가 수행하는 작업 단위 (예: 다른 서비스 AWS 서비스 또는 호출) 를 나타냅니다API. 작업을 수행하는 워크플로를 실행하는 인스턴스를 Step Functions에서 실행이라고 합니다.
![Step Functions 워크플로우 다이어그램의 예시입니다.](images/step-functions-example.png)
Step Functions의 콘솔에서 애플리케이션의 워크플로를 시각화, 편집 및 디버그할 수 있습니다. 워크플로의 각 단계 상태를 검사하여 애플리케이션이 예상대로 순서대로 실행되는지 확인할 수 있습니다.
사용 사례에 따라 Step Functions가 Lambda와 같은 AWS 서비스를 호출하여 작업을 수행하도록 할 수 있습니다. Step Functions를 사용하여 워크플로를 추출 AWS Glue, 변환 및 로드하는 등의 제어 AWS 서비스를 사용할 수 있습니다. 또한 사람의 상호 작용이 필요한 애플리케이션을 위해 오래 실행되는 자동화된 워크플로를 만들 수 있습니다.
Step Functions를 사용할 수 있는 전체 AWS 지역 목록은 AWS
지역 표를
Step Functions의 사용 방법 알아보기
Step Functions의 사용 방법을 알아보려면 AWS Step Functions 워크숍의
표준 및 익스프레스 워크플로우 유형
Step Functions에는 다음과 같은 두 가지 워크플로 유형이 있습니다.
-
표준 워크플로는 실행 기록과 시각적 디버깅을 보여주기 때문에 감사가 가능한 장기 실행 워크플로에 적합합니다.
표준 워크플로는 정확히 한 번만 워크플로를 실행하며 최대 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 |
Support는 모든 서비스와의 통합을 지원합니다. 일부 서비스와의 최적화된 통합을 지원합니다. |
Support는 모든 서비스와의 통합을 지원합니다. |
모든 서비스에 대한 Support 요청 응답 패턴 특정 서비스에서 Job 실행 및/또는 콜백 대기 패턴 지원 (자세한 내용은 다음 섹션 참조) |
모든 서비스에 대한 Support 요청 응답 패턴 |
Step Functions 가격 책정 및 워크플로 유형 선택에 대한 자세한 내용은 다음을 참조하십시오.
다른 서비스와 통합
Step Functions는 여러 AWS 서비스와 통합됩니다. 다른 AWS 서비스를 호출하려면 다음 두 가지 통합 유형을 사용할 수 있습니다.
-
AWS SDK통합을 통해 상태 머신에서 직접 모든 AWS 서비스를 호출할 수 있으므로 수천 개의 API 작업에 액세스할 수 있습니다.
-
최적화된 통합은 상태 머신에서 해당 서비스를 사용하기 위한 사용자 지정 옵션을 제공합니다.
Step Functions를 다른 서비스와 결합하기 위한 세 가지 서비스 통합 패턴이 있습니다.
-
서비스를 호출하고 Step Functions가 HTTP 응답을 받은 후 다음 상태로 진행하도록 합니다.
-
서비스를 직접적으로 호출하고 작업이 완료될 때까지 Step Functions가 기다리도록 합니다.
-
태스크 토큰이 포함된 콜백이 올 때까지 기다려 주세요 (. waitForTask토큰)
작업 토큰이 포함된 서비스를 직접적으로 호출하고 작업 토큰이 콜백과 함께 반환될 때까지 Step Functions가 기다리도록 합니다.
표준 워크플로와 익스프레스 워크플로는 동일한 통합을 지원하지만 동일한 통합 패턴은 지원하지 않습니다.
익스프레스 워크플로는 요청 응답을 지원하지만 Job Run a Job (.sync) 또는 콜백 대기 (. waitForTask토큰).
자세한 내용은 Step Functions에서 워크플로우 유형 선택 단원을 참조하십시오.
Step AWS SDK Functions에서 지원되는 통합
Service | 요청 및 응답 | 작업 실행(.sync) | 콜백 대기(.waitForTaskToken) |
---|---|---|---|
200개 이상의 서비스 | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
Step Functions에서 지원되는 최적화된 통합
Service | 요청 및 응답 | 작업 실행(.sync) | 콜백 대기(.waitForTaskToken) |
---|---|---|---|
Amazon API Gateway | 스탠다드 및 익스프레스 | 지원되지 않음 | 표준 |
Amazon Athena | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
AWS Batch | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon Bedrock | 스탠다드 & 익스프레스 | 표준 | 표준 |
AWS CodeBuild | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon DynamoDB | 스탠다드 & 익스프레스 | 지원되지 않음 | 지원되지 않음 |
Amazon ECS/Fargate | 스탠다드 & 익스프레스 | 표준 | 표준 |
Amazon EKS | 스탠다드 & 익스프레스 | 표준 | 표준 |
Amazon EMR | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon EMR on EKS | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon EMR Serverless | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon EventBridge | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
AWS Glue | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
AWS Glue DataBrew | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
AWS Lambda | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
AWS Elemental MediaConvert | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
Amazon SageMaker | 스탠다드 & 익스프레스 | 표준 | 지원되지 않음 |
아마존 SNS | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
Amazon SQS | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
AWS Step Functions | 스탠다드 & 익스프레스 | 표준 | 표준 |
워크플로우 사용 사례 예시
Step Functions는 애플리케이션의 구성 요소와 로직을 관리하므로 코드 작성을 줄이고 애플리케이션을 빠르게 빌드하고 업데이트하는 데 집중할 수 있습니다. 다음 이미지는 Step Functions 워크플로의 6가지 사용 사례를 보여줍니다.
![다음 텍스트에 설명된 6가지 일반적인 워크플로 사용 사례의 시각적 예.](images/use-case-examples.png)
-
작업 오케스트레이션 - 일련의 작업 또는 단계를 특정 순서로 오케스트레이션하는 워크플로를 만들 수 있습니다. 예를 들어, 작업 A는 작업 B의 다른 Lambda 함수에 대한 입력을 제공하는 Lambda 함수일 수 있습니다. 워크플로의 마지막 단계에서 최종 결과를 제공합니다.
-
데이터를 기반으로 작업 선택 —
Choice
상태를 사용하면 Step Functions가 상태 입력을 기반으로 결정을 내리도록 할 수 있습니다. 예를 들어, 고객이 신용 한도 증가를 요청한다고 가정해 보겠습니다. 요청이 고객의 사전 승인된 신용 한도를 초과하는 경우 Step Functions에서 고객의 요청을 승인하기 위해 관리자에게 보내도록 할 수 있습니다. 요청이 고객의 사전 승인된 신용 한도보다 적은 경우 Step Functions에서 요청을 자동으로 승인하도록 할 수 있습니다. -
오류 처리 (
Retry
/Catch
) - 실패한 작업을 다시 시도하거나, 실패한 작업을 캐치하고 대체 단계를 자동으로 실행할 수 있습니다.예를 들어 고객이 사용자 이름을 요청한 후 검증 서비스에 대한 첫 번째 호출이 실패하여 워크플로에서 요청을 재시도할 수 있습니다. 두 번째 요청이 성공하면 워크플로를 진행할 수 있습니다.
또는 고객이 유효하지 않거나 사용할 수 없는 사용자 이름을 요청한 경우 다른 사용자 이름을 제안하는 Step Functions 워크플로 단계로 이어질 수 있습니다.
Catch
Retry
및 의 예는Catch
을 참조하십시오Step Functions 워크플로의 상태 오류 처리. -
휴먼 인 더 루프 — Step Functions는 워크플로우에 사람의 승인 단계를 포함할 수 있습니다. 예를 들어, 은행 고객이 친구에게 자금을 송금하려고 한다고 가정해 보겠습니다. 콜백 및 태스크 토큰을 사용하면 고객 친구가 송금을 확인할 때까지 Step Functions가 대기하도록 할 수 있습니다. 그러면 Step Functions가 워크플로우를 계속하여 은행 고객에게 송금이 완료되었음을 알립니다.
예시는 AmazonSQS, AmazonSNS, Lambda를 사용하여 콜백 패턴 예제 만들기에서 확인하십시오.
-
병렬 처리 — Step Functions는
Parallel
상태를 사용하여 입력을 병렬로 처리할 수 있습니다. 예를 들어, 시청자가 여러 장치에서 비디오를 시청할 수 있도록 고객이 비디오 파일을 여러 디스플레이 해상도로 변환해야 할 수 있습니다. 워크플로우는 원본 비디오 파일을 여러 Lambda 함수로 전송하거나 AWS Elemental MediaConvert 최적화된 통합을 사용하여 비디오를 동시에 여러 디스플레이 해상도로 처리할 수 있습니다. -
동적 병렬 처리 — Step Functions는
Map
상태를 사용하여 데이터세트의 각 항목에 대해 일련의 워크플로 단계를 실행할 수 있습니다. 반복이 병렬로 실행되므로 데이터세트를 빠르게 처리할 수 있습니다. 예를 들어 고객이 30개의 아이템을 주문하는 경우 시스템은 동일한 워크플로를 적용하여 각 아이템의 배송을 준비해야 합니다. 배송을 위해 모든 아이템을 모아 포장한 후 다음 단계는 추적 정보가 포함된 확인 이메일을 고객에게 신속하게 보내는 것일 수 있습니다.스타터 템플릿의 예는 을 참조하십시오맵을 사용하여 데이터를 동적으로 처리합니다..