

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

# Step Functions에서 워크플로 유형 선택
<a name="choosing-workflow-type"></a>

상태 머신을 생성할 때는 *Standard* 또는 *Express*(일반적으로 Standard 워크플로 또는 Express 워크플로라고 함) 중 하나의 **유형**을 선택해야 합니다.

[Amazon States Language를 사용하여 Step Functions 워크플로 정의](concepts-amazon-states-language.md)를 사용하여 두 상태 머신 유형을 정의합니다.

Standard 및 Express 워크플로는 Amazon API Gateway, IoT 규칙, 그리고 140개가 넘는 Amazon EventBridge 이벤트 소스로부터 HTTP 요청과 같은 이벤트에 대한 응답으로 시작될 수 있습니다.

**워크플로 유형은 변경할 수 없습니다.**  
상태 머신을 만든 후에는 선택한 워크플로 유형을 변경할 수 **없습니다**.

**표준 워크플로**는 장기 실행되고(최대 1년) 내구성이 뛰어나며 감사 가능한 워크플로에 적합합니다. 실행 완료 후 최대 90일까지 [Step Functions API](https://docs.aws.amazon.com/step-functions/latest/apireference)를 사용하여 전체 실행 내역을 검색할 수 있습니다.

 Standard 워크플로는 ASL에 `Retry` 동작이 지정되지 않는 한 작업과 상태가 절대 2번 이상 실행되지 않는 *exactly-once* 모델을 따릅니다. 따라서 exactly-once 모델은 Standard 워크플로가 Amazon EMR 클러스터 시작 또는 결제 처리와 같이 **멱등성이 없는** 작업을 오케스트레이션하는 데 적합하도록 만듭니다.

표준 워크플로 실행 요금은 처리된 상태 전환 횟수에 따라 청구됩니다.

**Express 워크플로**는 IoT 데이터 수집, 스트리밍 데이터 처리 및 트랜스포메이션, 모바일 애플리케이션 백엔드 등의 대용량 이벤트 처리 워크로드에 적합합니다. 이러한 워크플로는 최대 5분 동안 실행할 수 있습니다.

Express 워크플로는 실행이 2번 이상 실행될 수 있는 *at-least-once* 모델을 사용합니다. 이 at-least-once 모델을 사용하면 Express 워크플로가 PUT 작업을 사용하여 Amazon DynamoDB에 저장할 입력 데이터를 트랜스포밍하는 등 **멱등성** 작업을 오케스트레이션하는 데 더 적합합니다.

Express 워크플로 실행 요금은 실행 횟수, 총 실행 기간 및 해당 기간 동안 사용된 메모리에 따라 청구됩니다.

**작은 정보**  
Express 워크플로 예제를 배포하려면 * AWS Step Functions 워크숍*의 [병렬 데이터 처리를 참조하세요](https://catalog.workshops.aws/stepfunctions/parallel-state).

**표준 및 Express 워크플로 유형 비교**


| 유형 / 범주 | 표준 워크플로 | Express 워크플로: 동기 및 비동기 | 
| --- | --- | --- | 
| 최대 기간 | 1년 | 5분 | 
| 지원되는 실행 시작 비율 |  지원되는 실행 시작률과 관련된 할당량은 [API 작업 제한과 관련된 할당량](service-quotas.md#service-limits-api-action-throttling-general) 섹션을 참조하세요. |  지원되는 실행 시작률과 관련된 할당량은 [API 작업 제한과 관련된 할당량](service-quotas.md#service-limits-api-action-throttling-general) 섹션을 참조하세요. | 
| 지원되는 상태 전환 비율 |  지원되는 상태 전환율과 관련된 할당량은 [상태 제한과 관련된 할당량](service-quotas.md#service-limits-api-state-throttling) 섹션을 참조하세요. | 제한 없음 | 
| [요금](https://aws.amazon.com/step-functions/pricing) | 상태 전환 횟수를 기준으로 가격이 책정됩니다. 상태 전환은 실행이 완료되는 단계마다 계산됩니다. | 실행 횟수, 실행 기간, 메모리 사용량에 따라 가격이 책정됩니다. | 
| 실행 내역 |  Step Functions API를 사용하여 실행을 나열하고 설명할 수 있습니다. 콘솔을 통해 실행을 시각적으로 디버깅할 수 있습니다. 상태 머신에서 로깅을 활성화하여 CloudWatch Logs에서 실행을 검사할 수도 있습니다. 콘솔에서의 표준 워크플로 실행을 디버깅하는 방법에 대한 자세한 내용은 [표준 및 Express 콘솔 환경 차이](concepts-view-execution-details.md#console-exp-differences) 및 [워크플로 실행 보기](concepts-view-execution-details.md) 섹션을 참조하세요.  | 무제한 실행 내역, 즉 5분 동안 생성할 수 있는 만큼 실행 내역 항목이 유지됩니다. 상태 머신에서 로깅을 활성화하여 CloudWatch Logs 또는 Step Functions 콘솔에서 실행을 검사할 수 있습니다. 콘솔에서의 Express 워크플로 실행을 디버깅하는 방법에 대한 자세한 내용은 [표준 및 Express 콘솔 환경 차이](concepts-view-execution-details.md#console-exp-differences) 및 [워크플로 실행 보기](concepts-view-execution-details.md) 섹션을 참조하세요.  | 
| [실행 시맨틱](#express-at-least-once-execution) | Exactly-once 워크플로 실행. | *비동기 Express 워크플로*: *At-least-once* 워크플로 실행. *동기 Express 워크플로*: *At-most-once* 워크플로 실행. | 
| [서비스 통합](integrate-services.md) | 모든 서비스 통합 및 패턴을 지원합니다. | 모든 서비스 통합을 지원합니다.Express 워크플로는 작업 실행(`.sync`) 또는 콜백(`.waitForTaskToken`) 서비스 통합 패턴을 지원하지 않습니다. | 
| [Distributed Map](state-map-distributed.md) | 지원됨 | 지원되지 않음 | 
| [활동](concepts-activities.md) | 지원됨 | 지원되지 않음 | 

**워크플로 유형 최적화**  
비교 및 비용 영향 분석 예제는 Step Functions를 사용한 대규모 데이터 처리 워크숍에서 [워크플로 유형 선택](https://catalog.workshops.aws/serverless-data-processing/advanced/optimization/workflow-type)을 참조하세요.

## Step Functions의 동기 및 비동기 Express 워크플로
<a name="concepts-express-synchronous"></a>

선택할 수 있는 Express 워크플로 유형에는 비동기 Express 워크플로 및 동기 Express 워크플로 등 두 가지가 있습니다.
+  **비동기 Express 워크플로**는 워크플로가 시작되었다는 확인을 반환되지만 워크플로가 완료될 때까지 기다리지 않습니다. 결과를 얻으려면 서비스의 [CloudWatch Logs](cw-logs.md)를 폴링해야 합니다. 메시징 서비스 또는 다른 서비스에서 사용하지 않는 데이터 처리와 같은 즉각적인 응답 출력이 필요하지 않은 경우에 비동기 Express 워크플로를 사용할 수 있습니다. Step Functions의 중첩된 워크플로에서 또는 `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API 직접 호출을 사용하여 이벤트에 대한 응답으로 비동기 Express 워크플로를 시작할 수 있습니다.
+  **동기 Express 워크플로**는 워크플로를 시작하고 완료될 때까지 기다린 다음 결과를 반환합니다. 동기 Express 워크플로를 사용하여 마이크로서비스를 오케스트레이션할 수 있습니다. 동기 Express 워크플로를 사용하면 오류 처리, 재시도 또는 병렬 작업 실행을 위한 추가 코드를 개발하지 않고도 애플리케이션을 개발할 수 있습니다. Amazon API Gateway에서 호출하거나 `[StartSyncExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartSyncExecution.html)` API 호출 AWS Lambda을 사용하여 동기 Express 워크플로를 실행할 수 있습니다.
**참고**  
콘솔에서 Step Functions Express 워크플로를 동기적으로 실행하면 60초 후에 `StartSyncExecution` 요청이 만료됩니다. 최대 5분 동안 Express 워크플로를 동기식으로 실행하려면 Step Functions 콘솔 대신 AWS SDK 또는 AWS Command Line Interface (AWS CLI)를 사용하여 `StartSyncExecution` 요청합니다.

  동기 Express 실행 API 직접 호출은 기존 계정 용량 한도에 영향을 주지 않습니다. Step Functions는 온디맨드 용량을 제공하고 지속적인 워크로드에 따라 자동으로 규모를 조정합니다. 용량이 확보될 때까지 워크로드 급증이 제한될 수 있습니다.

## Step Functions 워크플로의 실행 보장
<a name="express-at-least-once-execution"></a>


|  표준 워크플로  |  비동기 Express 워크플로  |  동기 Express 워크플로  | 
| --- | --- | --- | 
| Exactly-once 워크플로 실행  | At-least-once 워크플로 실행  | At-most-once 워크플로 실행 | 
| 실행 상태는 상태 전환 간에 내부적으로 유지됩니다. | 실행 상태는 상태 전환 간에 유지되지 않습니다. | 실행 상태는 상태 전환 간에 유지되지 않습니다. | 
| 현재 실행 중인 워크플로와 동일한 이름으로 실행을 시작하면 자동으로 멱등성 응답을 반환합니다. 새 워크플로는 시작되지 않으며 현재 실행 중인 워크플로가 완료되면 예외가 발생합니다. | 멱등성이 자동으로 관리되지 않습니다. 같은 이름의 워크플로를 여러 개 시작하면 동시에 실행됩니다. 상태 머신 로직이 멱등하지 않으면 내부 워크플로 상태가 손실될 수 있습니다. | 멱등성이 자동으로 관리되지 않습니다. Step Functions는 실행이 시작되면 대기하고 완료되면 상태 머신 결과를 반환합니다. 예외가 발생하면 워크플로는 다시 시작되지 않습니다. | 
|  실행 내역 데이터는 90일 후에 제거됩니다. 오래된 실행 데이터를 제거한 후에 워크플로 이름을 다시 사용할 수 있습니다. 규정 준수, 조직 또는 규제 기관 요구 사항을 충족하려면 할당량 요청을 보내 실행 내역 보존 기간을 30일로 줄이면 됩니다. 이렇게 하려면를 사용하고 새 사례를 AWS Support Center Console 생성합니다.  | 실행 내역은 Step Functions에서 캡처되지 않습니다. Amazon CloudWatch Logs를 통해 로깅을 활성화해야 합니다. | 실행 내역은 Step Functions에서 캡처되지 않습니다. Amazon CloudWatch Logs를 통해 로깅을 활성화해야 합니다. | 