Step Functions란 무엇입니까? - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Step Functions란 무엇입니까?

상태 관리 및 데이터 변환

Step Functions는 최근에 상태 및 변환 데이터를 관리하기 JSONata 위해 변수 및를 추가했습니다.

변수를 사용하여 데이터 전달를 사용하여 데이터 변환에 JSONata대해 알아봅니다.

를 사용하면 라고도 하는 워크플로를 생성상태 시스템하여 분산 애플리케이션을 구축하고, 프로세스를 자동화하고, 마이크로서비스를 오케스트레이션하고, 데이터 및 기계 학습 파이프라인을 생성할 AWS Step Functions수 있습니다.

Step Functions는 상태 시스템작업에 기반합니다. Step Functions에서는 상태 시스템을 워크플로라고 하며, 이는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 예를 들어 작업 상태는 다른 AWS 서비스 또는를 호출하는 등 다른 AWS 서비스가 수행하는 작업 단위를 나타냅니다API. 작업을 수행하는 워크플로 실행 인스턴스를 Step Functions에서 실행이라고 합니다.

상태 시스템 작업에서의 작업은 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가지 서비스 통합 패턴이 있습니다.

표준 워크플로 및 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가지 사용 사례를 보여줍니다.

다음 텍스트에 설명된 6가지 일반적인 워크플로 사용 사례의 시각적 예시입니다.

  1. 작업 오케스트레이션 - 일련의 작업 또는 단계를 특정 순서로 오케스트레이션하는 워크플로를 생성할 수 있습니다. 예를 들어 작업 A작업 B의 다른 Lambda 함수에 대한 입력을 제공하는 Lambda 함수일 수 있습니다. 워크플로의 마지막 단계는 최종 결과를 제공합니다.

  2. 데이터를 기반으로 작업 선택 - Choice 상태를 사용하면 Step Functions에서 상태 입력에 따라 결정을 내리도록 할 수 있습니다. 예를 들어 고객이 신용 한도 증가를 요청한다고 가정해 보겠습니다. 요청이 고객의 사전 승인된 신용 한도를 초과하는 경우 Step Functions에서 고객의 요청을 승인하기 위해 관리자에게 보내도록 할 수 있습니다. 요청이 고객의 사전 승인된 신용 한도보다 적은 경우 Step Functions에서 요청을 자동으로 승인하도록 할 수 있습니다.

  3. 오류 처리(Retry / Catch) - 실패한 작업을 다시 시도하거나 실패한 작업을 캡처하고 대체 단계를 자동으로 실행할 수 있습니다.

    예를 들어 고객이 사용자 이름을 요청한 후 검증 서비스에 대한 첫 번째 호출이 실패하여 워크플로에서 요청을 다시 시도할 수 있습니다. 두 번째 요청이 성공하면 워크플로를 진행할 수 있습니다.

    또는 고객이 유효하지 않거나 사용할 수 없는 사용자 이름을 요청한 경우 Catch 문으로 인해 Step Functions 워크플로 단계에서 대체 사용자 이름을 제안할 수 있습니다.

    RetryCatch의 예제는 Step Functions 워크플로의 오류 처리 섹션을 참조하세요.

  4. 휴먼 인 더 루프 - Step Functions는 워크플로에 사람 승인 단계를 포함할 수 있습니다. 예를 들어 은행 고객이 친구에게 자금을 보내려고 한다고 가정해 보겠습니다. 콜백 및 작업 토큰을 사용하면 Step Functions에서 고객의 친구가 송금을 확인할 때까지 기다린 다음 Step Functions가 워크플로를 계속 진행하여 전송이 완료되었음을 은행 고객에게 알립니다.

    예시는 Amazon SQS, Amazon SNS, Lambda를 사용하여 콜백 패턴 예제 생성에서 확인하십시오.

  5. 병렬 단계로 데이터 처리 - Step Functions는 Parallel 상태를 사용하여 입력 데이터를 병렬 단계로 처리할 수 있습니다. 예를 들어 한 고객이 시청자가 여러 장치에서 비디오를 시청할 수 있도록 비디오 파일을 여러 디스플레이 해상도로 변환해야 할 수 있습니다. 워크플로는 원본 비디오 파일을 여러 Lambda 함수로 보내거나 최적화된 AWS Elemental MediaConvert 통합을 사용하여 비디오를 여러 디스플레이 해상도로 동시에 처리할 수 있습니다.

  6. 동적으로 데이터 요소 처리 - Step Functions는 Map 상태를 사용하여 데이터세트의 각 항목에 대해 일련의 워크플로 단계를 실행할 수 있습니다. 반복은 동시에 실행되므로 데이터세트를 빠르게 처리할 수 있습니다. 예를 들어, 고객이 30개의 품목을 주문할 때 시스템은 동일한 워크플로를 적용하여 각 품목을 배송할 준비를 해야 합니다. 모든 품목을 수거하여 배송을 위해 포장한 후 다음 단계로 고객에게 추적 정보가 포함된 확인 이메일을 신속하게 보내야 할 수 있습니다.

    스타터 템플릿 예시를 보려면 Map으로 데이터 처리 섹션을 참조하세요.