AWS Service Catalog 에서 Amazon EMR 템플릿 구성(관리자용) - 아마존 SageMaker

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

AWS Service Catalog 에서 Amazon EMR 템플릿 구성(관리자용)

이 섹션에서는 사용자가 Amazon Studio Classic 노트북에서 SageMaker Amazon EMR 클러스터를 독립적으로 자체 프로비저닝할 수 있도록 관리자가 AWS Service Catalog제품을 구성하는 방법에 대한 세부 정보를 제공합니다. 또한 관리자는 최종 사용자가 클러스터의 다양한 측면을 특정 요구 사항에 적합하게 사용자 지정할 수 있는 방식으로 Amazon EMR 클러스터 템플릿을 구성할 수 있습니다. 예를 들어 관리자는 클러스터를 생성할 때 사용자가 선택할 수 있는 허용 가능한 인스턴스 유형 목록을 정의할 수 있습니다.

이 주제에서는 사용자가 Amazon EMR, AWS CloudFormation, AWS Service Catalog에서의 포트폴리오 및 제품 생성에 익숙하다고 가정합니다.

참고

AWS-samples/sagemaker-studio-emr GitHub 리포지토리의 AWS CloudFormation 템플릿을 IAM 역할, Amazon VPC, 샌드박스 스튜디오 클래식 도메인, 사용자 프로필, Amazon EMR 클러스터를 시작하기 위한 템플릿을 배포하기 위한 CloudFormation 스택의 예로 참조할 수 있습니다. CloudFormation Studio Classic과 Amazon EMR 클러스터 간의 인증 방법에 따라 몇 가지 옵션을 사용할 수 있습니다. 이 예제에서 상위 CloudFormation 템플릿은 SageMaker VPC ID, 보안 그룹 및 서브넷 ID 파라미터를 Amazon EMR 클러스터의 CloudFormation 템플릿으로 전달합니다.

중첩된 리포지토리 sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates에서 CloudFormation Amazon EMR 템플릿의 다양한 예제에 액세스할 수 있으며, 나아가 단일 계정 배포에서 크로스 어카운트를 선택할 수 있습니다.

Amazon EMR 클러스터에 연결할 때 사용할 수 있는 인증 방법에 대한 자세한 내용은 스튜디오 클래식 노트북의 Amazon EMR 클러스터 사용을 참조하세요.

Amazon EMR 클러스터 생성을 단순화하기 위해 관리자는 Amazon EMR 클러스터의 CloudFormation 템플릿을 포트폴리오의 제품으로 등록할 수 있습니다. AWS Service Catalog그런 다음 Service Catalog 포트폴리오를 Studio Classic 실행 역할과 연결하여 Studio Classic에서 템플릿의 가용성을 보장합니다. 또한 데이터 과학자가 해당 템플릿을 검색하고, Amazon EMR 클러스터를 프로비저닝하고, Studio Classic 노트북에서 Amazon EMR 클러스터에 연결할 수 있도록 하려면 관리자가 적절한 액세스 권한을 설정해야 합니다.

다음 목록은 Studio Classic이 Service Catalog 제품에 액세스하고 Amazon EMR 클러스터를 프로비저닝할 수 있도록 관리자가 기준 CloudFormation 스택에 적용하는 데 필요한 추가 설정을 제공합니다. 이러한 설정은 다음과 같이 여러 수준에서 적용되어야 합니다.

  • Service Catalog 포트폴리오에서

  • Service Catalog 제품에서

  • CloudFormation Amazon EMR 템플릿에서 Service Catalog 제품으로 선언됨

마지막으로, 관리자는 Studio Classic과 Amazon EMR이 같은 계정에 속해 있는지 아니면 다른 계정에 있는지에 따라 클러스터에 액세스하는 Studio Classic 실행 역할과 Amazon EMR이 배포된 계정 모두에 필요한 권한을 할당해야 합니다. AWS

  • 사전 조건: 네트워킹 및 인증 요구 사항

    사전 요구 사항으로 에서 네트워킹 구성(관리자용) 네트워킹 및 보안 요구 사항을 검토하고 선택한 인증 방법을 지원하는 기본 CloudFormation 스택을 생성했는지 확인하십시오. AWS-samples/sagemaker-studio-emr에서 CloudFormation 템플릿의 예를 찾을 수 있습니다.

  • Service Catalog 포트폴리오에서:

    포트폴리오 CloudFormation 템플릿에 다음 섹션 (YAML 형식의 예제 참조) 을 추가하여 포트폴리오를 클러스터에 액세스하는 Studio Classic 실행 역할과 연결하세요.

    SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio ID PrincipalType: IAM
  • Service Catalog 제품에서:

    Amazon EMR 템플릿 리소스를 참조하는 Service Catalog 제품에 다음 태그 키 "sagemaker:studio-visibility:emr"을 추가하고 값 "true"(여기서는 YAML)를 설정합니다. 이렇게 하면 Studio Classic에서 템플릿의 가시성이 보장됩니다.

    SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-ml-blog.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"
  • 서비스 카탈로그 제품 내 Amazon EMR 클러스터 CloudFormation 템플릿에서:

    다음 필수 스택 파라미터를 자리 표시자로 추가합니다. 이 섹션에는 Studio Classic에서 클러스터를 프로비저닝할 때 사용자가 사용하는 Studio Classic 프로젝트 이름과 식별자가 입력되어 있습니다.

    SageMakerProjectName: Type: String Description: Name of the project SageMakerProjectId: Type: String Description: Service generated Id of the project.

    관리자는 DefaultAllowedValues을 지정하여 템플릿의 파라미터 섹션에 선택 항목을 포함함으로써 클러스터를 만들 때 사용자가 사용자 지정 값을 입력 또는 선택하도록 할 수 있습니다. 다음 예는 Amazon EMR 템플릿을 생성할 때 관리자가 설정할 수 있는 추가 입력 파라미터를 보여줍니다.

    "Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }
  • 마지막으로 필수 IAM 정책을 첨부하여 Amazon EMR 템플릿을 확인하고 스튜디오 클래식 CloudFormation 노트북에서 Amazon EMR 클러스터를 자체 프로비저닝할 수 있도록 합니다. 이러한 정책을 추가해야 하는 역할은 Studio Classic과 Amazon EMR이 동일한 계정 (단일 계정) 에 배포되었는지 아니면 다른 계정 (교차 계정) 에 배포되었는지에 따라 다릅니다.

    • Amazon EMR 클러스터가 Studio Classic AWS 계정과 동일한 계정에 배포된 경우 단일 계정 탭을 참조하십시오.

    • Amazon EMR 클러스터를 Studio Classic AWS 계정과 다른 계정에 배포한 경우 교차 계정 탭을 참조하십시오.

    역할을 사용하는 교차 계정 액세스에 대한 자세한 내용은 IAM의 교차 계정 리소스 액세스 또는 교차 계정 정책 평가 로직을 참조하세요.

    Single account

    클러스터에 액세스하는 Studio Classic 실행 역할에 다음 권한을 부여하십시오.

    다음 목록은 필요한 권한에 대한 분석을 제공합니다.

    • AllowEMRTemplateDiscovery를 통해 Amazon EMR 템플릿을 검색할 수 있습니다.

    • AllowSagemakerProjectManagementSageMaker 프로젝트를 생성할 수 있습니다. Studio Classic에서는 프로젝트를 통해 에 대한 액세스 권한이 AWS Service Catalog 부여됩니다.

    • AllowClusterDetailsDiscoveryAllowClusterDiscovery를 통해 Amazon EMR 클러스터를 검색하고 연결할 수 있습니다.

    • AllowPresignedUrl을 통해 미리 서명된 URL을 생성하여 Spark UI에 액세스합니다.

    다음은 이러한 권한을 포함하는 포괄적인 JSON입니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" }, ] }
    Cross accounts

    Amazon EMR 클러스터와 Studio Classic을 별도의 AWS 계정에 배포하는 경우 여러 단계를 거쳐 권한을 구성합니다.

    • 신뢰 계정(Amazon EMR이 배포된 계정)에서 다음 권한 및 신뢰 관계를 사용하여 사용자 지정 IAM 역할(이 페이지에서는 ASSUMABLE-ROLE이라고 함)을 생성합니다.

      AWS 계정에서 역할 생성에 대한 자세한 내용은 IAM 역할 생성(콘솔)을 참조하세요.

      1. 다음 권한을 정의하는 IAM 정책을 추가합니다.

        • AllowClusterDetailsDiscoveryAllowClusterDiscovery를 통해 Amazon EMR 클러스터를 검색하고 연결합니다.

        • AllowPresignedUrl을 통해 미리 서명된 URL을 생성하여 Spark UI에 액세스합니다.

        다음은 이러한 권한을 포함하는 포괄적인 JSON입니다.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
      2. 신뢰할 수 있는 계정 (Studio Classic이 배포된 계정) 에 신뢰 계정에서 역할을 수임할 수 있는 권한을 부여하려면 다음과 같은 신뢰 관계를 포함하십시오.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    • 신뢰할 수 있는 계정 (Studio Classic이 배포된 계정) 에서 Studio Classic 실행 역할에 다음 권한 및 신뢰 관계를 추가하십시오.

      1. 다음 권한을 정의하는 IAM 정책을 추가합니다.

        • AllowSagemakerProjectManagementSageMaker 프로젝트 생성을 허용하기 위해서입니다. Studio Classic에서는 프로젝트를 통해 에 대한 액세스 권한이 AWS Service Catalog 부여됩니다.

        • AllowEMRTemplateDiscovery를 통해 Amazon EMR 템플릿을 검색할 수 있습니다.

        다음은 이러한 권한을 포함하는 포괄적인 JSON입니다.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:::project/*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" } ] }
      2. Studio Classic 실행 역할에 신뢰 계정의 권한을 위임할 수 ASSUMABLE-ROLE 있는 권한을 부여하려면 다음과 같은 신뢰 관계를 포함하십시오.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
    • 마지막으로 Studio Classic 실행 역할에 의 ASSUMABLE-ROLE ARN을 제공하는 방법을 교차 계정 사용 사례를 위한 추가 구성(관리자용) 알아보려면 를 참조하십시오. ARN은 시작 시 스튜디오 클래식 주피터 서버에서 로드됩니다. Studio Classic 실행 역할은 신뢰 계정에서 Amazon EMR 클러스터를 검색하고 연결하는 계정 간 역할을 가정합니다.

Amazon SageMaker Studio Classic에서 CloudFormation 템플릿을 사용할 수 있게 되면 데이터 과학자는 이를 사용하여 Amazon EMR 클러스터를 자체 프로비저닝할 수 있습니다. 템플릿에 "Parameters" 지정된 각 항목은 Studio Classic의 클러스터 생성 양식에서 입력 상자가 되며, 드롭다운 메뉴에 해당 항목이 "AllowedValues" 나타납니다.

다음 그림은 Studio Classic에서 CloudFormation Amazon EMR 클러스터를 생성하기 위해 Amazon EMR 템플릿에서 조합한 동적 양식을 보여줍니다. SageMaker

스튜디오 클래식에서 Amazon EMR 클러스터를 생성하기 위해 CloudFormation Amazon EMR 템플릿에서 조합한 동적 양식의 그림. SageMaker

Amazon EMR 템플릿을 사용하여 Studio Classic에서 클러스터를 시작하는 방법에 대해 알아보려면 방문하십시오스튜디오 클래식에서 Amazon EMR 클러스터 시작.