SageMaker Studio で Amazon SageMaker プロジェクトにアクセスする際の問題をトラブルシューティングしたいと考えています。
解決方法
SageMaker プロジェクトでは、エンドツーエンドの ML ソリューションを管理および調整できます。Studio 環境からプロジェクトを作成したり、プロジェクトにアクセスしたりする場合、次の理由の 1 つ以上が原因で問題が発生する可能性があります。
- 許可がない
- VPC 専用モードでのネットワーク問題
- Studio ユーザーインターフェースの問題
許可がない
SageMaker プロジェクトは、AWS Service Catalog を利用してプロジェクトテンプレートを使用または作成し、アカウントに AWS リソースをプロビジョニングします。Studioドメインユーザーは、プロジェクト権限を付与した場合にのみこれらのテンプレートにアクセスまたは表示できます。
ユーザーにプロジェクト権限がない場合、ユーザーには次のようなエラーメッセージが表示されます。
Amazon SageMaker project templates aren't enabled for your account.
Contact your administrator to enable SageMaker project templates.
この問題を解決するには、必ず管理者およびドメイン実行ロールユーザーにプロジェクト許可を付与してください。
また、次の項目のいずれかが欠落、削除、変更、または手動で再作成されているため、権限の問題が発生する可能性もあります。
- SageMaker プロジェクトをアクティブ化したときに作成されたサービスロール
- Amazon SageMaker JumpStart
この問題を解決するには、次の手順を実行して SageMaker プロジェクトテンプレートと JumpStart をオフにします。
1. SageMaker コンソールを開きます。
2. ナビゲーションペインで、[Domains] をクリックします。
3. ドメイン名の横にあるボタンを使用して、ドメインを選択します。次に、[ドメイン] パネルの上部にある [Edit] (編集) を選択します。
4. [General settings] (一般設定) ページで、[Next] (次へ) を選択します。
5. [SageMaker Projects and JumpStart] (SageMaker プロジェクトと JumpStart) で、[Enable Amazon SageMaker project templates and Amazon SageMaker JumpStart for this account] (このアカウントの Amazon SageMaker プロジェクトテンプレートと Amazon SageMaker JumpStart を有効にする) をオフにします。また、[Enable Amazon SageMaker project templates and Amazon SageMaker JumpStart for Studio users] (Amazon SageMaker プロジェクトテンプレートと Amazon SageMaker JumpStart for Studio ユーザを有効にする) スイッチもオフにします。
6. [次へ] を選択します。
7. [RStudio settings] (RStudio の設定) ページで、[Next] (次へ) を選択します。
8. [Amazon SageMaker Canvas settings] (Amazon SageMaker キャンバスの設定) ページで、[Submit] (送信) を選択します。
9. AmazonSageMakerServiceCatalogProduct* で始まるロールをすべて削除します。
10. 前述の手順に従い、トグルスイッチをオンにして SageMaker プロジェクトテンプレートと JumpStart を有効にします。このステップにより、いくつかの新しいロールが作成されます。ロールの一覧を表示するには:[プロジェクト] で [アプリ] タブを選択し、次に [コントロールパネル] を選択します。
注意: AWS Service Catalog コンソールにアクセスするために必要な許可を付与するには、マネージドポリシー SageMakerFullAccess を Studio ユーザーの実行ロールにアタッチします。
VPC 専用モードでのネットワーク問題
VPC のみのネットワークアクセスタイプではインターネットアクセスは有効になりません。そのため、次の条件に当てはまらない限り、Studio ノートブックを実行することはできません。
- VPC には、SageMaker API とランタイムへのインターフェイスエンドポイント、またはインターネットにアクセスできる NAT ゲートウェイがあります。
- セキュリティグループはアウトバウンド接続を許可します。
SageMaker プロジェクトに NAT ゲートウェイアクセスが必要ない場合は、com.amazonaws.[region].servicecatalog に接続するためのインターフェイス VPC エンドポイント (AWS PrivateLink) を作成する必要があります。例えば、Studio を eu-west-1 AWS リージョンで使用している場合は、com.amazonaws.eu-west-1.servicecatalog を使用してください。詳細については、「VPC 専用モードを使用するための要件」を参照してください。
Studio のネットワーク設定で SageMaker API および Service Catalog エンドポイントへの接続が許可されていることを確認するには、Studio システムターミナルから以下のコマンドを実行します。
SageMaker API エンドポイントへのアクセスをチェック:
curl -v https://api.sagemaker.example-region.amazonaws.com
目的のリージョンのサービスカタログエンドポイントへのアクセスをチェック:
curl -v https://api.sagemaker.example-region.amazonaws.com
これらのコマンドを実行しているときに Connection timeed out エラーが表示される場合は、VPC ネットワーク設定が VPC 専用モードに設定されていることを確認してください。
以下のコマンドを実行して、システムターミナルから利用可能なプロジェクトのリストを表示します。
$ aws sagemaker list-projects --sort-by CreationTime --sort-order Descending
SageMaker Studio のインターフェイスで同じリストを表示できない場合は、必ず Studio のドメインを更新してください。次に、以下を実行します。
1. SageMaker Studio を起動します。
2. 左のサイドバーで、[Commands] (コマンド) を選択します。
3. 検索バーで「Reset Application State」を検索し、このオプションを選択します。
注意: JupyterLab 3 では、デフォルトでは左側のサイドバーにコマンドパレットはありません。コマンドパレットを追加するには、メニューで [表示] を選択し、メニューバーで [コマンドパレットをアクティブにする] を選択します。または、キーボードショートカットコマンド Ctrl+Shift+C を使用することもできます。