カスタム RStudio イメージを作成する - Amazon SageMaker

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

カスタム RStudio イメージを作成する

重要

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

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

このトピックでは、 SageMaker コンソールとを使用してカスタム RStudio イメージを作成する方法について説明します。 AWS CLIを使用する場合は AWS CLI、ローカルマシンからステップを実行する必要があります。以下の手順は、Amazon SageMaker Studio クラシック内からは機能しません。

イメージを作成すると、 SageMaker 初期イメージバージョンも作成されます。各イメージバージョンは、Amazon Elastic Container Registry (ECR) に保存されているコンテナイメージを表します。コンテナイメージを使用するには、RStudio の要件を満たす必要があります。詳細については、「カスタム RStudio イメージの仕様」を参照してください。

イメージをローカルでテストし、一般的な問題を解決する方法については、SageMaker Studio Custom Image Samples リポジトリを参照してください

SageMaker互換性のある RStudio Docker コンテナイメージを Amazon ECR に追加する

Amazon ECR に Docker コンテナイメージを追加するには、次の手順を実行します。

  • Amazon ECR リポジトリを作成します。

  • Amazon ECR で認証を行います。

  • 互換性のある RStudio Docker イメージをビルドします SageMaker。

  • Amazon ECR リポジトリにイメージをプッシュします

注記

Amazon ECR AWS リージョン リポジトリはドメインと同じになければなりません。

Docker イメージを構築して Amazon ECR に追加するには
  1. AWS CLIコマンドを使って、Amazon ECR リポジトリを作成します。Amazon ECR コンソールを使ってリポジトリを作成するには、「リポジトリを作成する」を参照してください。

    aws ecr create-repository \ --repository-name rstudio-custom \ --image-scanning-configuration scanOnPush=true

    レスポンス:

    { "repository": { "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/rstudio-custom", "registryId": "acct-id", "repositoryName": "rstudio-custom", "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom", ... } }
  2. create-repository コマンドからのレスポンスとして返されたリポジトリ URI を使用して Amazon ECR への認証を行います。Docker アプリケーションが実行中であることを確認します。詳細については、「レジストリの認証」を参照してください。

    aws ecr get-login-password | \ docker login --username AWS --password-stdin <repository-uri>

    レスポンス:

    Login Succeeded
  3. Docker イメージを作成します。Dockerfile を含むディレクトリから次のコマンドを実行します。

    docker build .
  4. 構築したイメージに固有のタグを付けます。

    docker tag <image-id> "<repository-uri>:<tag>"
  5. Amazon ECR リポジトリにコンテナイメージをプッシュします。詳細については、「ImagePushイメージをプッシュする」を参照してください。

    docker push <repository-uri>:<tag>

    レスポンス:

    The push refers to repository [<account-id>.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom] r: digest: <digest> size: 3066

SageMaker コンソールからイメージを作成します。

イメージを作成するには
  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker コンソールを開きます。

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

  3. [管理設定][イメージ] を選択します。

  4. [カスタムイメージ] ページで [イメージの作成] を選択します。

  5. [イメージソース] に Amazon ECR のコンテナイメージへのレジストリパスを入力します。パスの形式は次のとおりです。

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

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

  7. [イメージプロパティ] に次を入力します。

    • イメージ名 – この名前は、現在の AWS リージョンのアカウント内で一意である必要があります。

    • (オプション) 画像表示名 - ドメインユーザーインターフェイスに表示される名前。入力しない場合は Image name が表示されます。

    • (オプション) 説明 – イメージの説明。

    • IAM ロール — AmazonSageMakerFullAccessロールにはポリシーがアタッチされている必要があります。ドロップダウンメニューから次のいずれかのオプションを選択します。

      • 新しいロールの作成 – ノートブックのユーザーにアクセスさせたい追加の Amazon Simple Storage Service (Amazon S3) バケットを指定します。アクセスを許可するバケットを追加しない場合は [なし] を選択します。

        SageMaker AmazonSageMakerFullAccessポリシーをロールにアタッチします。このロールは、チェックマークの横に表示される Amazon S3 バケットへのアクセスをノートブックユーザーに許可します。

      • カスタム IAM ロールの ARN の入力 - IAM ロールの Amazon リソースネーム (ARN) を入力します。

      • 既存のロールの使用 - リストから既存のロールの 1 つを選択します。

    • (オプション) イメージタグ - [新しいタグの追加] を選択します。最大 50 個のタグを追加できます。 SageMaker タグはコンソールまたは API を使用して検索できます。 SageMaker Search

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

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

新しいイメージは、[カスタムイメージ] リストで一時的に強調表示されます。イメージが正常に作成されたら、イメージ名を選択してそのプロパティを表示するか、[バージョンの作成] を選択して、別のバージョンを作成します。

別のイメージバージョンを作成するには
  1. イメージと同じ行にある [バージョンを作成] を選択します。

  2. [イメージソース] に Amazon ECR イメージへのレジストリパスを入力します。画像は、以前のバージョンの画像で使用されていたものと同じであってはなりません。 SageMaker

RStudio でカスタムイメージを使うには、そのイメージをドメインにアタッチする必要があります。詳細については、「 SageMaker カスタム画像を添付」を参照してください。

からイメージを作成します。 AWS CLI

このセクションでは、を使用してカスタム Amazon SageMaker イメージを作成する方法を説明します AWS CLI。

SageMaker 以下の手順に従ってイメージを作成します。

  • Image を作成します。

  • ImageVersion を作成します。

  • 設定ファイルを作成します。

  • AppImageConfig を作成します。

SageMaker イメージエンティティを作成するには
  1. SageMaker イメージを作成します。ロール ARN には、少なくとも AmazonSageMakerFullAccessPolicy ポリシーがアタッチされている必要があります。

    aws sagemaker create-image \ --image-name rstudio-custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    レスポンス:

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/rstudio-custom-image" }
  2. SageMaker イメージからイメージバージョンを作成します。イメージを Amazon ECR にプッシュしたときに選択した一意のタグ値を渡します。

    aws sagemaker create-image-version \ --image-name rstudio-custom-image \ --base-image <repository-uri>:<tag>

    レスポンス:

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-image/1" }
  3. イメージバージョンが正常に作成されたことを確認します。

    aws sagemaker describe-image-version \ --image-name rstudio-custom-image \ --version 1

    レスポンス:

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-custom-image/1", "ImageVersionStatus": "CREATED" }
    注記

    レスポンスが "ImageVersionStatus": "CREATED_FAILED" である場合、レスポンスにはその失敗の理由も記載されています。失敗の一般的な原因の 1 つは許可の問題です。Amazon CloudWatch ログを確認することもできます。ロググループの名前は /aws/sagemaker/studio です。ログストリームの名前は $domainID/$userProfileName/KernelGateway/$appName です。

  4. app-image-config-input.json という名前の設定ファイルを作成します。アプリイメージ設定は、Kernel Gateway SageMaker アプリケーションとしてイメージを実行するための設定に使用されます。

    { "AppImageConfigName": "rstudio-custom-config" }
  5. AppImageConfig 前のステップで作成したファイルを使用して作成します。

    aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json

    レスポンス:

    { "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/r-image-config" }