자동 종료 수명 주기 구성이 포함된 SageMaker Studio 및 Terraform이 포함된 SageMaker Canvas를 지원하는 VPC 전용 모드의 Amazon SageMaker 도메인 | 아마존 웹 서비스

자동 종료 수명 주기 구성이 포함된 SageMaker Studio 및 Terraform이 포함된 SageMaker Canvas를 지원하는 VPC 전용 모드의 Amazon SageMaker 도메인 | 아마존 웹 서비스

Amazon SageMaker 도메인 SageMaker Studio 및 SageMaker Canvas를 포함한 SageMaker 기계 학습(ML) 환경을 지원합니다. SageMaker 스튜디오 데이터 준비부터 ML 모델 구축, 교육, 배포, 데이터 과학 개선까지 모든 ML 개발 단계를 수행하기 위해 특별히 제작된 도구에 액세스할 수 있는 단일 웹 기반 시각적 인터페이스를 제공하는 완전히 통합된 개발 환경(IDE)입니다. 팀 생산성이 최대 10배 향상됩니다. SageMaker 캔버스 ML 경험이 필요하지 않거나 코드 한 줄을 작성할 필요 없이 스스로 정확한 ML 예측을 생성할 수 있는 시각적 인터페이스를 비즈니스 분석가에게 제공하여 기계 학습에 대한 액세스를 확장합니다.

HashiCorp 테라폼 재사용 가능한 코드 모듈로 인프라를 구성할 수 있는 IaC(Infrastructure as Code) 도구입니다. AWS 고객은 IaC를 사용하여 SageMaker 도메인과 같은 클라우드 인프라를 설계, 개발 및 관리합니다. IaC는 개발 운영(DevOps) 영역의 모범 사례를 따르는 동시에 고객 인프라와 서비스의 일관성, 확장성, 재현성을 보장합니다. Terraform을 사용하면 SageMaker 도메인과 해당 지원 인프라를 일관되고 반복 가능한 방식으로 개발하고 관리할 수 있습니다.

이 게시물에서는 SageMaker 도메인을 배포하기 위한 Terraform 구현을 시연합니다. 아마존 가상 프라이빗 클라우드 (Amazon VPC)와 연결됩니다. 솔루션은 Terraform을 사용하여 다음을 생성합니다.

  • SageMaker 도메인에 대한 VPC 전용 모드를 지원하기 위한 서브넷, 보안 그룹 및 VPC 엔드포인트가 있는 VPC입니다.
  • 사용자 프로필이 있는 VPC 전용 모드의 SageMaker 도메인.
  • SageMaker Studio의 Amazon Elastic File System(Amazon EFS) 볼륨을 암호화하기 위한 AWS Key Management Service(AWS KMS) 키입니다.
  • 유휴 Studio 노트북 인스턴스를 자동으로 종료하기 위해 SageMaker 도메인에 연결된 수명 주기 구성입니다.
  • SageMaker Studio 및 Canvas 기능을 활성화하기 위한 SageMaker 도메인 실행 역할 및 IAM 정책.

이 게시물에 설명된 솔루션은 다음에서 사용할 수 있습니다. GitHub 레포.

솔루션 개요

다음 이미지는 VPC 전용 모드의 SageMaker 도메인을 보여줍니다.

sagemaker_domain_vpc_only

VPC에서 SageMaker 도메인을 시작하면 SageMaker Studio 및 Canvas 환경의 데이터 흐름을 제어할 수 있습니다. 이를 통해 인터넷 액세스를 제한하고, 표준 AWS 네트워킹 및 보안 기능을 사용하여 트래픽을 모니터링 및 검사하고, VPC 엔드포인트를 통해 다른 AWS 리소스에 연결할 수 있습니다.

VPC 전용 모드를 사용하기 위한 VPC 요구 사항

VPC 전용 모드에서 SageMaker 도메인을 생성하려면 다음 구성을 갖춘 VPC가 필요합니다.

  1. 고가용성을 보장하기 위해 각각 서로 다른 가용 영역에 있는 XNUMX개 이상의 프라이빗 서브넷.
  2. 서브넷에 필요한 수의 IP 주소가 있는지 확인하세요. 사용자당 XNUMX~XNUMX개의 IP 주소를 권장합니다. Studio 도메인의 총 IP 주소 용량은 도메인 생성 시 제공된 각 서브넷에 사용 가능한 IP 주소의 합계입니다.
  3. 다음 트래픽을 함께 허용하는 인바운드 및 아웃바운드 규칙을 사용하여 하나 이상의 보안 그룹을 설정합니다.
    • 도메인과 Amazon EFS 볼륨 사이의 포트 2049에서 TCP를 통한 NFS 트래픽입니다.
    • 보안 그룹 내의 TCP 트래픽. 이는 JupyterServer 앱과 KernelGateway 앱 간의 연결에 필요합니다. 최소한 8192~65535 범위의 포트에 대한 액세스를 허용해야 합니다.
  4. Amazon Simple Storage Service(Amazon S3)에 대한 게이트웨이 엔드포인트를 생성합니다. SageMaker Studio는 게이트웨이 VPC 엔드포인트를 사용하여 VPC에서 Amazon S3에 액세스해야 합니다. 게이트웨이 엔드포인트를 생성한 후에는 이를 VPC에서 Amazon S3로 향하는 트래픽에 대한 라우팅 테이블의 대상으로 추가해야 합니다.
  5. Studio가 해당 서비스 이름으로 다음 서비스에 액세스할 수 있도록 인터페이스 VPC 엔드포인트(AWS PrivateLink)를 생성합니다. 또한 포트 443의 모든 인바운드 트래픽을 허용하려면 VPC의 보안 그룹을 이러한 엔드포인트와 연결해야 합니다.
    • SageMaker API: com.amazonaws.region.sagemaker.api. 이는 SageMaker API와 통신하는 데 필요합니다.
    • SageMaker 런타임: com.amazonaws.region.sagemaker.runtime. 이는 Studio 노트북을 실행하고 모델을 교육 및 호스팅하는 데 필요합니다.
    • SageMaker 피처 스토어: com.amazonaws.region.sagemaker.featurestore-runtime. 이는 SageMaker Feature Store를 사용하는 데 필요합니다.
    • SageMaker 프로젝트: com.amazonaws.region.servicecatalog. 이는 SageMaker 프로젝트를 사용하는 데 필요합니다.

SageMaker Canvas를 사용하기 위한 추가 VPC 엔드포인트

SageMaker Canvas를 사용하려면 앞서 언급한 VPC 엔드포인트 외에도 다음 인터페이스 VPC 엔드포인트도 생성해야 합니다.

  • Amazon Forecast 및 Amazon Forecast 쿼리: com.amazonaws.region.forecastcom.amazonaws.region.forecastquery. 이는 Amazon Forecast를 사용하는 데 필요합니다.
  • 아마존 인식: com.amazonaws.region.rekognition. 이는 Amazon Rekognition을 사용하는 데 필요합니다.
  • 아마존 텍스트랙트: com.amazonaws.region.textract. 이는 Amazon Textract를 사용하는 데 필요합니다.
  • 아마존 컴프리헨드: com.amazonaws.region.comprehend. 이는 Amazon Comprehend를 사용하는 데 필요합니다.
  • AWS 보안 토큰 서비스(AWS STS): com.amazonaws.region.sts. 이는 SageMaker Canvas가 AWS STS를 사용하여 데이터 소스에 연결하기 때문에 필요합니다.
  • Amazon Athena 및 AWS Glue: com.amazonaws.region.athenacom.amazonaws.region.glue. 이는 Amazon Athena를 통해 AWS Glue 데이터 카탈로그에 연결하는 데 필요합니다.
  • 아마존 레드시프트: com.amazonaws.region.redshift-data. 이는 Amazon Redshift 데이터 원본에 연결하는 데 필요합니다.

SageMaker Canvas와 함께 사용할 수 있는 각 서비스에 대한 모든 VPC 엔드포인트를 보려면 다음으로 이동하십시오. 인터넷 액세스 없이 VPC에서 Amazon SageMaker 캔버스 구성.

SageMaker Studio의 EFS 볼륨에 대한 AWS KMS 암호화

팀의 사용자가 SageMaker Studio에 처음 온보딩하면 SageMaker는 팀을 위한 EFS 볼륨을 생성합니다. 팀의 일원으로 Studio에 온보딩하는 각 사용자의 볼륨에 홈 디렉터리가 생성됩니다. 노트북 파일과 데이터 파일은 이러한 디렉터리에 저장됩니다.

KMS 키를 사용하여 SageMaker Studio의 EFS 볼륨을 암호화하면 홈 디렉터리의 데이터가 저장 시 암호화됩니다. 이 Terraform 솔루션은 KMS 키를 생성하고 이를 사용하여 SageMaker Studio의 EFS 볼륨을 암호화합니다.

유휴 Studio 노트북을 자동으로 종료하기 위한 SageMaker 도메인 수명 주기 구성

sagemaker_auto_shutdown

수명 주기 구성은 새 Studio 노트북 시작과 같은 Amazon SageMaker Studio 수명 주기 이벤트에 의해 트리거되는 셸 스크립트입니다. 수명 주기 구성을 사용하여 Studio 환경에 대한 사용자 정의를 자동화할 수 있습니다.

이 Terraform 솔루션은 SageMaker 수명 주기 구성을 생성하여 자동 종료 Jupyter 확장을 사용하여 Studio 내에서 비용이 발생하는 유휴 리소스를 감지하고 중지합니다. 내부적으로는 원하는 결과를 얻기 위해 다음 리소스가 생성되거나 구성됩니다.

  1. S3 버킷을 생성하고 최신 버전의 자동 종료 확장을 업로드하세요. sagemaker_studio_autoshutdown-0.1.5.tar.gz. 나중에 자동 종료 스크립트가 다음을 실행합니다. s3 cp Jupyter Server 시작 시 S3 버킷에서 확장 파일을 다운로드하는 명령입니다. 이에 대한 자세한 내용은 다음 GitHub 저장소를 참조하세요. 자동 종료 확장자동 종료 스크립트.
  2. 를 생성 aws_sagemaker_studio_lifecycle_config 자원 "auto_shutdown". 이 리소스는 autoshutdown-script.sh Base 64를 사용하여 SageMaker 도메인에 대한 수명 주기 구성을 생성합니다.
  3. SageMaker 도메인 기본 사용자 설정의 경우 수명 주기 구성을 지정하고 기본값으로 설정합니다.

SageMaker 실행 역할 IAM 권한

관리형 서비스인 SageMaker는 SageMaker가 관리하는 AWS 하드웨어에서 사용자를 대신하여 작업을 수행합니다. SageMaker는 사용자가 허용하는 작업만 수행할 수 있습니다.

SageMaker 사용자는 IAM 역할(실행 역할이라고 함)을 통해 이러한 권한을 부여할 수 있습니다. SageMaker Studio 도메인을 생성하면 SageMaker를 사용하면 기본적으로 실행 역할을 생성할 수 있습니다. SageMaker 사용자 프로필 역할을 변경하여 사용자 프로필에 대한 액세스를 제한할 수 있습니다. 이 Terraform 솔루션은 다음 IAM 정책을 SageMaker 실행 역할에 연결합니다.

  • SageMaker가 관리함 AmazonSageMakerFullAccess 정책. 이 정책은 실행 역할에 SageMaker Studio를 사용할 수 있는 전체 액세스 권한을 부여합니다.
  • SageMaker Studio의 EFS 볼륨을 암호화하는 데 사용되는 KMS 키에 액세스하기 위한 고객 관리형 IAM 정책입니다.
  • SageMaker가 관리함 AmazonSageMakerCanvasFullAccessAmazonSageMakerCanvasAIServicesAccess 정책. 이러한 정책은 실행 역할에 SageMaker Canvas를 사용할 수 있는 전체 액세스 권한을 부여합니다.
  • SageMaker Canvas에서 시계열 분석을 활성화하려면 Amazon Forecast에 대한 IAM 신뢰 정책도 추가해야 합니다.

솔루션 연습

이 블로그 게시물에서는 Terraform 솔루션을 배포하는 방법을 보여줍니다. 배포하기 전에 다음 전제 조건을 충족하는지 확인하십시오.

사전 조건

  • AWS 계정
  • 관리 액세스 권한이 있는 IAM 사용자

배포 단계

이 가이드를 따르는 사용자에게 통합 배포 환경을 제공하기 위해 AWS CloudShell을 사용한 배포 프로세스를 시연합니다. 브라우저 기반 셸인 CloudShell을 사용하면 AWS 명령줄 인터페이스(AWS CLI)로 스크립트를 빠르게 실행하고, AWS CLI를 사용하여 서비스 API를 실험하고, 기타 도구를 사용하여 생산성을 높일 수 있습니다.

Terraform 솔루션을 배포하려면 다음 단계를 완료하세요.

CloudShell 시작 설정

  • AWS Management Console에 로그인하고 CloudShell 서비스를 선택합니다.
  • 탐색 모음의 지역 선택기에서 다음을 선택합니다. 미국 동부 (버지니아 북부).

브라우저에서 CloudShell 터미널이 열립니다.

Terraform 설치

다음 단계는 CloudShell 터미널에서 실행되어야 합니다.

체크 이 Hashicorp 가이드 Amazon Linux용 Terraform 설치에 대한 최신 지침은 다음을 참조하세요.

  • 설치 yum-config-manager 저장소를 관리합니다.
sudo yum install -y yum-utils

  • yum-config-manager 공식 HashiCorp Linux 저장소를 추가합니다.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • 새 저장소에서 Terraform을 설치합니다.
sudo yum -y install terraform

  • Terraform의 사용 가능한 하위 명령을 나열하여 설치가 작동했는지 확인합니다.
terraform -help

예상 출력 :

Usage: terraform [-version] [-help] <command> [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you’re just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. …

코드 저장소 복제

CloudShell 터미널에서 다음 단계를 수행합니다.

  • 저장소를 복제하고 sagemaker-domain-vpconly-canvas-with-terraform 폴더로 이동합니다.
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git cd sagemaker-domain-vpconly-canvas-with-terraform

  • 자동 종료 확장 프로그램을 다운로드하여 다음 위치에 배치하세요. assets/auto_shutdown_template 폴더 :
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template

Terraform 솔루션 배포

CloudShell 터미널에서 다음 Terraform 명령을 실행합니다.

terraform init

다음과 같은 성공 메시지가 표시됩니다.

Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work...

이제 다음을 실행할 수 있습니다.

terraform plan

계획에서 생성할 리소스가 만족스러우면 다음을 실행할 수 있습니다.

terraform apply

시작하다 "" 배포를 확인하라는 메시지가 표시되면.

성공적으로 배포되면 다음과 같은 출력이 표시됩니다.

Apply complete! Resources: X added, 0 changed, 0 destroyed.

SageMaker Studio 및 캔버스에 액세스

이제 VPC와 연결된 Studio 도메인과 이 도메인의 사용자 프로필이 생겼습니다.

세이지메이커_도메인

SageMaker Studio 콘솔을 사용하려면 Studio 제어판에서 사용자 이름을 찾으십시오(다음과 같아야 함). defaultuser) 및 선택 오픈 스튜디오.

우리가 해냈어요! 이제 브라우저를 사용하여 SageMaker Studio 환경에 연결할 수 있습니다. 몇 분 후에 Studio가 환경 생성을 완료하고 시작 관리자 화면이 나타납니다.

studio_landing_page

SageMaker Canvas 콘솔을 사용하려면 Canvas Control Panel에서 사용자 이름을 찾습니다(다음과 같아야 함). defaultuser) 캔버스 열기를 선택합니다.

이제 브라우저를 사용하여 SageMaker Canvas 환경에 연결할 수 있습니다. 몇 분 후에 Canvas가 환경 생성을 완료하고 시작 관리자 화면이 나타납니다.

canvas_landing_page

SageMaker Studio 및 Canvas가 제공하는 모든 기능을 자유롭게 탐색해 보십시오! SageMaker에 대해 자세히 알아보는 데 사용할 수 있는 추가 워크숍 및 튜토리얼은 결론 섹션을 참조하십시오.

정리

다음 명령을 실행하여 리소스를 정리하십시오.

terraform destroy

: Amazon EFS 보존 정책을 '로 설정한 경우Retain”(기본값)을 사용하면 “ 동안 문제가 발생합니다.terraform destroy” EFS 볼륨과 관련 보안 그룹(SageMaker에서 생성)이 아직 존재할 때 Terraform이 서브넷과 VPC를 삭제하려고 하기 때문입니다. 이 문제를 해결하려면 먼저 EFS 볼륨을 수동으로 삭제한 다음 AWS 콘솔에서 서브넷과 VPC를 수동으로 삭제하세요.

결론

이 게시물의 솔루션은 SageMaker Studio 및 Terraform이 포함된 SageMaker Canvas를 포함하여 ML 환경을 지원하기 위해 SageMaker 도메인을 생성하는 기능을 제공합니다. SageMaker Studio는 ML 프로세스의 무거운 작업을 제거하는 완전관리형 IDE를 제공합니다. SageMaker Canvas를 사용하면 비즈니스 사용자가 ML 모델을 쉽게 탐색하고 구축하여 코드를 작성하지 않고도 정확한 예측을 수행할 수 있습니다. VPC 내에서 Studio 및 Canvas를 시작하는 기능과 KMS 키를 사용하여 EFS 볼륨을 암호화하는 기능을 통해 고객은 보안이 강화된 SageMaker ML 환경을 사용할 수 있습니다. 자동 종료 수명 주기 구성을 통해 고객은 유휴 Studio 노트북 인스턴스에 대한 비용을 절감할 수 있습니다.

이 솔루션을 테스트해보고 의견을 알려주세요. SageMaker Studio 및 Sagemaker Canvas 사용 방법에 대한 자세한 내용은 다음을 참조하십시오.


저자에 관하여

chen_yang_aws첸 양 Amazon Web Services의 기계 학습 엔지니어입니다. 그녀는 AWS Professional Services 팀의 일원이며 고객을 위한 안전한 기계 학습 환경을 구축하는 데 주력해 왔습니다. 여가 시간에는 태평양 북서부 지역에서 달리기와 하이킹을 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습