기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Service Catalog에서 Amazon EMR CloudFormation 템플릿을 구성합니다.
이 주제에서는 관리자가 Amazon뿐만 아니라 AWS CloudFormationAmazon의 AWS Service Catalog포트폴리오와 제품에 대해 잘 알고 있다고 가정합니다. EMR
Studio에서 Amazon EMR 클러스터를 간편하게 생성하기 위해 관리자는 Amazon EMR CloudFormation 템플릿을 AWS Service Catalog포트폴리오의 제품으로 등록할 수 있습니다. 데이터 과학자가 템플릿을 사용할 수 있게 하려면 포트폴리오를 Studio 또는 Studio Classic에서 사용되는 SageMaker 실행 역할과 연결해야 합니다. 마지막으로, 사용자가 템플릿을 검색하고, 클러스터를 프로비저닝하고, Studio 또는 Studio Classic에서 Amazon EMR 클러스터에 연결할 수 있도록 하려면 관리자가 적절한 액세스 권한을 설정해야 합니다.
Amazon EMR AWS CloudFormation 템플릿을 사용하면 최종 사용자가 다양한 클러스터 측면을 사용자 지정할 수 있습니다. 예를 들어, 관리자는 클러스터를 생성할 때 사용자가 선택할 수 있는 승인된 인스턴스 유형 목록을 정의할 수 있습니다.
다음 지침은 end-to-end CloudFormation 스택을
참고
aws-samples/ GitHub
sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates
Amazon EMR 클러스터에 연결하는 데 사용할 수 있는 인증 방법에 SageMaker스튜디오 또는 스튜디오 클래식에서 Amazon EMR 클러스터에 연결 대한 자세한 내용은 을 참조하십시오.
데이터 과학자가 Studio 또는 Studio Classic에서 Amazon EMR CloudFormation 템플릿 및 프로비저닝 클러스터를 검색하도록 하려면 다음 단계를 따르십시오.
0단계: 네트워킹을 확인하고 CloudFormation 스택을 준비하십시오.
시작하기 전:
-
에서 네트워킹 및 보안 요구 사항을 검토했는지 확인하십시오네트워킹 구성.
-
선택한 인증 방법을 지원하는 기존 end-to-end CloudFormation 스택이 있어야 합니다. 이러한 CloudFormation 템플릿의 예는 sagemaker-studio-emr GitHub aws-samples/
리포지토리에서 찾을 수 있습니다. 다음 단계는 Studio 또는 Studio Classic에서 Amazon EMR 템플릿을 사용할 수 있도록 end-to-end 스택의 특정 구성을 강조 표시합니다.
1단계: Service Catalog 포트폴리오를 다음과 연결 SageMaker
Service Catalog 포트폴리오에서 포트폴리오 ID를 클러스터에 액세스하는 SageMaker 실행 역할과 연결합니다.
이렇게 하려면 다음 섹션 (여기서는 YAML 형식) 을 스택에 추가하십시오. 이렇게 하면 Amazon EMR 템플릿과 같은 제품이 포함된 지정된 Service Catalog 포트폴리오에 대한 SageMaker 실행 역할 액세스 권한이 부여됩니다. 에서 맡은 역할을 맡아 해당 제품을 SageMaker 출시할 수 있습니다.
Replace SageMakerExecutionRole.Arn
그리고 SageMakerStudioEMRProductPortfolio.ID
실제 가치와 함께 말이죠.
SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN:
SageMakerExecutionRole.Arn
PortfolioId:SageMakerStudioEMRProductPortfolio.ID
PrincipalType: IAM
참고
어떤 실행 역할을 고려해야 할까요?
Studio UI는 해당 UI를 실행한 사용자 프로필과 관련된 실행 역할에 따라 권한을 결정합니다. UI는 실행 시 이러한 권한을 설정합니다. 하지만 시작하는 스페이스 JupyterLab 또는 Studio Classic 애플리케이션에는 별도의 권한이 있을 수 있습니다.
애플리케이션 (예: Studio UI JupyterLab, Studio Classic) 에서 Amazon EMR 템플릿 및 클러스터에 일관되게 액세스하려면 도메인, 사용자 프로필 또는 스페이스 수준에서 모든 역할에 동일한 권한 하위 집합을 부여하십시오. 권한은 Amazon EMR 클러스터를 검색하고 프로비저닝할 수 있어야 합니다.
필요한 권한 세트에 대한 자세한 내용은 IAM 권한 섹션을 참조하십시오.
2단계: Service Catalog 제품에서 Amazon EMR 템플릿 참조
포트폴리오의 Service Catalog 제품에서 Amazon EMR 템플릿 리소스를 참조하여 Studio 또는 Studio Classic에서 해당 리소스가 가시적인지 확인하십시오.
이렇게 하려면 Service Catalog 제품 정의에서 Amazon EMR 템플릿 리소스를 참조한 다음 값에 다음 태그 키 "sagemaker:studio-visibility:emr"
세트를 추가합니다 "true"
(YAML형식의 예제 참조).
Service Catalog 제품 정의에서 클러스터의 AWS CloudFormation 템플릿은 를 통해 URL 참조됩니다. 추가 태그를 true로 설정하면 스튜디오 또는 스튜디오 클래식에서 Amazon EMR 템플릿의 가시성이 보장됩니다.
참고
예제에 제공된 Amazon EMR 템플릿은 URL 실행 시 인증 요구 사항을 적용하지 않습니다. 이 옵션은 데모 및 학습을 위한 것입니다. 프로덕션 환경에서는 사용하지 않는 것이 좋습니다.
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-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml
Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"
3단계: Amazon 템플릿을 파라미터화합니다. EMR CloudFormation
Service Catalog 제품 내에서 Amazon EMR 클러스터를 정의하는 데 사용되는 CloudFormation 템플릿을 통해 관리자는 구성 가능한 파라미터를 지정할 수 있습니다. 관리자는 템플릿 Parameters
섹션 내에서 이러한 매개변수의 Default
값과 AllowedValues
범위를 정의할 수 있습니다. 클러스터 시작 프로세스 중에 데이터 과학자는 사용자 지정 입력을 제공하거나 사전 정의된 옵션 중에서 선택하여 Amazon EMR 클러스터의 특정 측면을 사용자 지정할 수 있습니다.
다음 예는 관리자가 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" ] } }
관리자가 Amazon EMR CloudFormation 템플릿을 Studio 내에서 사용할 수 있도록 설정한 후에는 데이터 과학자가 이를 사용하여 Amazon EMR 클러스터를 자체 프로비저닝할 수 있습니다. 템플릿에 정의된 Parameters
섹션은 Studio 또는 Studio Classic 내 클러스터 생성 양식의 입력 필드로 변환됩니다. 각 매개변수에 대해 데이터 과학자는 입력 상자에 사용자 지정 값을 입력하거나 템플릿에 AllowedValues
지정된 항목에 해당하는 드롭다운 메뉴에 나열된 사전 정의된 옵션 중에서 선택할 수 있습니다.
다음 그림은 Studio 또는 Studio Classic에서 CloudFormation Amazon EMR 클러스터를 생성하기 위해 Amazon EMR 템플릿에서 조합한 동적 양식을 보여줍니다.
![스튜디오 또는 스튜디오 클래식에서 CloudFormation Amazon EMR 클러스터를 생성하기 위해 Amazon EMR 템플릿에서 조합한 동적 양식의 그림](images/studio/emr/studio-notebooks-emr-cluster-creation.png)
Amazon EMR 템플릿을 사용하여 Studio 또는 Studio Classic에서 클러스터를 시작하는 방법에 대해 알아보려면 방문하십시오스튜디오 또는 스튜디오 클래식에서 Amazon EMR 클러스터 시작.
4단계: Studio에서 Amazon EMR 클러스터를 나열하고 시작할 수 있도록 권한 설정
마지막으로, Studio 또는 Studio Classic에서 실행 중인 기존 Amazon EMR 클러스터를 나열하고 새 클러스터를 자체 프로비저닝할 수 있도록 필요한 IAM 권한을 연결합니다.
이러한 권한을 추가해야 하는 역할은 Studio 또는 Studio Classic과 EMR Amazon이 동일한 계정 (단일 계정 선택) 에 배포되었는지 아니면 다른 계정 (교차 계정 선택) 에 배포되었는지에 따라 다릅니다.
참고
Studio는 현재 Studio가 배포된 계정과 다른 AWS 계정에서 생성된 Amazon EMR 클러스터에 액세스하는 것을 지원하지 않습니다. 계정 간 액세스는 Studio Classic에서만 사용할 수 있습니다.
역할을 사용한 교차 계정 액세스에 대한 자세한 내용은 의 IAM 교차 계정 리소스 액세스를 참조하십시오.
Amazon EMR 클러스터와 Studio 또는 Studio Classic이 동일한 AWS 계정에 배포된 경우 클러스터에 액세스하는 SageMaker 실행 역할에 다음 권한을 추가하십시오.
참고
어떤 실행 역할을 고려해야 할까요?
Studio UI는 해당 UI를 실행한 사용자 프로필과 관련된 실행 역할에 따라 권한을 결정합니다. UI는 실행 시 이러한 권한을 설정합니다. 하지만 시작하는 스페이스 JupyterLab 또는 Studio Classic 애플리케이션에는 별도의 권한이 있을 수 있습니다.
애플리케이션 (예: Studio UI JupyterLab, Studio Classic) 에서 Amazon EMR 템플릿 및 클러스터에 일관되게 액세스하려면 도메인, 사용자 프로필 또는 스페이스 수준에서 모든 역할에 동일한 권한 하위 집합을 부여하십시오. 권한은 Amazon EMR 클러스터를 검색하고 프로비저닝할 수 있어야 합니다.
-
도메인, 사용자 프로필 또는 스페이스의 실행 역할을 찾으십시오. 실행 역할을 검색하는 방법에 대한 자세한 내용은 을 참조하십시오실행 역할 가져오기.
-
IAM에서 https://console.aws.amazon.com/sagemaker/
콘솔을 엽니다. -
역할을 선택한 다음 검색 필드에 역할 이름을 입력하여 생성한 역할을 검색합니다.
-
링크를 따라 내 역할로 이동하세요.
-
권한 추가를 선택한 다음 인라인 정책 생성을 선택합니다.
-
JSON탭에서 권한과 함께 다음 JSON 정책을 추가합니다.
-
AllowPresignedUrl
스튜디오 또는 스튜디오 클래식 내에서 Spark URLs UI에 액세스할 수 있도록 사전 서명된 항목을 생성할 수 있습니다. -
AllowClusterDiscovery
스튜디오 또는 스튜디오 클래식에서 계정/지역의 Amazon EMR 클러스터를 나열하고 설명할AllowClusterDetailsDiscovery
수 있습니다. -
AllowEMRTemplateDiscovery
Service Catalog에서 Amazon EMR 템플릿을 검색할 수 있습니다. 스튜디오와 스튜디오 클래식에서는 이 옵션을 사용하여 사용 가능한 템플릿을 표시합니다. -
AllowSagemakerProjectManagement
생성 및 삭제가 가능합니다. SageMaker에서는 를 통해 AWS Service Catalog 에 대한 액세스를 관리합니다 SageMaker 프로젝트를 MLOps 통한 자동화.
제공된 IAM 정책에 정의된 정책은 이러한 권한을 JSON 부여합니다. Replace
studio-region
그리고studio-account
명세서 목록을 역할의 인라인 정책에 복사하기 전에 실제 지역 및 AWS 계정 ID 값을 확인하십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "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/*" } ] } -
-
다음을 선택한 후 정책 이름을 입력합니다.
-
정책 생성을 선택합니다.
Amazon EMR 클러스터와 Studio 또는 Studio Classic을 별도의 AWS 계정으로 배포하는 경우 두 계정 모두에 권한을 구성합니다.
아마존 EMR 계정에서
EMRAmazon이 배포된 계정 (신뢰 계정이라고도 함) 에서 다음 ASSUMABLE-ROLE
구성으로 이름이 지정된 사용자 지정 IAM 역할을 생성합니다.
-
권한: Amazon EMR 리소스에 액세스할 수
ASSUMABLE-ROLE
있도록 필요한 권한을 부여합니다. -
신뢰 관계: 액세스가 필요한 Studio 계정에서 역할을 맡을 수
ASSUMABLE-ROLE
있도록 신뢰 정책을 구성합니다.
Studio 또는 Studio Classic은 역할을 맡으면 EMR Amazon에서 필요한 권한에 임시로 액세스할 수 있습니다.
-
역할에 대한 새 정책을 생성하십시오.
-
IAM에서 https://console.aws.amazon.com/sagemaker/
콘솔을 엽니다. -
왼쪽 메뉴에서 정책을 선택한 다음 정책 생성을 선택합니다.
-
JSON탭에서 권한과 함께 다음 JSON 정책을 추가합니다.
-
AllowPresignedUrl
Studio 내에서 Spark URLs UI에 액세스할 수 있도록 사전 서명된 항목을 생성할 수 있습니다. -
AllowClusterDiscovery
AllowClusterDetailsDiscovery
Studio에서 계정/지역의 Amazon EMR 클러스터를 나열하고 설명할 수 있습니다.
Replace
emr-region
그리고emr-account
정책에 복사하기 전에 실제 지역 및 AWS 계정 ID 값을 확인하십시오. JSON{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "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": "*" } ] } -
-
정책 이름을 지정하고 정책 생성을 선택합니다.
-
-
이라는
ASSUMABLE-ROLE
사용자 지정 IAM 역할을 만든 다음 새 정책을 역할에 연결합니다.-
IAM콘솔의 왼쪽 메뉴에서 역할을 선택한 다음 역할 생성을 선택합니다.
-
신뢰할 수 있는 엔티티 유형에서AWS 계정을 선택한 후 다음을 선택합니다.
-
방금 생성한 권한을 선택하고 다음을 선택합니다.
-
역할
ASSUMABLE-ROLE
이름을 지정한 다음 1단계: 신뢰할 수 있는 엔티티 선택 오른쪽에 있는 편집 버튼을 선택합니다. -
신뢰할 수 있는 엔티티 유형의 경우 사용자 지정 신뢰 정책을 선택한 후 다음 신뢰 관계를 붙여넣습니다. 이렇게 하면 Studio가 배포된 계정 (신뢰할 수 있는 계정) 에 이 역할을 수임할 권한이 부여됩니다.
Replace
studio-account
실제 AWS 계정 ID와 함께 Next(다음)를 선택합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio-account
:root" }, "Action": "sts:AssumeRole" } ] } -
방금 생성한 권한을 다시 찾아 선택한 후 다음을 선택합니다.
-
가장 최근에 JSON 붙여넣은 것으로 신뢰 정책을 업데이트해야 합니다. 역할 생성을 선택합니다.
-
AWS 계정에서 역할을 만드는 방법에 대한 자세한 내용은 역할 만들기 (콘솔) 를 IAM 참조하십시오.
Studio 계정에서
Studio 또는 Studio Classic이 배포된 계정 (신뢰할 수 있는 계정이라고도 함) 에서 클러스터에 액세스하는 SageMaker 실행 역할을 신뢰 계정의 리소스에 액세스하는 데 필요한 권한으로 업데이트하십시오.
참고
어떤 실행 역할을 고려해야 할까요?
Studio UI는 해당 UI를 실행한 사용자 프로필과 관련된 실행 역할에 따라 권한을 결정합니다. UI는 실행 시 이러한 권한을 설정합니다. 하지만 시작하는 스페이스 JupyterLab 또는 Studio Classic 애플리케이션에는 별도의 권한이 있을 수 있습니다.
애플리케이션 (예: Studio UI JupyterLab, Studio Classic) 에서 Amazon EMR 템플릿 및 클러스터에 일관되게 액세스하려면 도메인, 사용자 프로필 또는 스페이스 수준에서 모든 역할에 동일한 권한 하위 집합을 부여하십시오. 권한은 Amazon EMR 클러스터를 검색하고 프로비저닝할 수 있어야 합니다.
-
도메인, 사용자 프로필 또는 스페이스의 실행 역할을 찾으십시오. 실행 역할을 검색하는 방법에 대한 자세한 내용은 을 참조하십시오실행 역할 가져오기.
-
IAM에서 https://console.aws.amazon.com/sagemaker/
콘솔을 엽니다. -
역할을 선택한 다음 검색 필드에 역할 이름을 입력하여 생성한 역할을 검색합니다.
-
링크를 따라 내 역할로 이동하세요.
-
권한 추가를 선택한 다음 인라인 정책 생성을 선택합니다.
-
JSON탭에서 권한과 함께 다음 JSON 정책을 추가합니다.
-
AllowEMRTemplateDiscovery
Service Catalog에서 Amazon EMR 템플릿을 검색할 수 있습니다. Studio Classic은 이를 사용하여 사용 가능한 템플릿을 표시합니다. -
AllowSagemakerProjectManagement
생성 및 삭제가 가능합니다. SageMaker에서는 를 통해 AWS Service Catalog 에 대한 액세스를 관리합니다 SageMaker 프로젝트를 MLOps 통한 자동화.
제공된 IAM 정책에 정의된 정책은 이러한 권한을 JSON 부여합니다. Replace
studio-region
그리고studio-account
명세서 목록을 정책에 복사하기 전에 실제 지역 및 AWS 계정 ID 값을 확인하십시오.{ "Version": "2012-10-17", "Statement": [ { "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/*" } ] } -
-
다음을 선택한 후 정책 이름을 입력합니다.
-
정책 생성을 선택합니다.
-
이 단계를 반복하여 Studio 실행 역할에 다른 인라인 정책을 추가합니다. 정책은 다른 계정의 리소스를 검색할 때 계정 간 역할 가정을 허용해야 합니다.
실행 역할 세부 정보 페이지에서 권한 추가를 선택한 다음 인라인 정책 생성을 선택합니다.
-
JSON탭에서 다음 JSON 정책을 추가합니다. Amazon EMR 계정의 계정
emr-account
ID로 업데이트하십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::
emr-account
:role/ASSUMABLE-ROLE
" ] }] } -
[다음] 을 선택하고 정책 이름을 입력한 다음 [Create policy] 를 선택합니다.
-
Studio와 동일한 계정에 배포된 Amazon EMR 클러스터를 나열할 수 있도록 하려면 의 Amazon EMR 클러스터 목록 구성단일 계정 탭에 정의된 대로 Studio 실행 역할에 인라인 정책을 추가합니다.
Jupyter 서버 시작 ARN 시 역할을 전달하십시오.
마지막으로 Studio 실행 역할에 역할을 제공하는 방법에 대해 계정 간 액세스를 위한 추가 구성 알아보려면 ASSUMABLE-ROLE
을 참조하십시오. ARN 시작 시 Jupyter 서버에서 ARN 로드됩니다. Studio에서 사용하는 실행 역할은 신뢰할 수 있는 계정에서 Amazon EMR 클러스터를 검색하고 연결하는 교차 계정 역할을 가정합니다.