Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 전체에서 파이프라인을 보거나 관리

9년 2022월 XNUMX일에 계정 간 공유의 일반 가용성을 발표했습니다. Amazon SageMaker 파이프라인 항목. 이제 교차 계정 지원을 사용할 수 있습니다. Amazon SageMaker 파이프 라인 AWS 계정 간에 파이프라인 엔터티를 공유하고 아마존 세이지 메이커 API 호출.

고객이 점점 더 채택하고 있습니다. 다중 계정 아키텍처 SageMaker Pipelines를 사용하여 기계 학습(ML) 워크플로를 배포하고 관리하기 위한 것입니다. 여기에는 개발 또는 실험(dev) 계정에서 워크플로를 구축하고, 테스트 또는 사전 프로덕션(테스트) 계정에서 이를 배포 및 테스트하고, 마지막으로 다른 비즈니스 프로세스와 통합하기 위해 프로덕션(프로덕션) 계정으로 승격하는 작업이 포함됩니다. 다음 사용 사례에서 SageMaker 파이프라인의 교차 계정 공유를 통해 이점을 얻을 수 있습니다.

  • 데이터 과학자가 개발 계정에서 ML 워크플로를 빌드하면 ML 엔지니어가 해당 워크플로를 전용 테스트 계정에 SageMaker 파이프라인으로 배포합니다. 이러한 워크플로를 추가로 모니터링하기 위해 데이터 과학자는 이제 테스트 계정에 배포된 파이프라인에 대한 교차 계정 읽기 전용 권한이 필요합니다.
  • 공유 서비스 계정에서 이러한 ML 워크플로의 배포 및 운영을 관리하는 ML 엔지니어, ML 관리자 및 규정 준수 팀도 테스트 계정에서 배포된 파이프라인에 대한 가시성을 필요로 합니다. 또한 이러한 ML 워크플로를 시작, 중지 및 재시도하기 위한 추가 권한이 필요할 수 있습니다.

이 게시물에서는 SageMaker Pipelines를 사용하여 ML 워크플로를 개발 및 배포하기 위한 다중 계정 아키텍처의 예를 제시합니다.

솔루션 개요

다중 계정 전략은 소프트웨어 개발 수명 주기 단계를 지원하면서 데이터, 프로젝트 및 팀 격리를 달성하는 데 도움이 됩니다. 교차 계정 파이프라인 공유는 다중 계정 전략을 지원하여 여러 계정에서 로그인 및 로그아웃하는 오버헤드를 제거하고 여러 계정에서 직접 리소스를 공유하여 ML 테스트 및 배포 워크플로를 개선합니다.

이 예에는 SageMaker 파이프라인의 초기 개발을 위해 전용 개발 계정을 사용하는 데이터 과학 팀이 있습니다. 그런 다음 이 파이프라인은 ML 엔지니어에게 전달됩니다. 지속적 통합 및 지속적 전달(CI/CD) 파이프라인 공유 서비스 계정에서 이 파이프라인을 테스트 계정에 배포합니다. 각각의 개발 및 공유 서비스 계정에서 배포된 파이프라인을 계속 모니터링하고 제어할 수 있으려면 리소스 공유 로 설정된다 AWS 리소스 액세스 관리자 테스트 및 개발 계정에서. 이 설정을 통해 ML 엔지니어와 데이터 과학자는 이제 다음 그림과 같이 각자의 계정에서 개발 및 테스트 계정의 파이프라인을 모니터링하고 제어할 수 있습니다.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

워크플로에서 데이터 과학자와 ML 엔지니어는 다음 단계를 수행합니다.

  1. 데이터 과학자(DS)는 개발자 계정에 모델 파이프라인을 구축합니다.
  2. ML 엔지니어(MLE)는 모델 파이프라인을 생산하고 파이프라인을 생성합니다. sagemaker-pipeline).
  3. sagemaker-pipeline 코드는 AWS 코드 커밋 공유 서비스 계정의 저장소.
  4. 데이터 과학자는 다음을 위한 AWS RAM 리소스 공유를 생성합니다. sagemaker-pipeline 리소스 공유를 수락하는 공유 서비스 계정과 공유합니다.
  5. 공유 서비스 계정에서 ML 엔지니어는 이제 다음을 사용하여 개발 계정에서 파이프라인 실행을 설명, 모니터링 및 관리할 수 있습니다. SageMaker API 호출.
  6. 공유 서비스 계정에서 트리거된 CI/CD 파이프라인은 다음을 사용하여 코드를 빌드하고 테스트 계정에 배포합니다. AWS 코드 파이프라인.
  7. CI/CD 파이프라인 생성 및 실행 sagemaker-pipeline 테스트 계정에서
  8. 실행 후 sagemaker-pipeline 테스트 계정에서 CI/CD 파이프라인은 sagemaker-pipeline 테스트 계정에서
  9. 테스트의 리소스 공유 sagemaker-pipeline 리소스 공유를 허용하는 dev 계정으로 읽기 전용 권한이 있는 계정이 생성됩니다.
  10. 데이터 과학자는 이제 dev 계정에서 SageMaker API 호출을 사용하여 테스트 파이프라인 실행 상태를 설명하고 모니터링할 수 있습니다.
  11. 테스트의 리소스 공유 sagemaker-pipeline 확장된 권한이 있는 계정은 리소스 공유를 허용하는 공유 서비스 계정으로 생성됩니다.
  12. ML 엔지니어는 이제 공유 서비스 계정에서 SageMaker API 호출을 사용하여 실행되는 테스트 파이프라인을 설명, 모니터링 및 관리할 수 있습니다.

다음 섹션에서는 SageMaker 파이프라인에 대해 교차 계정 공유를 설정하는 방법에 대해 자세히 설명하고 데모를 제공합니다.

계정 간에 SageMaker 파이프라인을 만들고 공유하는 방법

이 섹션에서는 AWS RAM 및 SageMaker API를 사용하여 계정 간에 파이프라인을 생성하고 공유하는 데 필요한 단계를 안내합니다.

환경 설정

먼저 SageMaker 파이프라인의 교차 계정 공유를 보여주기 위해 다중 계정 환경을 설정해야 합니다.

  1. 두 개의 AWS 계정(개발 및 테스트)을 설정합니다. 조직의 구성원 계정 또는 독립 계정으로 설정할 수 있습니다.
  2. 조직의 구성원으로 계정을 설정하는 경우 다음을 활성화할 수 있습니다. 조직과 리소스 공유. 이 설정을 사용하면 조직에서 리소스를 공유할 때 AWS RAM이 보안 주체에게 초대를 보내지 않습니다. 조직의 보안 주체는 초대를 교환하지 않고도 공유 리소스에 액세스할 수 있습니다.
  3. 테스트 계정에서 실행 아마존 세이지 메이커 스튜디오 그리고 노트북을 실행 기차 등록 배포 파이프라인 모델. 그러면 테스트 계정에 예제 파이프라인이 생성됩니다. 데모를 단순화하기 위해 테스트 계정에서 SageMaker Studio를 사용하여 파이프라인을 시작합니다. 실제 프로젝트의 경우 dev 계정에서만 Studio를 사용하고 CI/CD 도구를 사용하여 테스트 계정에서 SageMaker Pipeline을 시작해야 합니다.

다음 섹션의 지침에 따라 이 파이프라인을 개발자 계정과 공유하세요.

파이프라인 리소스 공유 설정

파이프라인을 개발자 계정과 공유하려면 다음 단계를 완료하십시오.

  1. AWS RAM 콘솔에서 다음을 선택합니다. 리소스 공유 생성.
  2. 럭셔리 리소스 유형 선택선택한다. SageMaker 파이프 라인.
  3. 이전 단계에서 생성한 파이프라인을 선택합니다.
  4. 왼쪽 메뉴에서 다음 보기.
  5. 럭셔리 권한, 관련 권한을 선택합니다.
  6. 왼쪽 메뉴에서 다음 보기.
    Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.다음으로 보안 주체에게 액세스 권한을 부여하는 방법을 결정합니다.
  7. 조직 계정 내에서만 파이프라인을 공유해야 하는 경우 조직 내에서만 공유 허용; 그렇지 않으면 선택 누구와도 공유 허용.
  8. 럭셔리 교장, 보안 주체 유형을 선택합니다(공유 요구 사항에 따라 AWS 계정, 조직 또는 조직 단위를 사용할 수 있음). 이 게시물에서는 AWS 계정 수준의 모든 사용자와 공유합니다.
  9. 프린시펄 ID를 선택하십시오.
  10. 왼쪽 메뉴에서 다음 보기.
    Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.
  11. 검토 및 생성 페이지에서 정보가 정확한지 확인하고 선택하십시오. 리소스 공유 생성.
    Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.
  12. 대상 계정(이 게시물의 경우 개발자 계정)으로 이동합니다.
  13. AWS RAM 콘솔에서 나와 공유 함 탐색 창에서 자원 공유.
  14. 리소스 공유를 선택하고 리소스 공유 수락.
    Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

리소스 공유 권한

리소스 공유를 생성할 때 지원되는 두 가지 권한 정책 중 하나를 선택하여 SageMaker 파이프라인 리소스 유형과 연결할 수 있습니다. 두 정책 모두 선택한 파이프라인과 모든 실행에 대한 액세스 권한을 부여합니다.

XNUMXD덴탈의 AWSRAMDefaultPermissionSageMakerPipeline 정책은 다음과 같은 읽기 전용 작업을 허용합니다.

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

XNUMXD덴탈의 AWSRAMPermissionSageMakerPipelineAllowExecution 정책에는 기본 정책의 모든 읽기 전용 권한이 포함되며 공유 계정이 파이프라인 실행을 시작, 중지 및 재시도할 수 있습니다.

확장 파이프라인 실행 권한 정책은 다음 작업을 허용합니다.

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

직접 API 호출을 통해 공유 파이프라인 엔터티에 액세스

이 섹션에서는 다양한 SageMaker Pipeline API 호출을 사용하여 공유된 원격 계정에서 실행 중인 파이프라인에 대한 가시성을 얻는 방법을 안내합니다. dev 계정에서 테스트 계정에서 실행 중인 파이프라인에 대해 API를 테스트하려면 dev 계정에 로그인하고 다음을 사용하십시오. AWS 클라우드쉘.

교차 계정 SageMaker Pipeline API 호출의 경우 항상 파이프라인 ARN을 파이프라인 식별로 사용해야 합니다. 여기에는 파이프라인 ARN을 파이프라인 이름으로 사용해야 하는 파이프라인 이름이 필요한 명령도 포함됩니다.

파이프라인 ARN을 가져오려면 테스트 계정에서 다음을 통해 Studio의 파이프라인 세부 정보로 이동합니다. SageMaker 리소스.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

왼쪽 메뉴에서 파이프 라인 리소스 목록에 있습니다.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

파이프라인을 선택하고 파이프라인으로 이동 설정 탭. 다음을 사용하여 파이프라인 ARN을 찾을 수 있습니다. 메타 데이터 정보. 이 예에서 ARN은 다음과 같이 정의됩니다. "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.

목록파이프라인실행

이 API 호출 실행을 나열합니다 당신의 파이프라인의. 다음 명령을 실행하여 교체하십시오. $SHARED_PIPELINE_ARN CloudShell의 파이프라인 ARN을 사용하거나 AWS 명령 줄 인터페이스 (AWS CLI) AWS 자격 증명 및 액세스 관리 (나는) 역할:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

응답에는 파이프라인의 모든 실행이 나열됩니다. PipelineExecutionArn, StartTime, PipelineExecutionStatusPipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

설명 파이프라인

이 API 호출 세부 사항을 설명 당신의 파이프라인의. 다음 명령을 실행하여 교체하십시오. $SHARED_PIPELINE_ARN 파이프라인 ARN 사용:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

응답은 파이프라인의 메타데이터와 파이프라인 생성 및 수정에 대한 정보를 제공합니다.

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

설명 파이프라인 실행

이 API 호출 세부 사항을 설명 당신의 파이프라인 실행의. 다음 명령을 실행하여 교체하십시오. $SHARED_PIPELINE_ARN 파이프라인 ARN 사용:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

응답은 다음을 포함하여 파이프라인 실행에 대한 세부 정보를 제공합니다. PipelineExecutionStatus, ExperimentNameTrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

파이프라인 실행 시작

이 API 호출 시작 파이프라인 실행. 다음 명령을 실행하여 교체하십시오. $SHARED_PIPELINE_ARN 파이프라인 ARN 및 $CLIENT_REQUEST_TOKEN 이 실행에 대해 생성한 고유하고 대소문자를 구분하는 식별자를 사용합니다. 식별자는 32-128자 사이여야 합니다. 예를 들어 다음을 사용하여 문자열을 생성할 수 있습니다. AWS CLI kms generate-random 명령.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

응답으로 이 API 호출은 다음을 반환합니다. PipelineExecutionArn 시작된 실행의:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

StopPipeline실행

이 API 호출 중지 파이프라인 실행. 다음 명령을 실행하여 교체하십시오. $PIPELINE_EXECUTION_ARN 파이프라인을 사용하여 실행 중인 파이프라인의 ARN을 실행하고 $CLIENT_REQUEST_TOKEN 이 실행에 대해 생성하는 고유하고 대소문자를 구분하는 식별자를 사용합니다. 식별자는 32-128자 사이여야 합니다. 예를 들어 다음을 사용하여 문자열을 생성할 수 있습니다. AWS CLI kms generate-random 명령.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

응답으로 이 API 호출은 다음을 반환합니다. PipelineExecutionArn 중지된 파이프라인의:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

결론

SageMaker 파이프라인의 교차 계정 공유를 사용하면 여러 계정에 로그인 및 로그아웃하지 않고도 AWS 계정 간에 파이프라인 엔터티를 안전하게 공유하고 직접 API 호출을 통해 공유 파이프라인에 액세스할 수 있습니다.

이 게시물에서는 계정 간에 파이프라인을 공유하고 SageMaker API 호출을 통해 파이프라인에 액세스하는 방법을 보여 주는 기능에 대해 자세히 설명합니다.

다음 단계로 이 기능을 다음 ML 프로젝트에 사용할 수 있습니다.

자료

SageMaker Pipelines 및 계정 간에 파이프라인 공유를 시작하려면 다음 리소스를 참조하십시오.


저자 소개

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.램 비탈 AWS의 ML 전문가 솔루션 아키텍트입니다. 그는 20년 이상의 분산, 하이브리드 및 클라우드 애플리케이션 설계 및 구축 경험을 보유하고 있습니다. 그는 기업 고객이 클라우드 채택 및 최적화 여정을 통해 비즈니스 성과를 개선할 수 있도록 지원하는 안전하고 확장 가능한 AI/ML 및 빅 데이터 솔루션을 구축하는 데 열정을 갖고 있습니다. 여가 시간에는 테니스, 사진, 액션 영화를 즐깁니다.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.마이라 라데이라 탱케 AWS의 ML 전문가 솔루션 아키텍트입니다. 데이터 과학에 대한 배경 지식이 있는 그녀는 다양한 산업 분야의 고객과 함께 ML 애플리케이션을 설계하고 구축한 9년의 경험을 가지고 있습니다. 기술 책임자로서 그녀는 고객이 새로운 기술과 혁신적인 솔루션을 통해 비즈니스 가치 달성을 가속화하도록 돕습니다. 여가 시간에 마이라는 따뜻한 곳에서 가족과 함께 여행하고 시간을 보내는 것을 즐깁니다.

Amazon SageMaker 파이프라인 공유를 사용하여 AWS 계정 PlatoBlockchain Data Intelligence에서 파이프라인을 보거나 관리합니다. 수직 검색. 일체 포함.가브리엘 질카 AWS의 전문 서비스 컨설턴트입니다. 그는 고객과 긴밀하게 협력하여 클라우드 채택 여정을 가속화합니다. MLOps 도메인을 전문으로 하는 그는 종단 간 기계 학습 수명 주기를 자동화하고 원하는 비즈니스 결과를 달성하도록 지원하여 기계 학습 워크로드를 생산하는 데 중점을 둡니다. 여가 시간에는 바이에른 알프스에서 여행과 하이킹을 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습