기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Step Functions란 무엇입니까?
다음과 같이 AWS Step Functions워크플로우 (라고도 함) 를 생성하여 분산 애플리케이션을 구축하고상태 시스템, 프로세스를 자동화하고, 마이크로서비스를 오케스트레이션하고, 데이터 및 기계 학습 파이프라인을 생성할 수 있습니다.
Step Functions는 스테이트 머신과 태스크를 기반으로 합니다. Step Functions에서는 상태 머신을 워크플로라고 하며, 워크플로우는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 예를 들어, 작업 상태는 다른 작업의 단위를 나타냅니다. AWS 서비스가 수행하는 작업 (예: 다른 서비스 호출) AWS 서비스 또는API. 작업을 수행하는 워크플로를 실행하는 인스턴스를 Step Functions에서 실행이라고 합니다.
Step Functions 외부에 활동 있는 워커를 사용하여 스테이트 머신 태스크를 수행할 수도 있습니다.
Step Functions의 콘솔에서 애플리케이션의 워크플로를 시각화, 편집 및 디버그할 수 있습니다. 워크플로의 각 단계 상태를 검사하여 애플리케이션이 예상대로 순서대로 실행되는지 확인할 수 있습니다.
사용 사례에 따라 Step Functions를 호출할 수 있습니다. AWS Lambda와 같은 서비스를 사용하여 작업을 수행합니다. Step Functions를 제어할 수 있습니다. AWS 다음과 같은 서비스 AWS Glue, 추출, 변환 및 로드 워크플로를 만드는 데 사용됩니다. 또한 사람의 상호 작용이 필요한 애플리케이션을 위해 오래 실행되는 자동화된 워크플로를 만들 수 있습니다.
전체 목록은 다음과 같습니다. AWS Step Functions를 사용할 수 있는 지역은 다음을 참조하십시오. AWS
지역 표
Step Functions의 사용 방법 알아보기
Step Functions의 사용 방법을 알아보려면 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 실행 (.sync) 또는 콜백 대기 (. waitForTask토큰), 경우에 따라 두 가지를 모두 지원합니다. 자세한 내용은 다음의 최적화된 통합 표를 참조하십시오.
-
익스프레스 워크플로는 요청 응답 통합만 지원합니다.
두 유형 중 하나를 결정하는 데 도움이 필요하면 을 참조하십시오Step Functions에서 워크플로우 유형 선택.
AWS SDKStep Functions에서의 통합
통합 서비스 | 요청 및 응답 | 작업 실행 - .sync | 콜백 대기 -. waitForTask토큰 |
---|---|---|---|
200개 이상의 서비스 | 스탠다드 & 익스프레스 | 지원되지 않음 | 표준 |
Step Functions의 최적화된 통합
통합 서비스 | 요청 및 응답 | 작업 실행 - .sync | 콜백 대기 -. waitForTask토큰 |
---|---|---|---|
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가지 사용 사례를 보여줍니다.
-
작업 오케스트레이션 - 일련의 작업 또는 단계를 특정 순서로 오케스트레이션하는 워크플로를 만들 수 있습니다. 예를 들어, 작업 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개의 아이템을 주문하는 경우 시스템은 동일한 워크플로를 적용하여 각 아이템의 배송을 준비해야 합니다. 배송을 위해 모든 아이템을 모아 포장한 후 다음 단계는 추적 정보가 포함된 확인 이메일을 고객에게 신속하게 보내는 것일 수 있습니다.스타터 템플릿의 예는 을 참조하십시오맵을 사용하여 데이터 처리.