SageMaker カスタム画像を添付 - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker カスタム画像を添付

重要

Amazon SageMaker Studio または Amazon Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、 SageMakerそれらのリソースにタグを追加するためのアクセス権限も付与する必要があります。Studio と Studio Classic は作成したリソースに自動的にタグを付けるため、リソースにタグを追加する権限が必要です。IAM ポリシーで Studio と Studio Classic によるリソースの作成は許可されているが、タグ付けは許可されていない場合、リソースを作成しようとしたときに AccessDenied "" エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。

AWS Amazon のマネージドポリシー SageMaker SageMaker リソースを作成する権限を付与するものには、リソースの作成時にタグを追加する権限が既に含まれています。

このガイドでは、 SageMakerコンソールまたは AWS Command Line Interface (AWS CLI) を使用してカスタム RStudio イメージを Amazon SageMaker ドメインにアタッチする方法を説明します。

SageMaker カスタムイメージを使用するには、カスタム RStudio イメージをドメインにアタッチする必要があります。イメージバージョンをアタッチすると RStudio Launcher に表示され、[イメージを選択] ドロップダウンリストに表示されます。ドロップダウンを使用して RStudio が使用するイメージを変更します。

アタッチできるイメージのバージョン数には制限があります。制限に達した場合、まずバージョンを切り離し、別のバージョンのイメージを添付できるようにする必要があります。

コンソールを使用してイメージバージョンをドメインにアタッチします。

SageMaker コンソールのコントロールパネルを使用して、 SageMaker カスタムイメージバージョンをドメインにアタッチできます。また、 SageMaker カスタムイメージとイメージバージョンを作成し、そのバージョンをドメインにアタッチすることもできます。

既存のイメージをアタッチするには
  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker コンソールを開きます。

  2. 左のナビゲーションペインで、[管理設定‭] を選択します。

  3. [管理者設定] で、[ドメイン] を選択します。

  4. 目的のドメインを選択します。

  5. [環境] を選択します。

  6. [ドメインに添付されたカスタム SageMaker Studio Classic イメージ] で [イメージを添付] を選択します。

  7. [イメージソース][既存のイメージ] または [新しいイメージ] を選択します。

    [既存の画像] を選択した場合は、Amazon SageMaker 画像ストアから画像を選択します。

    [新しいイメージ] を選択した場合は、Docker イメージの Amazon ECR レジストリパスを指定します。 AWS リージョン パスはドメインと同じである必要があります。Amazon ECR リポジトリはドメインと同じアカウントにあるか、 SageMaker のクロスアカウント権限が有効になっている必要があります。

  8. リストから既存のイメージを 1 つ選択します。

  9. リストからイメージバージョンを選択します。

  10. [次へ] をクリックします。

  11. [イメージ名][イメージ表示名][説明] に値を入力します。

  12. IAM ロールを選択します。詳細については、「カスタム RStudio イメージを作成する」を参照してください。

  13. (オプション) イメージにタグを追加します。

  14. (オプション) [新しいタグを追加] を選択して設定タグを追加します。

  15. [イメージタイプ][RStudio イメージ] を選択します。

  16. [送信] を選択します。

イメージバージョンがドメインにアタッチされるのを待ちます。バージョンのアタッチが完了すると、そのバージョンは [カスタムイメージ] リストで一時的に強調表示されます。

を使用して、既存のイメージバージョンをドメインにアタッチします。 AWS CLI

を使用してイメージバージョンをドメインにアタッチする方法は 2 AWS CLIつあります。1 つ目の方法では、バージョンがアタッチされた新しいドメインを作成します。この方法の方が簡単ですが、ドメインの作成に必要な Amazon Virtual Private Cloud (Amazon VPC) 情報と実行ロールを指定する必要があります。

すでにドメインに登録している場合は、2 番目の方法を使用してイメージバージョンを現在のドメインにアタッチできます。この場合、Amazon VPC 情報と実行ロールの指定は必要ありません。バージョンをアタッチしたら、ドメイン内のすべてのアプリケーションを削除し、RStudio を再起動します。

SageMaker イメージを新しいドメインにアタッチします。

この方法を使用するには、AmazonSageMakerFullAccessポリシーがアタッチされた実行ロールを指定する必要があります。

以下の手順でドメインを作成し、 SageMakerカスタムイメージをアタッチします。

  • デフォルトの VPC ID とサブネット ID を取得します。

  • イメージを指定するドメインの設定ファイルを作成します。

  • 設定ファイルを使ってドメインを作成します。

SageMaker カスタムイメージをドメインに追加するには
  1. デフォルトの VPC ID を取得します。

    aws ec2 describe-vpcs \ --filters Name=isDefault,Values=true \ --query "Vpcs[0].VpcId" --output text

    レスポンス:

    vpc-xxxxxxxx
  2. 前のステップで取得した VPC ID を使って、デフォルトのサブネット ID を取得します。

    aws ec2 describe-subnets \ --filters Name=vpc-id,Values=<vpc-id> \ --query "Subnets[*].SubnetId" --output json

    レスポンス:

    [ "subnet-b55171dd", "subnet-8a5f99c6", "subnet-e88d1392" ]
  3. create-domain-input.json という名前の設定ファイルを作成します。前のステップで取得した VPC ID、サブネット ID、ImageNameAppImageConfigName を挿入します。ImageVersionNumber が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。実行ロールは「前提条件を完了します。」の要件を満たす必要があります。

    { "DomainName": "domain-with-custom-r-image", "VpcId": "<vpc-id>", "SubnetIds": [ "<subnet-ids>" ], "DomainSettings": { "RStudioServerProDomainSettings": { "DomainExecutionRoleArn": "<execution-role>" } }, "DefaultUserSettings": { "ExecutionRole": "<execution-role>", "RSessionAppSettings": { "CustomImages": [ { "AppImageConfigName": "rstudio-custom-config", "ImageName": "rstudio-custom-image" } ] } }, "AuthMode": "IAM" }
  4. SageMaker カスタムイメージを添付してドメインを作成します。

    aws sagemaker create-domain \ --cli-input-json file://create-domain-input.json

    レスポンス:

    { "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id", "Url": "https://domain-id.studio.region.sagemaker.aws/..." }

SageMaker イメージを既存のドメインにアタッチします。

この方法では、ドメインへのオンボーディングが完了していることを前提としています。詳細については、「Amazon SageMaker ドメインの概要」を参照してください。

注記

ドメインを新しいイメージバージョンで更新するには、ドメイン内のすべてのアプリケーションを削除する必要があります。アプリケーションの削除の詳細については、「Amazon SageMaker ドメインを削除する」を参照してください。

次の手順を使用して、 SageMaker 現在のドメインにイメージを追加します。

  • DomainID SageMaker コンソールから取得します。

  • DomainID を使ってドメインの DefaultUserSettings を取得します。

  • ImageNameAppImageConfigCustomImage として DefaultUserSettings に追加します。

  • ドメインを更新して、カスタムイメージを含めます。

SageMaker カスタムイメージをドメインに追加するには
  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker コンソールを開きます。

  2. 左のナビゲーションペインで、[管理設定‭] を選択します。

  3. [管理者設定] で、[ドメイン] を選択します。

  4. 目的のドメインを選択します。

  5. ドメイン設定を選択します

  6. 一般設定」 で、ドメイン ID を探します。ID の形式は d-xxxxxxxxxxxx です。

  7. このドメイン ID を使って、ドメインの説明を取得します。

    aws sagemaker describe-domain \ --domain-id <d-xxxxxxxxxxxx>

    レスポンス:

    { "DomainId": "d-xxxxxxxxxxxx", "DefaultUserSettings": { "KernelGatewayAppSettings": { "CustomImages": [ ], ... } } }
  8. update-domain-input.json という名前のファイルに、レスポンスの DefaultUserSettings セクションを保存します。

  9. 前の手順で取得した ImageNameAppImageConfigName をカスタムイメージとして挿入します。ImageVersionNumber が指定されていないため、イメージの最新バージョンが使用されます (今回は、これが唯一存在するバージョンです)。

    { "DefaultUserSettings": { "RSessionAppSettings": { "CustomImages": [ { "ImageName": "rstudio-custom-image", "AppImageConfigName": "rstudio-custom-config" } ] } } }
  10. ドメイン ID とデフォルトのユーザー設定ファイルを使って、ドメインを更新します。

    aws sagemaker update-domain \ --domain-id <d-xxxxxxxxxxxx> \ --cli-input-json file://update-domain-input.json

    レスポンス:

    { "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id" }
  11. RStudioServerPro アプリケーションを削除します。RStudio Launcher UI に最新の変更を反映させるには、RStudioServerPro ドメイン共有アプリケーションを再起動する必要があります。

    aws sagemaker delete-app \ --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \ --app-type RStudioServerPro --app-name default
  12. 新しい RStudioServerPro アプリケーションを作成します。このアプリケーションは、 AWS CLIを使用して作成する必要があります。

    aws sagemaker create-app \ --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \ --app-type RStudioServerPro --app-name default