를 사용하여 앱 생성AWS CLI - Amazon SageMaker AI

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

를 사용하여 앱 생성AWS CLI

보다 세분화된 보안 사용자 지정을 AWS CLI위해를 사용하여 앱을 생성할 수 있습니다.

사전 조건

를 사용하여 앱을 생성하려면 다음이 있어야 AWS CLI합니다.

  • 터미널에 대한 액세스. 여기에는 로컬 IDEs, Amazon EC2 인스턴스 또는가 포함될 수 있습니다AWS CloudShell.

  • 개발 환경에 대한 액세스가 필요합니다. 여기에는 Studio 또는 Studio Classic 내의 로컬 IDE 또는 Jupyter 노트북 환경이 포함될 수 있습니다.

  • 구성된 AWS CLI설치입니다. 자세한 내용은 AWS CLI 구성을 참조하세요.

  • 적절한 권한이 있는 IAM 역할입니다. 다음 단계에서는 환경에 iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicyiam:ListPolicies 권한이 있어야 합니다. 이러한 권한은 이 사용 설명서의 단계를 실행하는 데 사용되는 역할에 필요합니다. 이 가이드의 지침은 MLflow 앱의 실행 역할로 사용되는 IAM 역할을 생성하여 Amazon S3 버킷의 데이터에 액세스할 수 있도록 합니다. 또한 MLflow SDK를 통해 앱과 상호 작용하는 사용자의 IAM 역할에 MLflow APIs를 호출할 수 있는 권한을 부여하는 정책이 생성됩니다. 자세한 내용은 역할 권한 정책 수정(콘솔)을 참조하세요.

    SageMaker Studio 노트북을 사용하는 경우 이러한 IAM 권한으로 Studio 사용자 프로필의 서비스 역할을 업데이트합니다. 서비스 역할을 업데이트하려면 SageMaker AI 콘솔로 이동하여 사용 중인 도메인을 선택합니다. 그런 다음 도메인에서 사용 중인 사용자 프로필을 선택합니다. 여기에 서비스 역할이 나열됩니다. IAM 콘솔로 이동하여 역할에서 서비스 역할을 검색하고 iam:CreateRole, iam:CreatePolicy, iam:AttachRolePolicy, 및 iam:ListPolicies 작업을 허용하는 정책으로 역할을 업데이트합니다.

AWS CLI모델 설정

터미널 내에서 다음 명령줄 단계에 따라 MLflow를 사용하여 Amazon SageMaker AIAWS CLI용를 설정합니다.

  1. 의 업데이트된 버전을 설치합니다AWS CLI. 자세한 내용은 AWS CLI 사용 설명서AWS CLI의 최신 버전 설치 또는 업데이트를 참조하세요.

  2. 다음 명령을 사용하여 AWS CLI가 설치되어 있는지 확인합니다.

    aws sagemaker help

    q를 눌러 프롬프트를 종료합니다.

    문제 해결에 대한 도움말은 일반적인 설정 문제 해결 섹션을 참조하세요.

MLflow 인프라 설정

다음 섹션에서는 앱에 필요한 Amazon S3 버킷 및 IAM 역할과 함께 MLflow 앱을 설정하는 방법을 보여줍니다.

S3 버킷 생성

터미널 내에서 다음 명령을 사용하여 범용 Amazon S3 버킷을 생성합니다.

중요

아티팩트 스토어에 Amazon S3 URI를 제공할 때 Amazon S3 버킷이 MLflow 앱AWS 리전과 동일한에 있는지 확인합니다. 리전 간 아티팩트 스토리지는 지원되지 않습니다.

bucket_name=bucket-name region=valid-region aws s3api create-bucket \ --bucket $bucket_name \ --region $region \ --create-bucket-configuration LocationConstraint=$region

출력은 다음과 비슷하게 보여야 합니다.

{ "Location": "/bucket-name" }

IAM 신뢰 정책 설정

다음 단계를 사용하여 IAM 신뢰 정책을 생성합니다. 역할 및 신뢰 정책에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서역할 용어 및 개념을 참조하세요.

  1. 터미널 내에서 다음 명령을 사용하여 mlflow-trust-policy.json라는 파일을 생성합니다.

    cat <<EOF > /tmp/mlflow-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF
  2. 터미널 내에서 다음 명령을 사용하여 custom-policy.json라는 파일을 생성합니다.

    cat <<EOF > /tmp/custom-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:DescribeModelPackageGroup", "sagemaker:UpdateModelPackage", "s3:List*" ], "Resource": "*" } ] } EOF
  3. 신뢰 정책 파일을 사용하여 역할을 생성합니다. 그런 다음 MLflow가 계정 내에서 Amazon S3 및 SageMaker 모델 레지스트리에 액세스할 수 있도록 허용하는 IAM 역할 정책을 연결합니다. MLflow는 앱의 아티팩트 스토어를 위해 Amazon S3에 액세스하고 자동 모델 등록을 위해 SageMaker 모델 레지스트리에 액세스할 수 있어야 합니다.

    참고

    기존 역할을 업데이트하는 경우 대신 aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json 명령을 사용합니다.

    role_name=role-name aws iam create-role \ --role-name $role_name \ --assume-role-policy-document file:///tmp/mlflow-trust-policy.json aws iam put-role-policy \ --role-name $role_name \ --policy-name custom-policy \ --policy-document file:///tmp/custom-policy.json role_arn=$(aws iam get-role --role-name $role_name --query 'Role.Arn' --output text)

MLflow 앱 생성

터미널 내에서 create-mlflow-app API를 사용하여 AWS 리전원하는에서 앱을 생성합니다. 이 단계는 일반적으로 약 2~3분이 걸립니다.

다음 명령은 자동 모델 등록이 활성화된 새 앱을 생성합니다. 자동 모델 등록을 비활성화하려면 --no-automatic-model-registration를 지정합니다.

앱을 생성한 후 MLflow UI를 시작할 수 있습니다. 자세한 내용은 미리 서명된 URL을 사용하여 MLflow UI 시작 단원을 참조하십시오.

참고

앱 생성을 완료하는 데 최대 2~3분이 걸릴 수 있습니다. 앱을 생성하는 데 3분 이상 걸리는 경우 필요한 IAM 권한이 있는지 확인합니다. 앱을 성공적으로 생성하면 자동으로 시작됩니다.

기본적으로 생성된 앱은 최신 버전이며 자동으로 업데이트됩니다.

app_name=app-name region=valid-region version=valid-version aws sagemaker create-mlflow-app \ --name $app_name \ --artifact-store-uri s3://$bucket_name \ --role-arn $role_arn \ --automatic-model-registration \ --region $region

다음과 유사하게 출력됩니다.

{ "AppArn": "arn:aws:sagemaker:region:123456789012:mlflow-app/app-name" }
중요

나중에 사용할 수 있도록 앱 ARN을 기록해 둡니다. 정리 단계를 위해 $bucket_name도 필요합니다.