AWS Step Functions란 무엇인가요? - AWS Step Functions

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

AWS Step Functions란 무엇인가요?

AWS Step Functions는 중요 비즈니스용 애플리케이션을 빌드하도록 AWS Lambda 함수와 기타 AWS 서비스 서비스와 통합할 수 있게 해주는 서버리스 오케스트레이션 서비스입니다. Step Functions 그래픽 콘솔에서는 애플리케이션 워크플로를 일련의 이벤트 기반 단계로 표시합니다.

Step Functions는 상태 시스템과 작업에 기반합니다. Step Functions에서는 워크플로를 상태 시스템이라고 하며, 이는 일련의 이벤트 기반 단계입니다. 워크플로의 각 단계를 상태라고 합니다. 작업 상태는 AWS Lambda와 같은 다른 AWS 서비스에서 수행하는 작업 단위를 나타냅니다. Task 상태는 임의 AWS 서비스 또는 API를 직접적으로 호출할 수 있습니다.

Step Functions의 기본 제공 컨트롤을 사용하여 워크플로의 각 단계 상태를 검사하여 애플리케이션이 순서대로 그리고 예상대로 실행되는지 확인합니다. 사용 사례에 따라 Step Functions에서 Lambda와 같은 AWS 서비스를 직접적으로 호출하여 작업을 수행하도록 할 수 있습니다. 기계 학습 모델을 처리하고 게시하는 워크플로를 만들 수 있습니다. Step Functions에서 AWS Glue와 같은 AWS 서비스를 제어하여 추출, 전환, 적재(ETL) 워크플로를 만들도록 할 수 있습니다. 또한 사람의 상호 작용이 필요한 애플리케이션을 위해 오래 실행되는 자동화된 워크플로를 만들 수 있습니다.

작은 정보

일련의 대화형 모듈을 통해 Step Functions의 주요 기능에 익숙해지려면 AWS Step Functions 워크숍을 참조하세요. 또는 이러한 시작하기 자습서를 수행하여 Step Functions를 사용해 신용 카드 신청 워크플로를 만듭니다.

AWS SDK 및 최적화된 통합

다른 AWS 서비스를 직접적으로 호출하려면 Step Functions의 AWS SDK 통합을 사용하거나 Step Functions의 최적화된 통합 중 하나를 사용하면 됩니다.

  • AWS SDK 통합을 사용하면 상태 시스템에서 200개가 넘는 AWS 서비스를 직접적으로 호출하여 API 작업 9,000개 이상에 액세스할 수 있습니다.

  • Step Functions의 최적화된 통합은 상태 시스템에서의 사용을 간소화하도록 사용자 지정되었습니다.

표준 및 Express 워크플로

Step Functions에는 두 가지 워크플로 유형이 있습니다. 표준 워크플로는 워크플로를 정확히 1회 실행하며 최대 1년 동안 실행될 수 있습니다. 즉, 표준 워크플로의 각 단계는 정확히 1회 실행됩니다. 하지만 Express 워크플로는 워크플로를 최소 1회 이상 실행하며 최대 5분 동안 실행될 수 있습니다. 즉, Express 워크플로의 단계 하나 이상은 1회 넘게 실행되지만 워크플로의 각 단계는 최소 1회 이상 실행됩니다.

실행은 워크플로를 실행하여 작업을 수행하는 인스턴스입니다. 표준 워크플로에서는 실행 내역과 시각적 디버깅을 보여주므로 감사가 가능한 장기 실행 워크플로에 적합합니다. Express 워크플로는 스트리밍 데이터 처리 및 IoT 데이터 모으기와 같이 이벤트 속도가 높은 워크로드에 적합합니다.

표준 워크플로 사양

  • 실행 속도 1초당 2,000

  • 상태 전환 속도 1초당 4,000

  • 상태 전환을 기준으로 요금 책정

  • 실행 내역 및 시각적 디버깅 표시

  • 모든 서비스 통합 및 패턴 지원

Express 워크플로 사양

  • 실행 속도 1초당 100,000

  • 무제한에 가까운 상태 전환 속도

  • 실행 횟수 및 기간을 기준으로 요금 책정

  • 실행 내역을 Amazon CloudWatch로 전송

  • 활성화된 로그 수준을 기반으로 실행 내역과 시각적 디버깅 표시

  • 모든 서비스 통합 및 대부분의 패턴 지원

Step Functions 요금을 포함한 표준 및 Express 워크플로에 대한 자세한 내용은 다음을 참조하세요.

사용 사례

Step Functions는 애플리케이션의 구성 요소와 로직을 관리하므로 코드 작성을 줄이고 애플리케이션을 빠르게 빌드하고 업데이트하는 데 집중할 수 있습니다. 이 섹션에서는 Step Functions를 사용하는 일반적인 사용 사례를 설명합니다.

사용 사례 #1: 함수 오케스트레이션


          Chaining

Lambda 함수 그룹(단계)을 특정 순서로 실행하는 워크플로를 만듭니다. Lambda 함수 하나의 출력이 다음 Lambda 함수 입력으로 전달됩니다. 워크플로의 마지막 단계에서 결과를 제공합니다. Step Functions를 사용하면 워크플로의 각 단계가 서로 상호 작용하는 방식을 확인할 수 있으므로 각 단계에서 의도한 함수를 수행하는지 확인할 수 있습니다.

함수 그룹이 포함된 상태 시스템을 만드는 방법을 보여주는 자습서는 다음을 참조하세요.

사용 사례 #2: 분기


          분기

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

사용 사례 #3: 오류 처리


          Retry/Catch

Retry

이 사용 사례에서는 고객이 사용자 이름을 요청합니다. 처음에는 고객 요청이 실패합니다. Retry 문을 사용하면 Step Functions에서 고객 요청을 다시 시도하도록 할 수 있습니다. 두 번째로 고객 요청이 성공했습니다.

Catch

비슷한 사용 사례에서는 고객이 사용할 수 없는 사용자 이름을 요청합니다. Catch 문을 사용하면 Step Functions에서 사용 가능한 사용자 이름을 제안하도록 할 수 있습니다. 고객이 사용 가능한 사용자 이름을 사용하는 경우 Step Functions가 워크플로의 다음 단계로 이동하여 확인 이메일을 보내도록 할 수 있습니다. 고객이 사용 가능한 사용자 이름을 사용하지 않는 경우 Step Functions가 워크플로의 다른 단계로 이동하여 가입 프로세스를 다시 시작하도록 합니다.

RetryCatch 문에 대한 자세한 예제는 다음을 참조하세요.

사용 사례 #4: 휴먼인더루프


          Chaining

고객 중 한 명이 은행 앱을 사용하여 친구에게 송금합니다. 고객이 확인 이메일을 기다립니다. 콜백과 작업 토큰을 사용하면 Step Functions가 고객이 송금하고 고객의 친구가 돈을 받으면 다시 보고하도록 Lambda에게 지시하도록 할 수 있습니다. Lambda에서 고객의 친구가 돈을 받았음을 다시 보고하면 Step Functions가 워크플로의 다음 단계로 이동하여 고객에게 확인 이메일을 보내도록 할 수 있습니다.

작업 토큰이 포함된 콜백을 보여주는 샘플 프로젝트를 보려면 다음을 참조하세요.

사용 사례 #5: 병렬 처리


          Parallelism

고객은 비디오 파일을 5가지 디스플레이 해상도로 변환하여 시청자가 여러 장치에서 비디오를 시청할 수 있습니다. Parallel 상태를 사용하면 Step Functions가 비디오 파일을 입력하므로 Lambda에서 이 비디오 파일을 5가지의 디스플레이 해상도로 동시에 처리할 수 있습니다.

사용 사례 #6: 동적 병렬 처리


          Chaining

고객이 품목 3개를 주문하며 사용자는 각 품목 배송을 준비해야 합니다. 각 품목의 재고 여부를 확인하고 각 품목을 수집한 다음 각 품목을 포장하여 배송합니다. Map 상태를 사용하면 Step Functions는 Lambda가 고객의 각 품목을 동시에 처리하도록 합니다. 고객의 모든 품목을 배송하기 위해 포장하면 Step Functions는 워크플로의 다음 단계로 이동하여 추적 정보가 포함된 확인 이메일을 고객에게 보냅니다.

Map 상태를 사용하여 동적 병렬 처리를 보여주는 샘플 프로젝트를 보려면 다음을 참조하세요.

서비스 통합

Step Functions는 여러 AWS 서비스와 통합됩니다. Step Functions를 이러한 서비스와 결합하려면 다음 서비스 통합 패턴을 사용합니다.

응답 요청(기본값)
  • 서비스를 직접적으로 호출하고 Step Functions가 HTTP 응답을 가져온 후에 다음 상태로 진행하도록 합니다.

작업 실행(.sync)
  • 서비스를 직접적으로 호출하고 작업이 완료될 때까지 Step Functions가 기다리도록 합니다.

작업 토큰(.waitForTaskToken)이 포함된 콜백 기다리기
  • 작업 토큰이 포함된 서비스를 직접적으로 호출하고 작업 토큰이 콜백과 함께 반환될 때까지 Step Functions가 기다리도록 합니다.

다음 표에서는 Step Functions에 사용 가능한 서비스 통합과 서비스 통합 패턴을 보여줍니다.

표준 워크플로 및 Express 워크플로는 같은 통합을 지원하지만 동일한 통합 패턴을 지원하지 않습니다. Express 워크플로에서는 작업 실행(.sync) 또는 콜백 대기(.waitForTaskToken)를 지원하지 않습니다. 최적화된 통합 패턴 지원은 통합마다 다릅니다. 자세한 내용은 표준 워크플로와 Express 워크플로 비교 섹션을 참조하세요.

Standard Workflows
지원되는 서비스 통합
서비스 요청 및 응답 작업 실행(.sync) 콜백 대기(.waitForTaskToken)
최적화된 통합 Lambda
AWS Batch
DynamoDB
Amazon ECS/AWS Fargate
Amazon SNS
Amazon SQS
AWS Glue
SageMaker
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
CodeBuild
Athena
Amazon EKS
API Gateway
AWS Glue DataBrew
Amazon EventBridge
AWS Step Functions
AWS SDK 통합 200개 초과
Express Workflows

지원되는 리전

대부분의 AWS 지역에서 Step Functions를 지원합니다. Step Functions를 사용할 수 있는 AWS 리전의 전체 목록은 AWS리전 표를 참조하세요.

Step Functions를 처음 사용하시나요?

Step Functions를 처음 사용하는 경우 다음 주제는 Step Functions를 다른 AWS 서비스와 결합하는 방법을 포함하여 Step Functions를 사용하는 다양한 부분을 이해하는 데 도움이 됩니다.