AWS CLIを使用して RStudio で、Amazon SageMaker AI ドメインを作成する - Amazon SageMaker AI

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

AWS CLIを使用して RStudio で、Amazon SageMaker AI ドメインを作成する

重要

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

SageMaker リソースを作成するためのアクセス許可を付与する AWS Amazon SageMaker AI の マネージドポリシー には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

次のトピックでは、 AWS CLIを使用して、RStudio を有効にし Amazon SageMaker AI ドメインにオンボードする方法について説明します を使用してオンボードするには AWS マネジメントコンソール、「」を参照してくださいAmazon SageMaker AI ドメインの概要

前提条件

DomainExecution ロールを作成する

RStudio アプリを起動するには、DomainExecution ロール を指定する必要があります。このロールは、Amazon SageMaker AI ドメインの作成の一環として RStudio を起動する必要があるかどうかを判断するために使用されます。このロールは、Amazon SageMaker AI が RStudio ライセンスにアクセスし、RStudio ログをプッシュするためにも使用されます。 

注記

DomainExecution ロールには少なくとも RStudio License にアクセスするための AWS License Manager のアクセス許可と、アカウントのログをプッシュするための CloudWatch のアクセス許可が必要です。

以下の手順は、 AWS CLIでの DomainExecution ロールの作成方法を示しています。

  1. assume-role-policy.json という名前のファイルを作成し、次の内容を記述します。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] } } ] }
  2. DomainExecution ロールを作成します。<REGION> は、ドメインを起動する AWS リージョンになっている必要があります。

    aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
  3. domain-setting-policy.json という名前のファイルを作成し、次の内容を記述します。このポリシーは、必要なリソースへのアクセスを RStudioServerPro アプリケーションに許可し、既存の RStudioServerPro アプリケーションが Deleted または Failed ステータスの場合に、RStudioServerPro アプリケーションの自動起動を Amazon SageMaker AI に許可します。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses", "license-manager:GetLicense", "license-manager:CheckoutLicense", "license-manager:CheckInLicense", "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "sagemaker:CreateApp" ], "Resource": "*" } ] }
  4. DomainExecution ロールにアタッチされるドメイン設定ポリシーを作成します。応答からの PolicyArn に注意してください。次の手順でその ARN を入力する必要があります。

    aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
  5. domain-setting-policyDomainExecution ロールにアタッチします。前のステップで返された PolicyArn を使用します。

    aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>

RStudio アプリケーションで Amazon SageMaker AI ドメインを作成する

RStudioServerPro アプリケーションは、create-domain CLI コマンドと 指定の RStudioServerProDomainSettings パラメータを使用して Amazon SageMaker AI ドメインを作成する際に自動的に起動されます。RStudioServerPro アプリケーションを起動すると、Amazon SageMaker AI はアカウント内の有効な RStudio ライセンスをチェックします。ライセンスが見つからない場合はドメインの作成は失敗します。

Amazon SageMaker AI ドメインの作成は、認証方法とネットワークタイプによって異なります。これらのオプションは、1 つの認証方法と 1 つのネットワーク接続タイプを選択して一緒に使用する必要があります。新しいドメインを作成するための要件の詳細については、「CreateDomain」を参照してください。

次の認証方法がサポートされています。

  • IAM Auth

  • SSO Auth

次のネットワーク接続タイプがサポートされています。

  • PublicInternet

  • VPCOnly

認証方法

IAM 認証モード

以下は、RStudio が有効になっていて、IAM Auth ネットワークタイプを持つ Amazon SageMaker AI ドメインを作成する方法を説明しています。詳細については AWS Identity and Access Management、「IAM とは」を参照してください。

  • DomainExecutionRoleArn は、前のステップで作成したロールの ARN である必要があります。

  • ExecutionRole は、Amazon SageMaker AI ドメイン内のユーザーに与えられるロールの ARN です。

  • vpc-id は、Amazon Virtual Private Cloud の ID である必要があります。subnet-ids は、サブネット ID のスペース区切りリストである必要があります。vpc-idsubnet-ids の詳細については、「VPC とサブネット」を参照してください。

  • RStudioPackageManagerUrlRStudioConnectUrl は任意であり、RStudio Package Manager と RStudio Connect サーバーの URL にそれぞれ設定する必要があります。

  • app-network-access-type は、PublicInternetOnly または VPCOnly のいずれかになっている必要があります。

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode IAM \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

IAM Identity Center を使用した認証

以下は、RStudio を有効にし、ドメインが起動されるリージョンで Network Type. を有効にする必要がある Amazon SageMaker AI ドメインを作成する方法を示しています。 SSO Auth AWS IAM アイデンティティセンター IAM Identity Center の詳細については、「What is AWS IAM アイデンティティセンター?」を参照してください。

  • DomainExecutionRoleArn は、前のステップで作成したロールの ARN である必要があります。

  • ExecutionRole は、Amazon SageMaker AI ドメイン内のユーザーに与えられるロールの ARN です。

  • vpc-id は、Amazon Virtual Private Cloud の ID である必要があります。subnet-ids は、サブネット ID のスペース区切りリストである必要があります。vpc-idsubnet-ids の詳細については、「VPC とサブネット」を参照してください。

  • RStudioPackageManagerUrlRStudioConnectUrl は任意であり、RStudio Package Manager と RStudio Connect サーバーの URL にそれぞれ設定する必要があります。

  • app-network-access-type は、PublicInternetOnly または VPCOnly のいずれかになっている必要があります。

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode SSO \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

接続タイプ

パブリックインターネット/直接インターネットネットワークの種類

以下は、RStudio が有効になっていて、PublicInternet ネットワークタイプを持つ Amazon SageMaker AI ドメインを作成する方法を説明しています。

  • DomainExecutionRoleArn は、前のステップで作成したロールの ARN である必要があります。

  • ExecutionRole は、Amazon SageMaker AI ドメイン内のユーザーに与えられるロールの ARN です。

  • vpc-id は、Amazon Virtual Private Cloud の ID である必要があります。subnet-ids は、サブネット ID のスペース区切りリストである必要があります。vpc-idsubnet-ids の詳細については、「VPC とサブネット」を参照してください。

  • RStudioPackageManagerUrlRStudioConnectUrl は任意であり、RStudio Package Manager と RStudio Connect サーバーの URL にそれぞれ設定する必要があります。

  • auth-mode は、SSO または IAM のいずれかになっている必要があります。

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type PublicInternetOnly

VPConly モード

以下は、RStudio が有効になっていて、VPCOnly ネットワークタイプを持つ Amazon SageMaker AI ドメインを起動する方法を説明しています。VPCOnly ネットワークアクセスタイプの使用方法の詳細については、「VPC 内の Studio ノートブックを外部リソースに接続する」を参照してください。

  • DomainExecutionRoleArn は、前のステップで作成したロールの ARN である必要があります。

  • ExecutionRole は、Amazon SageMaker AI ドメイン内のユーザーに与えられるロールの ARN です。

  • vpc-id は、Amazon Virtual Private Cloud の ID である必要があります。subnet-ids は、サブネット ID のスペース区切りリストである必要があります。プライベートサブネットは、Amazon SageMaker AI を呼び出すためにインターネットにアクセスできる必要があり、 AWS License Manager または Amazon SageMaker AI 用と AWS License Manager用の Amazon VPC エンドポイントを備えている必要があります。Amazon VPC エンドポイントの詳細については、「インターフェイス VPC エンドポイント」を参照してください。vpc-idsubnet-ids の詳細については「VPC とサブネット」を参照してください。

  • SecurityGroups は、Amazon SageMaker AI と AWS License Manager エンドポイントへのアウトバウンドアクセスを許可する必要があります。

  • auth-mode は、SSO または IAM のいずれかになっている必要があります。

注記

Amazon Virtual Private Cloud エンドポイントを使用する場合、Amazon Virtual Private Cloud エンドポイントにアタッチされたセキュリティグループで、create-domain CLI 呼び出しの domain-setting パラメータの一部としてパスするセキュリティグループからのインバウンドトラフィックを許可する必要があります。

RStudio では、Amazon SageMaker AI がセキュリティグループを管理します。つまり、Amazon SageMaker AI は、RSessions が RStudioServerPro アプリケーションにアクセスできるように、セキュリティグループルールを管理します。Amazon SageMaker AI は、ユーザープロファイルごとに 1 つのセキュリティグループルールを作成します。

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids "<SUBNET_IDS>" \ --app-network-access-type VPCOnly --app-security-group-management Service

注: RStudioServerPro アプリは、domain-shared という名前の特別なユーザープロファイルによって起動されます。その結果、このアプリは他のユーザープロファイルによる list-app API 呼び出しの一部として返されることはありません。

ユーザー数を増やすには、アカウントの Amazon VPC クォータを増やす必要がある場合があります。詳細については、「Amazon VPC クォータ」を参照してください。

ドメインの作成を検証する

次のコマンドを使用して、ドメインが InServiceStatus で作成されたことを確認します。domain-id がドメイン ARN に追加されます。例えば、arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>

aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>