

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR Studio の AWS CloudFormation テンプレートを作成する
<a name="emr-studio-cluster-templates"></a>

## EMR Studio クラスターテンプレートについて
<a name="emr-studio-about-cluster-templates"></a>

EMR Studio ユーザーが Workspace で新しい Amazon EMR クラスターを起動するのに役立つ AWS CloudFormation テンプレートを作成できます。CloudFormation テンプレートは、JSON または YAML 形式のテキストファイルです。テンプレートでは、 AWS リソースのスタックを記述し、それらのリソースをプロビジョニングする方法を CloudFormation に伝えます。EMR Studio では、Amazon EMR クラスターを記述する 1 つ以上のテンプレートを作成できます。

テンプレートを整理します 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、[「 とは AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)」を参照してください。

次の動画では、EMR Studio 用に AWS Service Catalog でクラスターテンプレートを設定する方法が示されています。詳細については、ブログ投稿「[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) セクションに追加のオプションを含めることができます。*Parameters* により、Studio ユーザーがクラスターのカスタム値を入力または選択できます。例えば、ユーザーが特定の Amazon EMR リリースを選択できるようにするパラメータを追加できます。詳細については、「*CloudFormation ユーザーガイド*」の「[パラメータ](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/ja_jp/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. 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. 左のナビゲーションメニューから **[Portfolios]** (ポートフォリオ) を選択します。

   1. **[Create portfolio]** (ポートフォリオの作成) ページで、必要情報を入力します。

   1. **Create.** AWS Service Catalog creates を選択します。ポートフォリオを作成し、ポートフォリオの詳細を表示します。

1. 次のステップを使用して、クラスターテンプレートを AWS Service Catalog 製品として追加します。

   1.  AWS Service Catalog マネジメントコンソールで **[Administration]** (管理) の **[Products]** (製品) ページに移動します。

   1. **[Upload new product]** (新しい製品のアップロード) を選択します。

   1. **[Product name]** (製品名) および **[Owner]** (所有者) を入力します。

   1. **[Version details]** (バージョンの詳細) でテンプレートファイルを指定します。

   1. **[Review]** (確認) を選択して製品設定を確認してから、**[Create product]** (製品の作成) を選択します。

1. ポートフォリオに製品を追加するには、以下のステップを完了します。

   1.  AWS Service Catalog マネジメントコンソールで **[Products]** (製品) ページに移動します。

   1. 製品を選択し、**[Actions]** (アクション)、**[Add product to portfolio]**] (ポートフォリオへの製品の追加) の順に選択します。

   1. ポートフォリオを選択し、**[Add product to portfolio]** (ポートフォリオへの製品の追加) を選択します。

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 マネジメントコンソールの **[Portfolios]** (ポートフォリオ) ページからポートフォリオを選択します。

   1. **[制約]** タブを選択して、**[制約の作成]** を選択します。

   1. 製品を選択し、**[Constraint type]** (制約タイプ) で **[Launch]** (起動) を選択します。[**続行**] をクリックしてください。

   1. **[Launch constraint]** (起動制約) セクションで起動制約ロールを選択し、**[Create]** (作成) を選択します。

1. ポートフォリオへのアクセス権を付与します。

   1.  AWS Service Catalog マネジメントコンソールの **[Portfolios]** (ポートフォリオ) ページからポートフォリオを選択します。

   1. **[Groups, roles, and users]** (グループ、ロール、およびユーザー) タブをを展開し、**[Add groups, roles, users]** (グループ、ロール、またはユーザーの追加) を選択します。

   1. **[Roles]** (ロール) タブで EMR Studio IAM ロールを検索し、ロールを選択し、**[Add access]** (アクセス権の追加) を選択します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-studio-cluster-templates.html)