

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

# Step Functions용 스타터 템플릿을 사용하여 상태 시스템 배포
<a name="starter-templates"></a>

다양한 사용 사례 및 패턴의 상태 시스템을 배포하려면 [AWS Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)에서 다음 스타터 템플릿 중 하나를 선택할 수 있습니다. 이러한 스타터 템플릿은 워크플로 프로토타입 및 정의와 프로젝트의 모든 관련 AWS리소스를 자동으로 생성하는 ready-to-run 가능한 샘플 프로젝트입니다.

이러한 샘플 프로젝트를 사용하여 있는 그대로 배포 및 실행하거나 워크플로 프로토타입을 사용하여 이를 기반으로 빌드할 수 있습니다. 이러한 프로젝트에서 빌드하면 Step Functions는 워크플로 프로토타입을 만들지만 워크플로 정의에 나열된 리소스를 배포하지는 않습니다.

각 샘플 프로젝트를 배포하면 샘플 프로젝트는 완전히 기능하는 상태 시스템을 프로비저닝하고 실행할 상태 시스템의 관련 리소스를 만듭니다. 샘플 프로젝트를 생성할 때 Step Functions는 CloudFormation를 사용하여 상태 시스템에서 참조하는 관련 리소스를 생성합니다.

**Topics**
+ [

# Amazon ECS 및 Amazon SNS를 사용하여 컨테이너 작업 관리
](sample-project-container-task-notification.md)
+ [

# Lambda, DynamoDB 및 Amazon SQS를 사용하여 데이터 레코드 전송
](sample-project-transfer-data-sqs.md)
+ [

# Lambda 및 AWS Batch를 사용한 작업 상태 폴링
](sample-project-job-poller.md)
+ [

# Lambda 및 Amazon SNS를 사용하여 태스크 타이머 생성
](task-timer-sample.md)
+ [

# Amazon SQS, Amazon SNS, Lambda를 사용하여 콜백 패턴 예제 생성
](callback-task-sample-sqs.md)
+ [

# Amazon EMR 작업 관리
](sample-emr-job.md)
+ [

# EMR Serverless 작업 실행
](sample-emr-serverless-job.md)
+ [

# Step Functions 및 Lambda를 사용하여 워크플로 내에서 워크플로 시작
](sample-start-workflow.md)
+ [

# Step Functions에서 Map 상태를 사용하여 대기열의 데이터 처리
](sample-map-state.md)
+ [

# Distributed Map을 사용하여 Amazon S3에서 CSV 파일 처리
](sample-dist-map-csv-process.md)
+ [

# Distributed Map을 사용하여 Amazon S3 버킷의 데이터 처리
](sample-dist-map-s3data-process.md)
+ [

# Amazon SageMaker AI를 사용하여 기계 학습 모델 훈련
](sample-train-model.md)
+ [

# SageMaker AI에서 기계 학습 모델의 하이퍼파라미터 조정
](sample-hyper-tuning.md)
+ [

# Amazon Bedrock을 사용하여 AI 프롬프트 체이닝 수행
](sample-bedrock-prompt-chaining.md)
+ [

# Step Functions Express 워크플로를 사용하여 Amazon SQS에서 대용량 메시지 처리
](sample-project-express-high-volume-sqs.md)
+ [

# 표준 및 Express 워크플로를 사용하여 선택적 체크포인트 수행
](sample-project-express-selective-checkpointing.md)
+ [

# Step Functions를 사용하여 AWS CodeBuild 프로젝트 빌드
](sample-project-codebuild.md)
+ [

# Amazon SageMaker AI를 사용하여 데이터 전처리 및 기계 학습 모델 훈련
](sample-preprocess-feature-transform.md)
+ [

# Step Functions을 사용한 AWS Lambda 함수 오케스트레이션
](sample-lambda-orchestration.md)
+ [

# Athena 쿼리 시작 및 결과 알림 전송
](sample-athena-query.md)
+ [

# Athena를 사용하여 순서대로 병렬로 쿼리 실행
](run-multiple-queries.md)
+ [

# AWS Glue 크롤러를 사용하여 대규모 데이터세트 쿼리
](sample-query-large-datasets.md)
+ [

# AWS Glue 및 Athena를 사용하여 대상 테이블의 데이터 업데이트 유지
](sample-keep-data-updated.md)
+ [

# 노드 그룹으로 Amazon EKS 클러스터 생성 및 관리
](sample-eks-cluster.md)
+ [

# API Gateway에서 관리하는 API와 상호 작용
](sample-apigateway-workflow.md)
+ [

# API Gateway 통합을 사용하여 Fargate에서 실행되는 마이크로서비스 직접 호출
](sample-apigateway-ecs-workflow.md)
+ [

# EventBridge 이벤트 버스로 사용자 지정 이벤트 보내기
](sample-eventbridge-custom-event.md)
+ [

# API Gateway를 통해 동기 Express 워크플로 간접 호출
](synchronous-execution.md)
+ [

# Step Functions 및 Amazon Redshift API를 사용하여 ETL/ELT 워크플로 실행
](sample-etl-orchestration.md)
+ [

# AWS Batch 및 Amazon SNS를 사용하여 배치 작업 관리
](batch-job-notification.md)
+ [

# Map 상태로 배치 작업 팬아웃
](sample-batch-fan-out.md)
+ [

# Lambda를 사용한 AWS Batch 작업 실행
](sample-batch-lambda.md)

# Amazon ECS 및 Amazon SNS를 사용하여 컨테이너 작업 관리
<a name="sample-project-container-task-notification"></a>

이 샘플 프로젝트에서는 AWS Fargate 작업을 실행한 다음 해당 작업의 성공 또는 실패 여부에 따라 Amazon SNS 알림을 전송하는 방법을 보여줍니다. 이 샘플 프로젝트를 배포하면 AWS Step Functions 상태 머신, Fargate 클러스터 및 Amazon SNS 주제가 생성됩니다.

이 프로젝트에서 Step Functions는 상태 머신을 사용하여 Fargate 작업을 동기식으로 직접 호출합니다. 그런 다음 작업이 성공 또는 실패하기까지 대기한 다음 작업의 성공 또는 실패 여부에 대한 메시지와 함께 Amazon SNS 주제를 전송합니다.

## 1단계: 상태 머신 만들기
<a name="sample-project-container-task-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-container-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Lambda, DynamoDB 및 Amazon SQS를 사용하여 데이터 레코드 전송
<a name="sample-project-transfer-data-sqs"></a>

이 샘플 프로젝트에서는 Step Functions 상태 머신을 사용하여 Amazon DynamoDB 테이블에서 항목을 반복해서 읽고 이러한 항목을 Amazon SQS 대기열로 보내는 방법을 보여줍니다. 이 샘플 프로젝트를 배포하면 Step Functions 상태 머신, DynamoDB 테이블, AWS Lambda 함수 및 Amazon SQS 대기열이 생성됩니다.

이 프로젝트에서 Step Functions는 Lambda 함수를 사용하여 DynamoDB 테이블을 채웁니다. 또한 상태 머신은 `for` 루프를 사용하여 각 항목을 읽은 다음 각 항목을 Amazon SQS 대기열로 보냅니다.

## 1단계: 상태 머신 만들기
<a name="sample-project-transfer-data-sqs-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-sqs-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1.  CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Lambda 및 AWS Batch를 사용한 작업 상태 폴링
<a name="sample-project-job-poller"></a>

이 샘플 프로젝트는 AWS Batch 작업 폴러를 생성합니다. AWS Step Functions 함수를 사용하는 AWS Lambda 상태 머신을 구현하여 `Wait` 작업을 확인하는 AWS Batch 상태 루프를 생성합니다.

이 샘플 프로젝트는 Step Functions 워크플로에서 AWS Batch 작업을 제출하고 이 작업이 성공적으로 완료될 때까지 기다려 성공적으로 종료되도록 모든 리소스를 만들고 구성합니다.

**참고**  
또한 Lambda 함수를 사용하지 않고 이 패턴을 구현할 수 있습니다. AWS Batch의 직접 제어에 대한 자세한 내용은 [Step Functions에서 서비스 통합](integrate-services.md) 단원을 참조하십시오.

이 샘플 프로젝트는 상태 머신, Lambda 함수 2개 및 AWS Batch 대기열을 만들고 관련 IAM 권한을 구성합니다.

AWS Step Functions에서 다른 AWS 서비스를 제어할 수 있는 방법에 대한 자세한 내용은 [Step Functions에서 서비스 통합](integrate-services.md) 단원을 참조하십시오.

## 1단계: 상태 머신 만들기
<a name="sample-project-job-poller-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="job-status-poller-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Lambda 및 Amazon SNS를 사용하여 태스크 타이머 생성
<a name="task-timer-sample"></a>

이 샘플 프로젝트는 작업 타이머를 생성합니다. `Wait` 상태를 구현하는 AWS Step Functions 상태 머신을 구현하고 Amazon Simple Notification Service(SNS) 알림을 보내는 AWS Lambda 함수를 사용합니다. [Wait 워크플로 상태](state-wait.md) 상태는 하나의 작업 단위를 수행하기 위해 트리거를 기다리는 상태 유형입니다.

**참고**  
이 샘플 프로젝트에서는 Amazon Simple Notification Service(SNS) 알림을 보내는 AWS Lambda 함수를 구현합니다. Amazon States Language에서 직접 Amazon SNS 알림을 보낼 수도 있습니다. [Step Functions에서 서비스 통합](integrate-services.md)을(를) 참조하세요.

이 샘플 프로젝트에서는 상태 머신, Lambda 함수 및 Amazon SNS 주제를 만들고 관련 AWS Identity and Access Management(IAM) 권한을 구성합니다. **작업 타이머** 샘플 프로젝트를 사용하여 생성되는 리소스에 대한 자세한 내용은 다음을 참조하십시오.

AWS Step Functions에서 다른 AWS 서비스를 제어할 수 있는 방법에 대한 자세한 내용은 [Step Functions에서 서비스 통합](integrate-services.md) 단원을 참조하십시오.
+ [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)
+ [Amazon Simple Notification Service 개발자 안내서](https://docs.aws.amazon.com/sns/latest/dg/)
+ [AWS Lambda 개발자 안내서](https://docs.aws.amazon.com/lambda/latest/dg/)
+ [IAM 시작 안내서](https://docs.aws.amazon.com/IAM/latest/GettingStartedGuide/)

## 1단계: 상태 머신 만들기
<a name="task-timer-create-resources"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="task-timer-run-state-machine"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Amazon SQS, Amazon SNS, Lambda를 사용하여 콜백 패턴 예제 생성
<a name="callback-task-sample-sqs"></a>

이 샘플 프로 젝트는 AWS Step Functions가 작업 중에 일시 중지하고 외부 프로세스가 작업이 시작될 때 생성된 작업 토큰을 반환할 때까지 대기하게 하는 방법을 보여 줍니다.

Step Functions에서 콜백 패턴을 구현하는 방법은 [작업 토큰을 사용하여 콜백 대기](connect-to-resource.md#connect-wait-token) 섹션을 참조하세요.

AWS Step Functions에서 다른 AWS 서비스를 제어할 수 있는 방법에 대한 자세한 내용은 [Step Functions에서 서비스 통합](integrate-services.md) 단원을 참조하십시오.

## 1단계: 상태 머신 만들기
<a name="callback-pattern-create-resources"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="callback-pattern-run-state-machine"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Amazon EMR 작업 관리
<a name="sample-emr-job"></a>

이 샘플 프로젝트는 Amazon EMR 및 AWS Step Functions통합을 보여줍니다. 프로젝트는 Amazon EMR 클러스터를 만들고 여러 단계를 추가하여 실행한 다음 클러스터를 종료합니다.



**중요**  
Amazon EMR에는 무료 요금 티어가 없습니다. 샘플 프로젝트를 실행하면 비용이 발생합니다. [Amazon EMR 요금](https://aws.amazon.com//emr/pricing/) 페이지에서 요금 정보를 확인할 수 있습니다. Amazon EMR 서비스 통합 가용성은 Amazon EMR API 가용성에 따라 달라질 수 있습니다. 이로 인해 일부 AWS리전에서는이 샘플 프로젝트가 제대로 작동하지 않을 수 있습니다. 특별 리전에서의 제한 사항은 [Amazon EMR](https://docs.aws.amazon.com//govcloud-us/latest/UserGuide/govcloud-emr.html) 설명서를 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-emr-manage"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-container-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# EMR Serverless 작업 실행
<a name="sample-emr-serverless-job"></a>

이 샘플 프로젝트에서는 EMR Serverless 애플리케이션을 만들고 시작하며 해당 애플리케이션 내에서 여러 작업을 실행하는 방법을 보여줍니다.

이 샘플 프로젝트는 상태 시스템, 지원 AWS리소스를 생성하고 관련 IAM 권한을 구성합니다. 이 샘플 프로젝트를 살펴보고 Step Functions 상태 머신을 사용하여 EMR Serverless 작업을 실행하는 방법을 알아보거나 자체 프로젝트의 시작점으로 사용합니다.

**중요**  
EMR Serverless에는 무료 요금 티어가 없습니다. 샘플 프로젝트를 실행하면 비용이 발생합니다. 요금 정보는 [Amazon EMR Serverless 요금](https://aws.amazon.com//emr/pricing/) 페이지에서 확인할 수 있습니다.  
또한 EMR Serverless 서비스 통합 가용성은 EMR Serverless API 가용성에 따라 달라질 수 있습니다. 이로 인해 일부 AWS 리전에서는 이 샘플 프로젝트가 올바르게 작동하지 않거나 사용하지 못할 수 있습니다. AWS 리전의 EMR Serverless 가용성은 [기타 고려 사항](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/considerations.html) 주제를 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-emr-serverless-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-emr-serverless-run"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions 및 Lambda를 사용하여 워크플로 내에서 워크플로 시작
<a name="sample-start-workflow"></a>

이 샘플 프로젝트에서는 AWS Step Functions 상태 머신을 사용하여 다른 상태 머신 실행을 시작하는 방법을 보여줍니다. 다른 상태 머신에서 상태 머신 실행을 시작하는 방법은 [Step Functions의 작업 상태에서 워크플로 실행 시작](concepts-nested-workflows.md) 섹션을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-start-workflow-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-start-workflow-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions에서 Map 상태를 사용하여 대기열의 데이터 처리
<a name="sample-map-state"></a>

이 샘플 워크플로에서 [Map 워크플로 상태](state-map.md) 상태는 대기열의 데이터를 처리하여 구독자에게 메시지를 보내고 데이터베이스에 저장합니다.

Step Functions는 최적화된 통합을 사용하여 Amazon SQS 대기열에서 메시지를 가져옵니다. 메시지를 사용할 수 있는 경우 [Choice](state-choice.md) 상태는 처리를 위해 JSON 메시지 배열을 [맵](state-map.md) 상태로 전달합니다. 메시지마다 상태 머신은 메시지를 DynamoDB에 쓰고 대기열에서 메시지를 제거한 다음 Amazon SNS 주제에 메시지를 게시합니다.

## 1단계: 상태 머신 만들기
<a name="sample-map-state-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: Amazon SNS 주제 구독
<a name="sample-map-subscribe-topic"></a>

**작은 정보**  
상태 머신을 실행하기 **전에** Amazon SNS 주제를 구독하고 Amazon SQS 대기열에 항목을 추가합니다.

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)을 엽니다.

1. **주제**를 선택하고 샘플 프로젝트에서 생성한 주제를 찾습니다.

1. **구독 생성**을 선택하고 **프로토콜**에서 **이메일**을 선택합니다.

1. **엔드포인트**에 주제를 구독할 이메일 주소를 입력합니다.

1. **구독 생성**을 선택합니다.

1. 이메일에서 구독을 확인하여 구독을 활성화합니다.

## 3단계: Amazon SQS 대기열에 메시지 추가
<a name="sample-map-create-queue"></a>

1. [Amazon SQS 콘솔](https://console.aws.amazon.com/sqs/home)을 엽니다.

1. 샘플 프로젝트에서 생성한 대기열을 선택합니다.

1. **메시지 전송 및 수신**을 선택하고 메시지를 입력한 다음 **메시지 전송**을 선택합니다. 이 단계를 반복하여 대기열에 여러 메시지를 추가합니다.

## 4단계: 상태 머신 실행
<a name="sample-map-start-execution"></a>

**작은 정보**  
Amazon SNS의 대기열은 일정하게 유지됩니다. 상태 머신을 실행하기 전에 대기열로 메시지를 보낸 후 몇 분 정도 기다려야 할 수 있습니다.

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Distributed Map을 사용하여 Amazon S3에서 CSV 파일 처리
<a name="sample-dist-map-csv-process"></a>

이 샘플 프로젝트에서는 [*Distributed Map 상태*](state-map-distributed.md)를 사용하여 Lambda 함수를 통해 생성된 CSV 파일의 행 10,000개 이상을 반복하는 방법을 보여줍니다. CSV 파일에는 고객 주문의 배송 정보가 포함되며 Amazon S3 버킷에 저장됩니다. Distributed Map은 데이터 분석을 위해 CSV 파일의 행 10개 배치를 반복합니다.

Distributed Map에는 지연된 주문을 감지하는 Lambda 함수가 포함되어 있습니다. 또한 Distributed Map에는 지연된 주문을 일괄 처리하고 이러한 지연된 주문을 배열로 반환하는 [Inline Map](state-map-inline.md)도 포함되어 있습니다. 지연된 주문마다 Inline Map은 메시지를 Amazon SQS 대기열로 보냅니다. 마지막으로, 이 샘플 프로젝트는 [맵 실행](concepts-examine-map-run.md) 결과를 AWS 계정의 다른 Amazon S3 버킷에 저장합니다.

Distributed Map을 사용하면 하위 워크플로 실행을 한 번에 최대 10,000개까지 동시에 실행할 수 있습니다. 이 샘플 프로젝트에서 Distributed Map의 최대 동시성은 1,000개로 설정되어 있으며 이 경우 하위 워크플로 동시 실행은 1,000개로 제한됩니다.

이 샘플 프로젝트는 상태 머신과 지원 AWS 리소스를 만들고 관련 IAM 권한을 구성합니다. 이 샘플 프로젝트를 살펴보고 Distributed Map을 사용하여 대규모 병렬 워크로드를 오케스트레이션하는 방법을 알아보거나 자체 프로젝트의 시작점으로 사용합니다.

## 1단계: 상태 머신 만들기
<a name="sample-dist-map-csv-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-dist-map-csv-run"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Distributed Map을 사용하여 Amazon S3 버킷의 데이터 처리
<a name="sample-dist-map-s3data-process"></a>

이 샘플 프로젝트에서는 [*Distributed Map 상태*](state-map-distributed.md)를 사용하여 과거 날씨 데이터 분석 및 매월 지구상에서 평균 기온이 가장 높은 기상 관측소 식별과 같은 대규모 데이터를 처리하는 방법을 보여줍니다. 날씨 데이터는 12,000개가 넘는 CSV 파일에 기록되며 이러한 파일은 Amazon S3 버킷에 저장됩니다.

이 샘플 프로젝트에는 **Distributed S3 copy NOA Data** 및 **ProcessNOAAData**라는 *Distributed Map 상태* 2개가 포함되어 있습니다. **Distributed S3 copy NOA Data**는 **noaa-gsod-pds**라는 퍼블릭 Amazon S3 버킷의 CSV 파일을 반복하며 AWS 계정의 Amazon S3 버킷에 복사합니다. **ProcessNOAAData**는 복사된 파일을 반복하며 온도 분석을 수행하는 Lambda 함수를 포함합니다.

샘플 프로젝트는 먼저 [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) API 작업을 직접적으로 호출하여 Amazon S3 버킷의 콘텐츠를 확인합니다. 이 직접 호출에 대한 응답으로 반환된 [키](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#AmazonS3-ListObjectsV2-response-MaxKeys) 수를 기준으로 샘플 프로젝트는 다음 중 하나를 결정합니다.
+ 키 수가 1보다 크거나 같으면 프로젝트는 **ProcessNOAAData** 상태로 전환됩니다. 이 *Distributed Map 상태*에는 매월 평균 기온이 가장 높았던 기상 관측소를 찾는 **TemperatureFunction**이라는 Lambda 함수가 포함되어 있습니다. 이 함수는 키로 `year-month`가 있는 사전과 값으로 기상 관측소에 대한 정보가 포함된 사전을 반환합니다.
+ 반환된 키 수가 1을 초과하지 않으면 **Distributed S3 copy NOA Data** 상태는 퍼블릭 버킷 **noaa-gsod-pds**의 모든 객체를 나열하고 개별 객체를 계정의 다른 버킷에 100개씩 반복 복사합니다. [Inline Map](state-map-inline.md)은 객체를 반복 복사합니다.

  모든 객체가 복사되면 프로젝트는 날씨 데이터를 처리하기 위한 **ProcessNOAAData** 상태로 전환됩니다.

마지막으로 샘플 프로젝트는 **TemperatureFunction** 함수에서 반환된 결과를 최종 집계하고 결과를 Amazon DynamoDB 테이블에 쓰는 리듀서 Lambda 함수로 전환됩니다.

Distributed Map을 사용하면 하위 워크플로 실행을 한 번에 최대 10,000개까지 동시에 실행할 수 있습니다. 이 샘플 프로젝트에서 **ProcessNOAAData** Distributed Map의 최대 동시성은 3,000개로 설정되어 있으며 이 경우 하위 워크플로 동시 실행은 3,000개로 제한됩니다.

이 샘플 프로젝트는 상태 머신과 지원 AWS 리소스를 만들고 관련 IAM 권한을 구성합니다. 이 샘플 프로젝트를 살펴보고 Distributed Map을 사용하여 대규모 병렬 워크로드를 오케스트레이션하는 방법을 알아보거나 자체 프로젝트의 시작점으로 사용합니다.

**중요**  
미국 동부(버지니아 북부) 리전에서만 이 샘플 프로젝트를 사용할 수 있습니다.

## 1단계: 상태 머신 만들기
<a name="sample-dist-map-s3data-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-dist-map-s3data-run"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Amazon SageMaker AI를 사용하여 기계 학습 모델 훈련
<a name="sample-train-model"></a>

이 샘플 프로젝트에서는 SageMaker AI 및 AWS Step Functions를 사용하여 기계 학습 모델을 학습시키는 방법과 테스트 데이터세트를 배치로 트랜스포밍하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 Lambda 함수를 사용하여 테스트 데이터세트로 Amazon S3 버킷을 시딩합니다. 그런 다음 [SageMaker AI 서비스 통합](connect-sagemaker.md)을 사용하여 기계 학습 모델을 학습시키고 배치 트랜스포밍을 수행합니다.

SageMaker AI 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 Amazon SageMaker AI 작업 생성 및 관리](connect-sagemaker.md)

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [SageMaker AI 요금](https://aws.amazon.com/sagemaker/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-train-model-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-train-model-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# SageMaker AI에서 기계 학습 모델의 하이퍼파라미터 조정
<a name="sample-hyper-tuning"></a>

이 샘플 프로젝트에서는 SageMaker AI를 사용하여 기계 학습 모델의 하이퍼파라미터를 튜닝하고 테스트 데이터세트를 배치 트랜스포밍하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 Lambda 함수를 사용하여 테스트 데이터세트로 Amazon S3 버킷을 시딩합니다. 그런 다음 [SageMaker AI 서비스 통합](connect-sagemaker.md)을 사용하여 작업을 튜닝하는 하이퍼파라미터를 만듭니다. Lambda 함수를 사용하여 데이터 경로를 추출하고 튜닝 모델을 저장하고 모델 이름을 추출한 다음 배치 트랜스포밍 작업을 실행하여 SageMaker AI에서 추론을 수행합니다.

SageMaker AI 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 Amazon SageMaker AI 작업 생성 및 관리](connect-sagemaker.md)

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [SageMaker AI 요금](https://aws.amazon.com/sagemaker/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-hyper-tuning-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-hyper-tuning-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Amazon Bedrock을 사용하여 AI 프롬프트 체이닝 수행
<a name="sample-bedrock-prompt-chaining"></a>

이 샘플 프로젝트는 Amazon Bedrock으로 통합하여 AI 프롬프트 체이닝을 수행하고 Amazon Bedrock을 사용하여 고품질 챗봇을 구축하는 방법을 보여 줍니다. 프로젝트는 몇 가지 프롬프트를 연결하여 제공된 순서대로 해결합니다. 이러한 프롬프트를 연결하면 고도로 엄선된 응답을 제공하는 데 사용되는 언어 모델의 기능이 향상됩니다.

이 샘플 프로젝트는 상태 머신과 지원 AWS 리소스를 만들고 관련 IAM 권한을 구성합니다. 이 샘플 프로젝트를 살펴보고 Step Functions 상태 머신으로 Amazon Bedrock 최적화 서비스 통합을 사용하는 방법에 대해 알아보거나 이를 자체 프로젝트의 시작점으로 사용합니다.

## 사전 조건
<a name="sample-bedrock-prerequisites"></a>

이 샘플 프로젝트는 Cohere Command 대규모 언어 모델(LLM)을 사용합니다. 이 샘플 프로젝트를 성공적으로 실행하려면 Amazon Bedrock 콘솔에서 이 LLM에 대한 액세스 권한을 추가해야 합니다. 모델 액세스 권한을 추가하려면 다음 내용을 따릅니다.

1. [Amazon Bedrock 콘솔](https://console.aws.amazon.com/bedrock)을 엽니다.

1. 기본 탐색 창에서 **모델 액세스**를 선택합니다.

1. **모델 액세스 관리**를 선택합니다.

1. **Cohere** 옆의 확인란을 선택합니다.

1. **액세스 요청**을 선택합니다. **Cohere** 모델의 **액세스 상태**는 **액세스 권한 부여됨**으로 표시됩니다.

## 1단계: 상태 머신 만들기
<a name="sample-bedrock-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-bedrock-run"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions Express 워크플로를 사용하여 Amazon SQS에서 대용량 메시지 처리
<a name="sample-project-express-high-volume-sqs"></a>

이 샘플 프로젝트는 AWS Step Functions Express 워크플로를 사용하여 Amazon Simple Queue Service(Amazon SQS)와 같은 대용량 이벤트 소스의 메시지 또는 데이터를 처리하는 방법을 보여줍니다. Express 워크플로는 매우 빠른 속도로 시작할 수 있기 때문에 대용량 이벤트 처리 또는 스트리밍 데이터 워크로드에 적합합니다.

다음은 이벤트 소스에서 상태 머신을 실행하는 데 일반적으로 사용되는 두 가지 방법입니다.
+ **이벤트 소스에서 이벤트를 내보낼 때마다 상태 머신 실행을 시작하도록 Amazon CloudWatch Events 규칙을 구성합니다.** 자세한 내용은 [이벤트에서 트리거되는 CloudWatch 이벤트 규칙 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)을 참조하십시오.
+ **이벤트 소스를 Lambda 함수에 매핑하고 함수 코드를 작성하여 상태 머신을 실행합니다.** 이벤트 소스가 이벤트를 내보내고 상태 시스템 실행을 시작할 때마다 AWS Lambda 함수가 호출됩니다. 자세한 내용은 [Amazon SQS에서 AWS Lambda 사용](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html)을 참조하세요.

이 샘플 프로젝트는 두 번째 방법을 사용하여 Amazon SQS 대기열에서 메시지를 보낼 때마다 실행을 시작합니다. 유사한 구성을 사용하여 Amazon Simple Storage Service(S3), Amazon DynamoDB 및 Amazon Kinesis와 같은 다른 이벤트 소스에서 Express 워크플로 실행을 트리거할 수 있습니다.

Express 워크플로 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 워크플로 유형 선택](choosing-workflow-type.md)
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions 서비스 할당량](service-quotas.md)

## 1단계: 상태 머신 만들기
<a name="sample-project-high-volume-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 실행 트리거
<a name="trigger-execution"></a>

1. [Amazon SQS 콘솔](https://console.aws.amazon.com/sqs)을 엽니다.

1. 샘플 프로젝트에서 생성한 대기열을 선택합니다.

   이름은 **Example-SQSQueue-wJalrXUtnFEMI**와 유사합니다.

1. **대기열 작업** 목록에서 **메시지 전송**을 선택합니다.

1. 복사 버튼을 사용하여 다음 메시지를 복사한 다음 **메시지 전송** 창에 입력하고 **메시지 전송**을 선택합니다.
**참고**  
이 샘플 메시지에서 `input:` 줄은 페이지에 맞게 줄바꿈을 사용하여 서식이 지정되었습니다. [복사] 버튼을 사용합니다. 또는 줄바꿈 없이 한 줄로 입력되었는지 확인합니다.

   ```
   {
         "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW
                   91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5o
                   ZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcm
                   FjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3Vu
                   ZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91Ym
                   xlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwg
                   QW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu"
   }
   ```

1. **닫기**를 선택하세요.

1. [Step Functions 콘솔]()을 엽니다.

1.  [Amazon CloudWatch Logs 로그 그룹](https://console.aws.amazon.com/cloudwatch/home?#logs:)으로 이동하여 로그를 검사합니다. 로그 그룹의 이름은 **example-ExpressLogGroup-wJalrXUtnFEMI**와 같이 표시됩니다.

# 표준 및 Express 워크플로를 사용하여 선택적 체크포인트 수행
<a name="sample-project-express-selective-checkpointing"></a>

이 샘플 프로젝트는 선택적 체크포인트를 수행하는 모의 전자 상거래 워크플로를 실행하여 표준 및 Express 워크플로를 결합하는 방법을 보여줍니다. 이 샘플 프로젝트를 배포하면 Standard 워크플로 상태 머신, 중첩된 Express 워크플로 상태 머신, AWS Lambda 함수, Amazon Simple Queue Service(Amazon SQS) 대기열 및 Amazon Simple Notification Service(SNS) 주제가 생성됩니다.

Express 워크플로, 중첩된 워크플로 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 워크플로 유형 선택](choosing-workflow-type.md)
+  [Step Functions의 작업 상태에서 워크플로 실행 시작](concepts-nested-workflows.md) 
+ [Step Functions에서 서비스 통합](integrate-services.md)

## 1단계: 상태 머신 만들기
<a name="sample-project-express-selective"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-selective-checkpointing-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions를 사용하여 AWS CodeBuild 프로젝트 빌드
<a name="sample-project-codebuild"></a>

이 샘플 프로젝트는 AWS Step Functions를 사용하여 AWS CodeBuild 프로젝트를 빌드하고 테스트를 실행한 다음 결과에 따라 Amazon SNS 알림을 보내는 방법을 보여줍니다.

## 1단계: 상태 머신 만들기
<a name="sample-project-codebuild-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-project-codebuild-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Amazon SageMaker AI를 사용하여 데이터 전처리 및 기계 학습 모델 훈련
<a name="sample-preprocess-feature-transform"></a>

이 샘플 프로젝트에서는 SageMaker AI 및 AWS Step Functions를 사용하여 데이터를 전처리하고 기계 학습 모델을 학습시키는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 Lambda 함수를 사용하여 테스트 데이터세트와 데이터 처리용 Python 스크립트로 Amazon S3 버킷을 시딩합니다. 그런 다음 [SageMaker AI 서비스 통합](connect-sagemaker.md)을 사용하여 기계 학습 모델을 학습시키고 배치 트랜스포밍을 수행합니다.

SageMaker AI 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 Amazon SageMaker AI 작업 생성 및 관리](connect-sagemaker.md)

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [SageMaker AI 요금](https://aws.amazon.com/sagemaker/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-preprocess-feature-transform-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-preprocess-feature-transform-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions을 사용한 AWS Lambda 함수 오케스트레이션
<a name="sample-lambda-orchestration"></a>

**Lambda 함수 오케스트레이션** 템플릿은 샘플 주식 거래 워크플로에서 여러 Lambda 함수를 사용합니다. 한 함수는 주가를 확인한 다음 사람에게 주식을 구매하거나 판매하도록 선택하라는 메시지가 표시됩니다. Choice 상태는 `recommended_type` 변수를 기반으로 다음 함수를 선택하여 구매 또는 판매를 완료합니다. 두 함수 중 하나가 완료되면 워크플로가 끝나기 전에 거래 결과가 게시됩니다.

사람 승인 단계를 구현하려면 고유한 TaskToken이 반환될 때까지 워크플로 실행을 일시 중지합니다. 이 프로젝트에서 워크플로는 작업 토큰이 포함된 메시지를 Amazon SQS 대기열에 전달합니다. 메시지는 메시지의 페이로드를 기반으로 콜백을 처리하도록 구성된 다른 Lambda 함수를 트리거합니다. [https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskSuccess.html](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskSuccess.html) API 직접 호출로부터 작업 토큰을 다시 수신할 때까지 워크플로가 일시 중지됩니다. 작업 토큰에 대한 자세한 내용은 [작업 토큰을 사용하여 콜백 대기](connect-to-resource.md#connect-wait-token) 섹션을 참조하세요.

![\[상태 머신의 예시 보기\]](http://docs.aws.amazon.com/ko_kr/step-functions/latest/dg/images/sample-lambda-orchestration.png)


## 1단계: 상태 머신 만들기
<a name="sample-lambda-orchestration-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-lambda-orchestration-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

Step Functions 서비스 통합에 대한 자세한 내용은 [Step Functions에서 서비스 통합](integrate-services.md) 섹션을 참조하세요.

# Athena 쿼리 시작 및 결과 알림 전송
<a name="sample-athena-query"></a>

이 샘플 프로젝트에서는 Step Functions와 Amazon Athena를 사용하여 Athena 쿼리를 시작하고 표준 워크플로를 사용하여 쿼리 결과가 포함된 알림을 보내는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 Lambda 함수와 AWS Glue 크롤러를 사용하여 예제 데이터 집합을 생성합니다. 그런 다음 [Athena 서비스 통합](connect-athena.md)을 사용하여 쿼리를 수행하고 SNS 주제를 사용하여 결과를 반환합니다.

Athena 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 Athena 쿼리 실행](connect-athena.md)

## 1단계: 상태 머신 만들기
<a name="sample-athena-query-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-athena-query-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Athena를 사용하여 순서대로 병렬로 쿼리 실행
<a name="run-multiple-queries"></a>

이 샘플 프로젝트에서는 Athena 쿼리를 연속해서 실행한 다음 오류를 병렬로 처리한 다음 쿼리의 성공 또는 실패 여부에 따라 Amazon SNS 알림을 보내는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 상태 머신을 사용하여 Athena 쿼리를 동기적으로 실행합니다. 쿼리 결과가 반환되면 Athena 쿼리 2개가 동시에 실행되는 병렬 상태로 전환됩니다. 그런 다음 작업이 성공 또는 실패하기까지 대기한 다음 작업의 성공 또는 실패 여부에 대한 메시지와 함께 Amazon SNS 주제를 전송합니다.

## 1단계: 상태 머신 만들기
<a name="run-multi-query-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-run-multi-query-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# AWS Glue 크롤러를 사용하여 대규모 데이터세트 쿼리
<a name="sample-query-large-datasets"></a>

이 샘플 프로젝트에서는 Amazon S3에서 대규모 데이터세트를 수집하여 AWS Glue 크롤러를 통해 파티셔닝한 다음 해당 파티션에 대해 Amazon Athena 쿼리를 실행하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions 상태 머신은 Amazon S3의 대규모 데이터세트를 파티셔닝하는 AWS Glue 크롤러를 간접적으로 호출합니다. AWS Glue 크롤러에서 성공 메시지를 반환하면 워크플로는 해당 파티션에 대해 Athena 쿼리를 실행합니다. 쿼리 실행이 성공적으로 완료되면 Amazon SNS 알림이 Amazon SNS 주제로 전송됩니다.

## 1단계: 상태 머신 만들기
<a name="sample-query-large-datasets-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-query-large-datasets-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# AWS Glue 및 Athena를 사용하여 대상 테이블의 데이터 업데이트 유지
<a name="sample-keep-data-updated"></a>

이 샘플 프로젝트에서는 AWS Glue Catalog로 대상 테이블을 쿼리하여 현재 데이터를 가져온 다음 Amazon Athena를 사용하여 다른 소스의 새 데이터로 업데이트하는 방법을 보여줍니다.

이 프로젝트에서는 Step Functions 상태 머신이 AWS Glue Catalog를 직접적으로 호출하여 Amazon S3 버킷에 대상 테이블이 있는지 확인합니다. 테이블이 없으면 새 테이블이 생성됩니다. 그런 다음 Step Functions에서 Athena 쿼리를 실행하여 다른 데이터 소스의 대상 테이블에 행을 추가합니다. 먼저 대상 테이블을 쿼리하여 최신 날짜를 가져온 다음 최신 데이터의 소스 테이블을 쿼리하여 대상 테이블에 삽입합니다.

## 1단계: 상태 머신 만들기
<a name="sample-keep-data-updated-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-keep-data-updated-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# 노드 그룹으로 Amazon EKS 클러스터 생성 및 관리
<a name="sample-eks-cluster"></a>

이 샘플 프로젝트에서는 Step Functions 및 Amazon Elastic Kubernetes Service를 사용하여 노드 그룹이 있는 Amazon EKS 클러스터를 만들고 Amazon EKS에서 작업을 실행한 다음 출력을 검사하는 방법을 보여줍니다. 완료되면 노드 그룹과 Amazon EKS 클러스터가 제거됩니다.

Step Functions와 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 Amazon EKS 클러스터 생성 및 관리](connect-eks.md)

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [Amazon EKS 요금](https://aws.amazon.com/eks/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-eks-cluster-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-eks-cluster-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# API Gateway에서 관리하는 API와 상호 작용
<a name="sample-apigateway-workflow"></a>

이 샘플 프로젝트에서는 Step Functions를 사용하여 API Gateway를 직접적으로 호출하고 호출이 성공했는지 확인하는 방법을 보여줍니다.

API Gateway 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions에서 API Gateway REST API 생성](connect-api-gateway.md)

## 1단계: 상태 생성
<a name="sample-apigateway-workflow-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-apigateway-workflow-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# API Gateway 통합을 사용하여 Fargate에서 실행되는 마이크로서비스 직접 호출
<a name="sample-apigateway-ecs-workflow"></a>

이 샘플 프로젝트에서는 Step Functions를 사용하여 AWS Fargate에서 서비스와 통합하기 위해 API Gateway를 직접적으로 호출하고 또한 호출이 성공했는지 확인하는 방법을 보여줍니다.

API Gateway 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions에서 API Gateway REST API 생성](connect-api-gateway.md)

## 1단계: 상태 머신 만들기
<a name="sample-apigateway-ecs-workflow-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-apigateway-ecs-workflow-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# EventBridge 이벤트 버스로 사용자 지정 이벤트 보내기
<a name="sample-eventbridge-custom-event"></a>

이 샘플 프로젝트에서는 Step Functions를 사용하여 사용자 지정 이벤트를 여러 대상(Amazon EventBridge, AWS Lambda, Amazon Simple Notification Service, Amazon Simple Queue Service)이 있는 규칙과 일치하는 이벤트 버스로 보내는 방법을 보여줍니다.

Step Functions와 Step Functions 서비스 통합에 대한 자세한 내용은 다음을 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+ [Step Functions를 사용하여 EventBridge 이벤트 추가](connect-eventbridge.md)

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [EventBridge 요금](https://aws.amazon.com/eventbridge/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-eventbridge-custom-event-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-eventbridge-custom-event-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# API Gateway를 통해 동기 Express 워크플로 간접 호출
<a name="synchronous-execution"></a>

이 샘플 프로젝트에서는 Amazon API Gateway를 통해 동기 Express 워크플로를 간접적으로 호출하여 직원 데이터베이스를 관리하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 API Gateway 엔드포인트를 사용하여 Step Functions 동기 Express 워크플로를 시작합니다. 그런 다음 DynamoDB를 사용하여 직원 데이터베이스에서 직원을 검색, 추가 및 제거합니다.

Step Functions 동기 Express 워크플로에 대한 자세한 내용은 [Step Functions의 동기 및 비동기 Express 워크플로](choosing-workflow-type.md#concepts-express-synchronous) 섹션을 참조하세요.

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [Step Functions 요금](https://aws.amazon.com/step-functions/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="synchronous-execution-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="synchronous-execution-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Step Functions 및 Amazon Redshift API를 사용하여 ETL/ELT 워크플로 실행
<a name="sample-etl-orchestration"></a>

이 샘플 프로젝트에서는 Step Functions 및 Amazon Redshift Data API를 사용하여 Amazon Redshift 데이터 웨어하우스로 데이터를 로드하는 ETL/ELT 워크플로를 실행하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 AWS Lambda 함수와 Amazon Redshift Data API를 사용하여 필요한 데이터베이스 객체를 만들고 예제 데이터 집합을 생성한 다음 차원 테이블과 팩트 테이블을 로드하는 두 작업을 동시에 실행합니다. 두 차원 로드 작업 모두 성공적으로 종료되면 Step Functions는 팩트 테이블에 대한 로드 작업을 실행하고 검증 작업을 실행한 다음 Amazon Redshift 클러스터를 일시 중지합니다.

**참고**  
 ETL 로직을 수정하여 Amazon S3와 같은 다른 소스에서 데이터를 받을 수 있으므로 [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) 명령을 사용하여 Amazon S3에서 Amazon Redshift 테이블로 데이터를 복사할 수 있습니다.

Amazon Redshift 및 Step Functions 서비스 통합에 대한 자세한 내용은 다음 설명서를 참조하세요.
+ [Step Functions에서 서비스 통합](integrate-services.md)
+  [Amazon Redshift Data API 사용](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html) 
+  [Amazon Redshift Data API 서비스](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds-data.html) 
+  [Lambda를 사용하는 Step Functions 상태 머신 만들기](tutorial-creating-lambda-state-machine.md) 

Lambda 및 Amazon Redshift의 IAM 정책에 대한 자세한 내용은 다음 설명서를 참조하세요.
+  [호출을 위한 IAM 정책AWS Lambda](connect-lambda.md#lambda-iam) 
+  [Amazon Redshift Data API에 대한 액세스 권한 부여](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html#data-api-access) 

**참고**  
이 샘플 프로젝트를 사용할 때 요금이 발생할 수 있습니다.  
신규 AWS 사용자는 프리 티어를 사용할 수 있습니다. 이 계층에서 특정 사용 수준 미만의 서비스는 무료입니다. AWS 비용 및 프리 티어에 대한 자세한 내용은 [AWS Step Functions 요금](https://aws.amazon.com/step-functions/pricing/)을 참조하세요.

## 1단계: 상태 머신 만들기
<a name="sample-etl-orchestration-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-etl-orchestration-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# AWS Batch 및 Amazon SNS를 사용하여 배치 작업 관리
<a name="batch-job-notification"></a>

이 샘플 프로젝트는 AWS Batch 작업을 제출하고, 작업의 성공 또는 실패 여부에 따라 Amazon SNS 알림을 전송하는 방법을 보여줍니다. 이 샘플 프로젝트를 배포하면 AWS Step Functions 상태 머신, AWS Batch 작업 및 Amazon SNS 주제가 생성됩니다.

이 프로젝트에서 Step Functions은 상태 머신을 사용하여 AWS Batch 작업을 동기식으로 호출합니다. 그런 다음 작업이 성공 또는 실패하기까지 대기한 다음 작업의 성공 또는 실패 여부에 대한 메시지와 함께 Amazon SNS 주제를 전송합니다.

## 1단계: 상태 머신 만들기
<a name="batch-job-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-container-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Map 상태로 배치 작업 팬아웃
<a name="sample-batch-fan-out"></a>

이 샘플 프로젝트에서는 Step Functions의 [Map 워크플로 상태](state-map.md) 상태를 사용하여 AWS Batch 작업을 팬아웃하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 상태 머신을 사용하여 Lambda 함수를 간접적으로 호출해 간단한 사전 처리를 수행한 다음 [Map 워크플로 상태](state-map.md) 상태를 사용하여 여러 AWS Batch 작업을 동시에 간접적으로 호출합니다.

## 1단계: 상태 머신 만들기
<a name="sample-batch-fan-out-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-batch-fan-out-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.

# Lambda를 사용한 AWS Batch 작업 실행
<a name="sample-batch-lambda"></a>

이 샘플 프로젝트에서는 Step Functions를 사용하여 AWS Lambda 함수로 데이터를 사전 처리한 다음 작업을 AWS Batch 오케스트레이션하는 방법을 보여줍니다.

이 프로젝트에서 Step Functions는 상태 머신을 사용하여 Lambda 함수를 간접적으로 호출해 AWS Batch 작업이 제출되기 전에 간단한 사전 처리를 수행합니다. 이전 작업의 결과 또는 성공 여부에 따라 여러 작업을 간접적으로 호출할 수 있습니다.

## 1단계: 상태 머신 만들기
<a name="sample-batch-lambda-create"></a>

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 **상태 머신 생성**을 선택합니다.

1. **템플릿에서 생성**을 선택하고 관련 스타터 템플릿을 찾습니다. **다음**을 선택하여 계속 진행합니다.

1. 사용할 템플릿을 선택합니다.

   1. **데모 실행** - 읽기 전용 상태 머신을 생성합니다. 검토 후 워크플로와 모든 관련 리소스를 생성할 수 있습니다.

   1. **이를 기반으로 구축** - 자체 리소스를 사용하여 검토, 사용자 지정 및 배포할 수 있는 편집 가능한 워크플로 정의를 제공합니다. (함수 또는 대기열과 같은 관련 리소스는 자동으로 생성되지 **않습니다**.)

1. **템플릿 사용**을 선택하여 계속 선택합니다.
**참고**  
*계정에 배포된 서비스에 표준 요금이 적용됩니다.*

## 2단계: 상태 머신 데모 실행
<a name="sample-batch-lambda-start-execution"></a>

**데모 실행** 옵션을 선택한 경우 모든 관련 리소스가 배포되고 실행할 준비가 됩니다. **이를 기반으로 구축**을 선택한 경우 사용자 지정 워크플로를 실행하기 전에 자리 표시자 값을 설정하고 추가 리소스를 생성해야 할 수 있습니다.

1. **배포 및 실행**을 선택합니다.

1. CloudFormation 스택이 배포될 때까지 기다립니다. 이 프로세스는 최대 10분이 걸릴 수 있습니다.

1. **실행 시작** 옵션이 나타나면 **입력**을 검토하고 **실행 시작**을 선택합니다.

**축하합니다\$1**  
이제 상태 머신의 데모가 실행 중이어야 합니다. **그래프 보기**에서 상태를 선택하여 입력, 출력, 변수, 정의 및 이벤트를 검토할 수 있습니다.