Amazon EMR Studio の AWS CloudFormation テンプレートを作成する - Amazon EMR

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

Amazon EMR Studio の AWS CloudFormation テンプレートを作成する

EMR Studio クラスターテンプレートについて

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

テンプレートは で整理できます AWS Service Catalog。 AWS Service Catalog では、 の製品と呼ばれる、一般的にデプロイされる IT サービスを作成および管理できます AWS。テンプレートは、EMRStudio ユーザーと共有しているポートフォリオ内の製品として収集します。クラスターテンプレートを作成した後に、Studio ユーザーは、いずれかのテンプレートを使用して Workspace の新しいクラスターを起動できます。ユーザーは、テンプレートから新しいクラスターを作成するアクセス許可が必要です。Studio アクセス許可EMRポリシー でユーザーアクセス許可を設定できます。

CloudFormation テンプレートの詳細については、「 AWS CloudFormation ユーザーガイドhttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html#w2ab1b5c15b7」の「テンプレート」を参照してください。の詳細については AWS Service Catalog、「 とは AWS Service Catalog」を参照してください。

次の動画では、 AWS Service Catalog for EMR Studio でクラスターテンプレートを設定する方法を示します。詳細については、Amazon EMRと Service Catalog を使用して各事業部門のセルフサービス環境を構築するブログ記事を参照してください。

オプションのテンプレートパラメータ

テンプレートの Parameters セクションに追加のオプションを含めることができます。Parameters により、Studio ユーザーがクラスターのカスタム値を入力または選択できます。例えば、ユーザーが特定の Amazon EMRリリースを選択できるようにするパラメータを追加できます。詳細については、「AWS CloudFormation ユーザーガイド」の「パラメータ」を参照してください。

次のサンプル Parameters セクションでは、ClusterNameEmrRelease バージョン、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 ユーザーインターフェイスの追加入力のスクリーンショット。

前提条件

クラスターテンプレートを作成する前に、Service Catalog 管理者コンソールビューにアクセスするためのIAMアクセス許可があることを確認してください。Service Catalog 管理タスクを実行するために必要なIAMアクセス許可も必要です。詳細については、「Grant permissions to Service Catalog administrators」を参照してください。

手順

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._-]* に照らして名前をチェックします。

    • テンプレート名の先頭は、英字または数字である必要があります。

    • テンプレート名には、英字、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) のみを使用できます。

    作成する各クラスターテンプレートには、以下のオプションが含まれている必要があります。

    入力パラメータ

    • 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
  2. AWS Studio と同じアカウントでクラスターテンプレートのポートフォリオを作成します。

    1. で AWS Service Catalog コンソールを開きますhttps://console.aws.amazon.com/servicecatalog/

    2. 左のナビゲーションメニューから [Portfolios] (ポートフォリオ) を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

  5. 製品の起動制約を作成します。起動制約は、製品を起動するためのユーザーアクセス許可を指定する IAMロールです。起動制約は調整できますが、、Amazon CloudFormation、EMRおよび を使用するためのアクセス許可を付与する必要があります AWS Service Catalog。詳細な情報と手順については、「Service Catalog launch constraints」を参照してください。

  6. 起動制約をポートフォリオ内の各製品に適用します。起動制約は、各製品に個別に適用する必要があります。

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

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

    3. 製品を選択し、[Constraint type] (制約タイプ) で [Launch] (起動) を選択します。[Continue](続行) を選択します。

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

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

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

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

    3. IAM 「ロール」タブで EMR Studio ロールを検索し、ロールを選択し、「アクセスの追加」を選択します。

      使用するもの アクセス権を付与する対象
      IAM 認証 ネイティブユーザー
      IAM フェデレーション フェデレーションのIAMロール
      IAM Identity Center フェデレーション EMR Studio ユーザーロール