翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EMR Studio の AWS CloudFormation テンプレートを作成する
EMR Studio クラスターテンプレートについて
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 アクセス許可ポリシーで設定できます。
CloudFormation テンプレートの詳細については、「AWS CloudFormation ユーザーガイド」の「テンプレート」をご参照ください。詳細については AWS Service Catalog、「 とは AWS Service Catalog」を参照してください。
次の動画では、EMR Studio 用に AWS Service Catalog でクラスターテンプレートを設定する方法が示されています。詳細については、ブログ投稿「Build a self-service environment for each line of business using Amazon EMR and Service Catalog
オプションのテンプレートパラメータ
テンプレートの Parameters セクションに追加のオプションを含めることができます。Parameters により、Studio ユーザーがクラスターのカスタム値を入力または選択できます。例えば、ユーザーが特定の Amazon EMR リリースを選択できるようにするパラメータを追加できます。詳細については、「AWS CloudFormation ユーザーガイド」の「パラメータ」を参照してください。
次のサンプル 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 の追加のフォームオプションを示しています。
前提条件
クラスターテンプレートを作成する前に、Service Catalog 管理者コンソールビューにアクセスするための IAM アクセス許可があることを確認してください。また、Service Catalog 管理タスク実行するための IAM アクセス許可も必要です。詳細については、「Grant permissions to Service Catalog administrators」を参照してください。
EMR クラスターテンプレートの作成
Service Catalog を使用して EMR クラスターテンプレートを作成するには
-
1 つ以上の CloudFormation テンプレートを作成します。テンプレートを保存する場所はユーザーが決定します。テンプレートはフォーマット設定されたテキストファイルであるため、Amazon S3 にアップロードするか、ローカルファイルシステムに保存することができます。CloudFormation テンプレートの詳細については、「AWS CloudFormation ユーザーガイド」の「テンプレート」をご参照ください。
次のルールを使用してテンプレートに名前を付けるか、パターン
[a-zA-Z0-9][a-zA-Z0-9._-]*に照らして名前をチェックします。-
テンプレート名の先頭は、英字または数字である必要があります。
-
テンプレート名には、英字、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) のみを使用できます。
作成する各クラスターテンプレートには、以下のオプションが含まれている必要があります。
入力パラメータ
-
ClusterName - プロビジョニング後にユーザーがクラスターを識別するのに役立つクラスターの名前。
出力
-
ClusterId- 新しくプロビジョニングされた EMR クラスターの ID。
2 つのノードを持つクラスターの YAML 形式の AWS 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 -
-
Studio と同じ AWS アカウントでクラスターテンプレートのポートフォリオを作成します。
-
https://console.aws.amazon.com/servicecatalog/
で AWS Service Catalog コンソールを開きます。 -
左のナビゲーションメニューから [Portfolios] (ポートフォリオ) を選択します。
-
[Create portfolio] (ポートフォリオの作成) ページで、必要情報を入力します。
-
Create. AWS Service Catalog creates を選択します。ポートフォリオを作成し、ポートフォリオの詳細を表示します。
-
-
次のステップを使用して、クラスターテンプレートを AWS Service Catalog 製品として追加します。
-
AWS Service Catalog マネジメントコンソールで [Administration] (管理) の [Products] (製品) ページに移動します。
-
[Upload new product] (新しい製品のアップロード) を選択します。
-
[Product name] (製品名) および [Owner] (所有者) を入力します。
-
[Version details] (バージョンの詳細) でテンプレートファイルを指定します。
-
[Review] (確認) を選択して製品設定を確認してから、[Create product] (製品の作成) を選択します。
-
-
ポートフォリオに製品を追加するには、以下のステップを完了します。
-
AWS Service Catalog マネジメントコンソールで [Products] (製品) ページに移動します。
-
製品を選択し、[Actions] (アクション)、[Add product to portfolio]] (ポートフォリオへの製品の追加) の順に選択します。
-
ポートフォリオを選択し、[Add product to portfolio] (ポートフォリオへの製品の追加) を選択します。
-
-
製品の起動制約を作成します。起動制約は、製品を起動するためのユーザーアクセス許可を指定する IAM ロールです。起動制約を調整できますが、CloudFormation、Amazon EMR、および AWS Service Catalogを使用するためのアクセス許可を許可する必要があります。詳細な情報と手順については、「Service Catalog launch constraints」を参照してください。
-
起動制約をポートフォリオ内の各製品に適用します。起動制約は、各製品に個別に適用する必要があります。
-
AWS Service Catalog マネジメントコンソールの [Portfolios] (ポートフォリオ) ページからポートフォリオを選択します。
-
[制約] タブを選択して、[制約の作成] を選択します。
-
製品を選択し、[Constraint type] (制約タイプ) で [Launch] (起動) を選択します。[続行] をクリックしてください。
-
[Launch constraint] (起動制約) セクションで起動制約ロールを選択し、[Create] (作成) を選択します。
-
-
ポートフォリオへのアクセス権を付与します。
-
AWS Service Catalog マネジメントコンソールの [Portfolios] (ポートフォリオ) ページからポートフォリオを選択します。
-
[Groups, roles, and users] (グループ、ロール、およびユーザー) タブをを展開し、[Add groups, roles, users] (グループ、ロール、またはユーザーの追加) を選択します。
-
[Roles] (ロール) タブで EMR Studio IAM ロールを検索し、ロールを選択し、[Add access] (アクセス権の追加) を選択します。
使用するもの アクセス権を付与する対象 IAM 認証 ネイティブユーザー IAM フェデレーション フェデレーションの IAM ロール IAM Identity Center フェデレーション EMR Studio ユーザーロール
-