

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

# 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**와 같이 표시됩니다.