

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

# 워크플로를 IaC 템플릿으로 내보내기
<a name="exporting-iac-templates"></a>

AWS Step Functions 콘솔은 저장된 워크플로를 AWS CloudFormation 또는 AWS SAM(SAM) 템플릿으로 내보내고 다운로드할 수 있는 기능을 제공합니다. AWS Infrastructure Composer 지원 AWS 리전의 경우 워크플로를 Infrastructure Composer로 내보내고 Infrastructure Composer 콘솔로 이동하여 새로 생성된 템플릿을 계속 사용할 수 있습니다.

## 템플릿 구성 옵션
<a name="exporting-iac-templates-config-options"></a>

이 기능과 함께 다음 옵션을 사용할 수 있습니다. IaC 템플릿 파일을 내보내고 다운로드하도록 선택하면 콘솔에 저장된 상태 머신에 적용되는 옵션이 표시됩니다. Infrastructure Composer로 내보내는 경우 Step Functions 콘솔은 상태 머신에 적용되는 구성을 자동으로 구현합니다.
+  **사용자를 대신하여 콘솔에서 생성한 IAM 역할 포함** -이 옵션은 실행 역할 정책을 내보냅니다. 템플릿에서 IAM 역할을 구성하고 상태 머신 리소스에 연결합니다. 이 옵션은 상태 머신에 콘솔에서 생성한 실행 역할이 있는 경우에만 적용됩니다.
+  **CloudWatch 로그 그룹 포함** - 템플릿에 CloudWatch 로그 그룹을 구성하고 상태 머신 리소스에 연결합니다. 이 옵션은 상태 머신에 CloudWatch 로그 그룹이 연결되어 있고 [로그 수준](cw-logs.md#cloudwatch-log-level)이 `OFF`로 설정되지 *않은* 경우에만 적용됩니다.
+  **리소스 참조를 DefinitionSubstitutions로 바꾸기** - 이 옵션은 다음 구성 요소에 대한 [DefinitionSubstitutions](concepts-sam-sfn.md#sam-definition-substitution-eg)를 생성합니다.
  + [Distributed Map](state-map-distributed.md) S3 필드.
  + `Activity` 리소스. 내보내기에는 모든 `Run Activity` 작업에 대한 CloudFormation 템플릿의 `Activity` 리소스가 포함됩니다. 내보내기는 생성된 `Activity` 리소스를 참조하는 `DefinitionSubstitutions` 기능도 제공합니다.
  + 모든 서비스 통합에 대한 페이로드 필드의 `ARN` 또는 `S3URI`.
  + `ARN` 및 `S3URI` 필드 외에도 내보내기는 자주 사용되는 다른 서비스 통합 페이로드 필드에 대해 `DefinitionSubstitutions`를 생성합니다. 특정 서비스 통합은 다음과 같습니다.
    + `athena:startQueryExecution`
    + `batch:submitJob`
    +  `dynamodb:getItem`, `dynamodb:updateItem`, `dynamodb:updateItem`, `dynamodb:deleteItem` 
    + `ecs:runTask`
    + `glue:startJobRun`
    + `http:invoke`
    + `lambda:invoke`
    + `sns:publish`
    + `sqs:sendMessage`
    + `states:startExecution`

## 워크플로의 IaC 템플릿 내보내기 및 다운로드
<a name="exporting-iac-templates-files-procedure"></a>

**워크플로를 IaC 템플릿 파일로 내보내려면**

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 작업할 상태 머신을 선택합니다. 다음 단계로 진행하기 전에 상태 머신에 대한 변경 사항이 저장되었는지 확인합니다.

1. **작업** 메뉴에서 ** CloudFormation 또는 SAM 템플릿으로 내보내기**를 선택합니다.

1. 표시되는 대화 상자에서 **유형**을 **SAM** 또는 **CloudFormation**으로 선택합니다.
   + **CloudFormation** 템플릿을 선택한 경우 다음으로 **JSON** 또는 **YAML** 파일 형식을 선택합니다.
   + **SAM** 템플릿을 선택한 경우 형식 선택 항목이 표시되지 않습니다. SAM 템플릿의 기본값은 YAML 파일 형식입니다.

1. **추가 구성**을 확장합니다. 기본적으로 모든 옵션이 선택됩니다. IaC 템플릿의 옵션 선택을 검토하고 업데이트합니다. 옵션은 이전 섹션([템플릿 구성 옵션](#exporting-iac-templates-config-options))에서 자세히 설명합니다.

   옵션이 특정 워크플로에 적용되지 않으면 대화 상자에 표시되지 않습니다.

1. **다운로드**를 선택하여 생성된 IaC 템플릿 파일을 내보내고 다운로드합니다.

## 워크플로를 AWS Infrastructure Composer로 직접 내보내기
<a name="exporting-iac-templates-infra-composer-procedure"></a>

**워크플로를 Infrastructure Composer로 내보내려면**

1. [Step Functions 콘솔](https://console.aws.amazon.com/states/home?region=us-east-1#/)을 열고 작업할 상태 머신을 선택합니다. 다음 단계로 진행하기 전에 상태 머신에 대한 변경 사항이 저장되었는지 확인합니다.

1. **작업** 메뉴에서 **Infrastructure Composer로 내보내기**를 선택합니다.

1. **Infrastructure Composer로 내보내기** 대화 상자가 표시됩니다. **전송 버킷 이름** 필드에 표시되는 기본 이름을 사용하거나 새 이름을 입력할 수 있습니다. Amazon S3 버킷에 이름은 전역적으로 고유해야 하며 [버킷 이름 지정 규칙](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)을 따라야 합니다.

1. **확인 및 프로젝트 생성**을 선택하여 워크플로를 Infrastructure Composer로 내보냅니다.

1. 프로젝트 및 워크플로 정의를 Infrastructure Composer에 저장하려면 [로컬 동기화 모드](https://docs.aws.amazon.com/application-composer/latest/dg/reference-features-local-sync.html)를 활성화합니다.

**참고**  
이전에 **Infrastructure Composer로 내보내기** 기능을 사용하고 기본 이름을 사용하여 Amazon S3 버킷을 생성한 경우, Step Functions는 이 버킷이 아직 존재한다면 재사용할 수 있습니다. 대화 상자에서 기본 버킷 이름을 수락하여 기존 버킷을 재사용합니다.

### Amazon S3 버킷 구성 전송
<a name="export-appcomposer-bucket-info"></a>

Step Functions가 워크플로를 전송하기 위해 생성하는 Amazon S3 버킷은 AES 256 암호화 표준을 사용하여 객체를 자동으로 암호화합니다. Step Functions는 또한 [버킷 소유자 조건](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html)을 사용하도록 버킷을 구성하여 AWS 계정만 버킷에 객체를 추가할 수 있도록 합니다.

기본 버킷 이름은 10자리 영숫자 문자열인 접두사 `states-templates`을 사용하며, 워크플로를 생성한 AWS 리전의 위치는 다음과 같습니다. `states-templates-amzn-s3-demo-bucket-us-east-1`. AWS 계정에 추가되어 추가 요금이 부과되지 않도록 하려면 Infrastructure Composer로 워크플로 내보내기를 완료하는 즉시 Amazon S3 버킷을 삭제하는 것이 좋습니다.

표준 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)이 적용됩니다.

### 필수 권한
<a name="export-appcomposer-permissions"></a>

Infrastructure Composer 기능을 포함하는 Step Functions를 사용하려면 AWS SAM 템플릿을 다운로드하고 Amazon S3에 템플릿 구성을 작성할 수 있는 특정 권한이 필요합니다.

AWS SAM 템플릿을 다운로드하려면 다음 API 작업을 사용할 권한이 있어야 합니다.
+ [iam:GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)
+ [iam:GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)
+ [iam:GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
+ [iam:GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)
+ [iam:ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)
+ [iam:ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)
+ [iam:ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)

Step Functions가 Amazon S3에 함수 구성을 작성하려면 다음 API 작업을 사용할 권한이 있어야 합니다.
+ [S3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [S3:CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
+ [S3:PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)

함수 구성을 Infrastructure Composer로 내보낼 수 없는 경우 계정에 이러한 작업에 필요한 권한이 있는지 확인합니다.