為 Amazon EMR 工作室創建 AWS CloudFormation 模板 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 Amazon EMR 工作室創建 AWS CloudFormation 模板

關於EMR工作室叢集範本

您可以建立 AWS CloudFormation 範本,以協助 EMR Studio 使用者在工作區中啟動新的 Amazon EMR 叢集。 CloudFormation 樣板是在JSON或中格式化的文字檔案YAML。在範本中,您會描述 AWS 資源堆疊,並說明 CloudFormation 如何為您佈建這些資源。對於 EMR Studio,您可以建立一個或多個描述 Amazon EMR 叢集的範本。

您可以在中組織範本 AWS Service Catalog。 AWS Service Catalog 可讓您建立和管理常用部署的 IT 服務 (稱為產品) AWS。您可以在與 EMR Studio 使用者共用的產品組合中以產品形式收集範本。建立叢集範本之後,Studio 使用者可以使用其中一個範本為工作區啟動新叢集。使用者必須具有從範本建立新叢集的許可。您可以在 EMRStudio 權限原則中設定使用者權限

若要進一步瞭解 CloudFormation 範本,請參閱《使用指南》中的AWS CloudFormation 〈範本。如需有關的詳細資訊 AWS Service Catalog,請參閱什麼是 AWS Service Catalog

下列影片示範如何在中 AWS Service Catalog 為 EMR Studio 設定叢集範本。您也可以在使用 Amazon EMR 和 Service Catalog 部落格文章為每個企業營運單位建立自助服務環境中深入了解。

選用範本參數

可以在範本的 Parameters 區段中包含其他選項。參數可讓 Studio 使用者輸入或選取叢集的自訂值。例如,您可以新增可讓使用者選取特定 Amazon EMR 版本的參數。如需更多詳細資訊,請參閱 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html 使用者指南中的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權限。您也需要必要的IAM權限,才能執行 Service Catalog 管理工作。如需詳細資訊,請參閱將許可授予給 Service Catalog 管理員

指示

使用 Service Catalog 建立EMR叢集範本
  1. 建立一或多個 CloudFormation 範本。儲存範本的位置由您決定。由於範本是格式化的文字檔案,因此可以將它們上傳到 Amazon S3 或保存在本機檔案系統中。若要進一步瞭解 CloudFormation 範本,請參閱《使用指南》中的AWS CloudFormation 〈範本

    使用下列規則來命名範本,或根據模式 [a-zA-Z0-9][a-zA-Z0-9._-]* 檢查名稱。

    • 範本名稱開頭必須是字母或數字。

    • 範本名稱只能由字母、數字、句點 (.)、底線 (_) 和連字號 (-) 組成。

    您建立的每個叢集範本都必須包含下列選項:

    輸入參數

    • ClusterName — 叢集的名稱,可協助使用者在佈建後加以識別。

    輸出

    • ClusterId— 新佈建之叢集EMR的識別碼。

    以下是具有兩個節點的集群的YAML格式示例 AWS CloudFormation 模板。範例範本包含必要的範本選項,並定義 EmrReleaseClusterInstanceType 的其他輸入參數。

    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. 在與 Studio 相同的 AWS 帳戶中為叢集範本建立產品組合。

    1. 在開啟 AWS Service Catalog 主控台https://console.aws.amazon.com/servicecatalog/

    2. 在左側導覽功能表中選擇產品組合

    3. 建立產品組合頁面中輸入要求的資訊。

    4. 選擇 [建立]。 AWS Service Catalog 創建投資組合並顯示投資組合的詳細信息。

  3. 使用以下步驟,將叢集範本新增為 AWS Service Catalog 產品。

    1. 導覽至 AWS Service Catalog 管理主控台中管理下的產品頁面。

    2. 選擇上傳新產品

    3. 輸入產品名稱擁有者

    4. 版本詳細資訊下指定範本檔案。

    5. 選擇檢閱來檢閱您的產品設定,然後選擇建立產品

  4. 請完成以下步驟,將您的產品新增到產品組合。

    1. 導覽至 AWS Service Catalog 管理主控台中的產品頁面。

    2. 選擇產品,選擇動作,然後選擇將產品新增至產品組合

    3. 選擇您的產品組合,然後選擇將產品新增至產品組合

  5. 為您的產品建立啟動限制。啟動條件約束是指定啟動產品的使用者權限的IAM角色。您可以自訂啟動限制,但必須允許使用 CloudFormation Amazon EMR 和 AWS Service Catalog. 如需詳細資訊和指示,請參閱 Service Catalog 啟動限制

  6. 將啟動限制套用至產品組合中的每個產品。必須將啟動限制單獨套用至每個產品。

    1. 從 AWS Service Catalog 管理主控台的產品組合頁面中選取您的產品組合。

    2. 選擇 Constraints (限制) 索引標籤,並選擇 Create constraint (建立限制)

    3. 選擇您的產品並在限制類型下選擇啟動。選擇繼續

    4. 啟動限制區段中選取您的啟動限制角色,然後選擇建立

  7. 授予對產品組合的存取權。

    1. 從 AWS Service Catalog 管理主控台的產品組合頁面中選取您的產品組合。

    2. 展開群組、角色和使用者索引標籤,然後選擇新增群組、角色和使用者

    3. 在 [角色] 索引標籤中搜尋您的 EMR Studio IAM 角色,選取您的角色,然後選擇 [新增存取權限]。

      如果您使用... 授予存取權限...
      IAM認證 原生使用者
      IAM联邦 您在同盟中的IAM角色
      IAM身分識別中心 您的EMR工作室用戶角色