

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

# Amazon EMR Studio용 AWS CloudFormation 템플릿 생성
<a name="emr-studio-cluster-templates"></a>

## EMR Studio 클러스터 템플릿 정보
<a name="emr-studio-about-cluster-templates"></a>

 AWS CloudFormation 템플릿을 생성하여 EMR Studio 사용자가 Workspace에서 새 Amazon EMR 클러스터를 시작할 수 있도록 지원할 수 있습니다. CloudFormation 템플릿은 JSON 또는 YAML 형식의 텍스트 파일입니다. 템플릿에서 AWS 리소스 스택을 설명하고 CloudFormation에 해당 리소스를 프로비저닝하는 방법을 알려줍니다. EMR Studio의 경우 Amazon EMR 클러스터를 설명하는 템플릿을 하나 이상 생성할 수 있습니다.

에서 템플릿을 구성합니다 AWS Service Catalog. AWS Service Catalog 를 사용하면 *제품*이라고 하는 일반적으로 배포되는 IT 서비스를 생성하고 관리할 수 있습니다 AWS. EMR Studio 사용자와 공유할 *포트폴리오*의 제품으로 템플릿을 수집합니다. 클러스터 템플릿을 생성한 후 Studio 사용자는 템플릿 중 하나를 사용하여 Workspace에 대한 새 클러스터를 시작할 수 있습니다. 사용자에게 템플릿에서 새 클러스터를 생성할 권한이 있어야 합니다. [EMR Studio 권한 정책](emr-studio-user-permissions.md)에서 사용자 권한을 설정할 수 있습니다.

CloudFormation 템플릿에 대한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#w2ab1b5c15b7)을 참조하세요. 에 대한 자세한 내용은 [란 무엇입니까?를 AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) AWS Service Catalog참조하십시오.

다음 비디오에서는 AWS Service Catalog 에서 EMR Studio용 클러스터 템플릿을 설정하는 방법을 보여줍니다. [Build a self-service environment for each line of business using Amazon EMR and Service Catalog](https://aws.amazon.com/blogs/big-data/build-a-self-service-environment-for-each-line-of-business-using-amazon-emr-and-aws-service-catalog/) 블로그 게시물에서 자세한 내용을 확인할 수 있습니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9w_TXTdFLpo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9w_TXTdFLpo)


### 선택적 템플릿 파라미터
<a name="emr-studio-cluster-template-parameters"></a>

템플릿 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) 섹션에 추가 옵션을 포함할 수 있습니다. *파라미터*를 통해 Studio 사용자는 클러스터의 사용자 지정 값을 입력하거나 선택할 수 있습니다. 예를 들어, 사용자가 특정 Amazon EMR 릴리스를 선택할 수 있도록 하는 파라미터를 추가할 수 있습니다. 자세한 내용은CloudFormation 사용 설명서의 [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)를 참조하세요.

다음 예제 `Parameters` 섹션에서는 `ClusterName`, `EmrRelease` 버전 및 `ClusterInstanceType` 등의 추가 입력 파라미터를 정의합니다.

```
Parameters:
  ClusterName:
    Type: "String"
    Default: "Cluster_Name_Placeholder"
  EmrRelease:
    Type: "String"
    Default: "emr-6.2.0"
    AllowedValues:
    - "emr-6.2.0"
    - "emr-5.32.0"
  ClusterInstanceType:
    Type: "String"
    Default: "m5.xlarge"
    AllowedValues:
    - "m5.xlarge"
    - "m5.2xlarge"
```

파라미터를 추가하면 Studio 사용자가 클러스터 템플릿을 선택한 후 추가 양식 옵션을 볼 수 있습니다. 다음 이미지는 **EmrRelease** 버전, **ClusterName**, **InstanceType**에 대한 추가 양식 옵션을 보여줍니다.

![\[사용자가 파라미터가 포함된 클러스터 템플릿을 선택할 때 Studio 사용자 인터페이스에 제공된 추가 입력의 스크린샷\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/cluster-template-parameters-studio-ui.jpg)


## 사전 조건
<a name="emr-studio-cluster-template-prereqs"></a>

클러스터 템플릿을 생성하기 전에 Service Catalog 관리자 콘솔 보기에 액세스할 수 있는 IAM 권한이 있어야 합니다. 또한 Service Catalog 관리 작업을 수행하는 데 필요한 IAM 권한이 필요합니다. 자세한 내용은 [Grant permissions to Service Catalog administrators](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-iamadmin.html)를 참조하세요.

## EMR 클러스터 템플릿 생성
<a name="emr-studio-cluster-template-instructions"></a>

**Service Catalog를 사용하여 EMR 클러스터 템플릿을 생성하는 방법**

1. 하나 이상의 CloudFormation 템플릿을 생성합니다. 템플릿 저장 위치는 사용자가 결정합니다. 템플릿 형식은 텍스트 파일이므로 Amazon S3에 업로드하거나 로컬 파일 시스템에 보관할 수 있습니다. CloudFormation 템플릿에 대한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#w2ab1b5c15b7)을 참조하세요.

   다음 규칙을 사용하여 템플릿의 이름을 지정하거나 `[a-zA-Z0-9][a-zA-Z0-9._-]*` 패턴과 비교하여 이름을 확인합니다.
   + 템플릿 이름은 숫자 또는 문자로 시작해야 합니다.
   + 템플릿 이름에는 문자, 숫자, 마침표(.), 밑줄(\$1), 하이픈(-)만 사용할 수 있습니다.

   생성하는 각 클러스터 템플릿에는 다음 옵션이 있어야 합니다.

   **입력 파라미터**
   + ClusterName - 클러스터가 프로비저닝된 후 사용자가 클러스터를 식별하는 데 도움이 되는 클러스터의 이름.

   **출력**
   + `ClusterId` - 새로 프로비저닝된 EMR 클러스터의 ID.

   다음은 노드가 2개인 클러스터에 대한 YAML 형식의 예제 CloudFormation 템플릿입니다. 예제 템플릿에는 필수 템플릿 옵션이 포함되어 있으며, 여기에서 `EmrRelease` 및 `ClusterInstanceType`에 대한 추가 입력 파라미터를 정의합니다.

   ```
   awsTemplateFormatVersion: 2010-09-09
   
   Parameters:
     ClusterName:
       Type: "String"
       Default: "Example_Two_Node_Cluster"
     EmrRelease:
       Type: "String"
       Default: "emr-6.2.0"
       AllowedValues:
       - "emr-6.2.0"
       - "emr-5.32.0"
     ClusterInstanceType:
       Type: "String"
       Default: "m5.xlarge"
       AllowedValues:
       - "m5.xlarge"
       - "m5.2xlarge"
   
   Resources:
     EmrCluster:
       Type: AWS::EMR::Cluster
       Properties:
         Applications:
         - Name: Spark
         - Name: Livy
         - Name: JupyterEnterpriseGateway
         - Name: Hive
         EbsRootVolumeSize: '10'
         Name: !Ref ClusterName
         JobFlowRole: EMR_EC2_DefaultRole
         ServiceRole: EMR_DefaultRole_V2
         ReleaseLabel: !Ref EmrRelease
         VisibleToAllUsers: true
         LogUri: 
           Fn::Sub: 's3://aws-logs-${AWS::AccountId}-${AWS::Region}/elasticmapreduce/'
         Instances:
           TerminationProtected: false
           Ec2SubnetId: 'subnet-ab12345c'
           MasterInstanceGroup:
             InstanceCount: 1
             InstanceType: !Ref ClusterInstanceType
           CoreInstanceGroup:
             InstanceCount: 1
             InstanceType: !Ref ClusterInstanceType
             Market: ON_DEMAND
             Name: Core
   
   Outputs:
     ClusterId:
       Value:
         Ref: EmrCluster
       Description: The ID of the  EMR cluster
   ```

1. Studio와 동일한 AWS 계정에 클러스터 템플릿에 대한 포트폴리오를 생성합니다.

   1. [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) AWS Service Catalog 콘솔을 엽니다.

   1. 왼쪽 탐색 메뉴에서 **포트폴리오**를 선택합니다.

   1. **포트폴리오 생성** 페이지에 요청된 정보를 입력합니다.

   1. **Create**. AWS Service Catalog creates 포트폴리오를 선택하고 포트폴리오 세부 정보를 표시합니다.

1. 다음 단계에 따라 클러스터 템플릿을 AWS Service Catalog 제품으로 추가합니다.

   1.  AWS Service Catalog 관리 콘솔의 **관리** 아래에 있는 **제품** 페이지로 이동합니다.

   1. **새 제품 업로드**를 선택합니다.

   1. **제품 이름** 및 **소유자**를 입력합니다.

   1. **버전 세부 정보**에서 템플릿 파일을 지정합니다.

   1. **검토**를 선택하여 제품 설정을 검토하고 **제품 생성**을 선택합니다.

1. 다음 단계를 완료하여 포트폴리오에 제품을 추가합니다.

   1.  AWS Service Catalog 관리 콘솔에서 **제품** 페이지로 이동합니다.

   1. 제품을 선택하고 **작업**을 선택한 후 **포트폴리오에 제품 추가**를 선택합니다.

   1. 포트폴리오를 선택한 다음 **포트폴리오에 제품 추가**를 선택합니다.

1. 제품의 시작 제약 조건을 생성합니다. 시작 제약 조건은 제품 시작에 관한 사용자 권한을 지정하는 IAM 역할입니다. 시작 제약 조건을 조정할 수 있지만 CloudFormation, Amazon EMR 및 AWS Service Catalog를 사용할 수 있는 권한을 허용해야 합니다. 자세한 내용과 지침은 [Service Catalog launch constraints](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html)를 참조하세요.

1. 포트폴리오의 각 제품에 시작 제약 조건을 적용합니다. 시작 제약 조건을 각 제품에 개별적으로 적용해야 합니다.

   1.  AWS Service Catalog 관리 콘솔의 **포트폴리오** 페이지에서 포트폴리오를 선택합니다.

   1. **제약** 탭을 선택하고 **제약 생성**을 선택합니다.

   1. 제품을 선택하고 **제약 유형**에서 **시작**을 선택합니다. **계속**을 선택합니다.

   1. **시작 제약 조건** 섹션에서 시작 제약 조건을 선택하고 **생성**을 선택합니다.

1. 포트폴리오에 대한 액세스 권한을 부여합니다.

   1.  AWS Service Catalog 관리 콘솔의 **포트폴리오** 페이지에서 포트폴리오를 선택합니다.

   1. **그룹, 역할 및 사용자** 탭을 확장하고 **그룹, 역할 및 사용자 추가**를 선택합니다.

   1. **역할** 탭에서 EMR Studio IAM 역할을 검색하고 역할을 선택한 다음 **액세스 추가**를 선택합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-studio-cluster-templates.html)