

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

# SageMaker JupyterLab
<a name="studio-updated-jl"></a>

Amazon SageMaker Studio で JupyterLab スペースを作成し、JupyterLab アプリケーションを起動します。JupyterLab スペースは、JupyterLab アプリケーションの実行に必要なストレージと演算処理リソースを管理する Studio のプライベートまたは共有スペースです。JupyterLab アプリケーションは、ノートブック、コード、データに使用できるウェブベースの対話型開発環境 (IDE) です。JupyterLab アプリケーションの柔軟で広範なインターフェイスを使用して、機械学習 (ML) ワークフローを設定および調整できます。

デフォルトでは、JupyterLab アプリケーションには SageMaker ディストリビューションイメージが付属しています。ディストリビューションイメージには、次のような利用者の多いパッケージがあります:
+ PyTorch
+ TensorFlow
+ Keras
+ NumPy
+ Pandas
+ Scikit-learn

共有スペースを使用して、Jupyter Notebook で他のユーザーとリアルタイムでコラボレーションできます。共有スペースの詳細については、「[共有スペースでコラボレーション](domain-space.md)」を参照してください。

JupyterLab アプリケーション内で、生成 AI を活用したコードコンパニオンである Amazon Q Developer を使用して、コードを生成、デバッグ、説明できます。Amazon Q Developer の使用について詳しくは、「[JupyterLab ユーザーガイド](studio-updated-jl-user-guide.md)」を参照してください。Amazon Q Developer の設定について詳しくは、「[JupyterLab 管理者ガイド](studio-updated-jl-admin-guide.md)」を参照してください。

同じ Jupyter Notebook で統合分析と ML ワークフローを構築します。ノートブックから直接 Amazon EMR と AWS Glue サーバーレスインフラストラクチャでインタラクティブSparkジョブを実行します。インライン UI Spark を使用して、ジョブを迅速にモニタリングおよびデバッグします。ノートブックをジョブとしてスケジュールすれば、わずかな手間でデータ準備を自動化できます。

JupyterLab アプリケーションは同僚との共同作業に便利です。JupyterLab IDE に組み込みの Git 統合を使用して、コードを共有およびバージョニングできます。Amazon EFS ボリュームがある場合は、独自のファイルストレージシステムを持ち込むことができます。

JupyterLab アプリケーションは 1 つの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行され、1 つの Amazon Elastic Block Store (Amazon EBS) ボリュームをストレージに使用します。必要に応じて高速なインスタンスに切り替えることも、Amazon EBS ボリュームのサイズを増やすこともできます。

JupyterLab 4 アプリケーションは Studio 内の JupyterLab スペースで実行されます。Studio Classic は JupyterLab 3 アプリケーションを使用します。JupyterLab 4 には以下の利点があります:
+ 大規模なノートブックでは特に、IDE が Amazon SageMaker Studio Classic よりも高速になる
+ ドキュメント検索が改善されている
+ テキストエディタが高性能で使いやすい

JupyterLab の詳細については、[JupyterLab のドキュメント](https://jupyterlab.readthedocs.io/en/stable/#)を参照してください。

**Topics**
+ [JupyterLab ユーザーガイド](studio-updated-jl-user-guide.md)
+ [JupyterLab 管理者ガイド](studio-updated-jl-admin-guide.md)

# JupyterLab ユーザーガイド
<a name="studio-updated-jl-user-guide"></a>

このガイドでは、JupyterLab ユーザーが SageMaker Studio 内で分析ワークフローと機械学習ワークフローを実行する方法について説明します。ニーズに応じて、高速ストレージを取得し、コンピューティングをスケールアップまたはスケールダウンできます。

JupyterLab は、プライベートスペースと共有スペースの両方をサポートしています。プライベートスペースは、ドメイン内の 1 人のユーザーにスコープされます。共有スペースを使用すると、ドメイン内の他のユーザーがリアルタイムでコラボレーションできます。Studio のスペースの詳細については、「[Amazon SageMaker Studio のスペース](studio-updated-spaces.md)」を参照してください。

JupyterLab の使用を開始するには、スペースを作成して JupyterLab アプリケーションを起動します。JupyterLab アプリケーションが実行されているスペースは、JupyterLab スペースです。JupyterLab スペースは、コンピューティングに 1 つの Amazon EC2 インスタンスを使用し、ストレージに 1 つの Amazon EBS ボリュームを使用します。コード、git プロファイル、環境変数など、スペース内のすべてのものが、同じ Amazon EBS ボリュームに保存されます。ボリュームのパフォーマンスは 3,000 IOPS で、スループットは 125 メガバイト/秒 (MBps) です。高速ストレージを使用すると、同じインスタンスで複数の Jupyter Notebook を開いて実行することができます。ノートブック内のカーネルをかなりすばやく切り替えることもできます。

スペースのデフォルトの Amazon EBS ストレージ設定は管理者が設定しています。デフォルトのストレージサイズは 5 GB ですが、取得する容量を増やすことができます。管理者に相談して、ガイドラインを提供できます。

JupyterLab の実行に使用する Amazon EC2 インスタンスタイプを切り替え、必要に応じてコンピューティングをスケールアップまたはスケールダウンできます。**[高速起動]** インスタンスは、他のインスタンスよりもはるかに高速に起動します。

管理者から、環境をカスタマイズするライフサイクル設定が提供される場合があります。ライフサイクル設定はスペースの作成時に指定できます。

管理者が Amazon EFS へのアクセスを許可している場合、アクセスできるよう JupyterLab スペースを設定できます。

デフォルトでは、JupyterLab アプリケーションは SageMaker ディストリビューションイメージを使用します。これには、多くの機械学習、分析、および深層学習パッケージのサポートが含まれます。ただし、カスタムイメージが必要な場合、カスタムイメージへのアクセスを管理者が許可できます。

Amazon EBS ボリュームは、インスタンスの運用状況から独立した永続性を持ちます。インスタンスを変更しても、データは失われません。conda および pip パッケージ管理ライブラリを使用して、インスタンスタイプを切り替える場合でも存続する再現可能なカスタム環境を作成します。

JupyterLab を開くと、ターミナルを使用して環境を設定できます。ターミナルを開くには、**[ランチャー]** に移動し、**[ターミナル]** を選択します。

JupyterLab で環境を設定するさまざまな方法の例を次に示します。

**注記**  
Studio 内でライフサイクル設定を使用して環境をカスタマイズすることはできますが、代わりにパッケージマネージャーを使用することをお勧めします。ライフサイクル設定を使用すると、エラーが発生しやすくなります。ライフサイクル設定スクリプトをデバッグするよりも、依存関係を追加または削除する方が簡単です。JupyterLab の起動時間を増やすこともできます。  
ライフサイクル設定については、「[JupyterLab でのライフサイクル設定](jl-lcc.md)」を参照してください。

**Topics**
+ [スペースを作成する](studio-updated-jl-user-guide-create-space.md)
+ [スペースを設定する](studio-updated-jl-user-guide-configure-space.md)
+ [パッケージマネージャーを使用して環境をカスタマイズする](studio-updated-jl-user-guide-customize-package-manager.md)
+ [conda 環境をクリーンアップする](studio-updated-jl-clean-up-conda.md)
+ [インスタンスタイプ間で conda 環境を共有する](studio-updated-jl-create-conda-share-environment.md)
+ [Amazon Q を使用して機械学習ワークフローを高速化する](studio-updated-jl-user-guide-use-amazon-q.md)

# スペースを作成する
<a name="studio-updated-jl-user-guide-create-space"></a>

JupyterLab の使用を開始するには、スペースを作成するか、管理者が作成したスペースを選択して JupyterLab を開きます。

スペースを作成して JupyterLab を開くには、次の手順に従います。

**スペースを作成して JupyterLab を開くには**

1. Studio を開きます。Studio を開く方法については、「[Amazon SageMaker Studio を起動する](studio-updated-launch.md)」を参照してください。

1. **[JupyterLab]** を選択します。

1. **[JupyterLab スペースを作成]** を選択します。

1. **[名前]** で、スペースの名前を指定します。

1. (オプション) **[マイドメインと共有]** を選択して、共有スペースを作成します。

1. **[スペースを作成]** を選択します。

1. (オプション) **[インスタンス]** で、スペースを実行する Amazon EC2 インスタンスを指定します。

1. (オプション) **[イメージ]** で、管理者が環境をカスタマイズするために提供したイメージを指定します。
**重要**  
カスタムイメージを表示するためには、Studio ユーザーにスペースの作成を許可するカスタム IAM ポリシーで、イメージを一覧表示するアクセス許可 (`sagemaker: ListImage`) も付与する必要があります。アクセス許可を追加するには、「*AWS Identity and Access Management* ユーザーガイド」の「[アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。  
SageMaker AI リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md)には、それらのリソースの作成中にイメージを一覧表示するアクセス許可が既に含まれています。

1. (オプション) **[スペースの設定]** で、以下を指定します。
   + **ストレージ (GB)** – 最大 100 GB、または管理者が指定したサイズ。
   + **ライフサイクル設定** – 管理者が指定したライフサイクル設定。
   + **カスタム EFS ファイルシステムのアタッチ** – 管理者がアクセスを提供する Amazon EFS。

1. **[実行スペース]** を選択します。

1. **[JupyterLab を開く]** を選択します。

# スペースを設定する
<a name="studio-updated-jl-user-guide-configure-space"></a>

JupyterLab スペースを作成したら、以下を実行するように設定できます。
+ インスタンスタイプを変更します。
+ ストレージボリュームを変更します。
+ (管理者設定が必要) カスタムイメージを使用します。
+ (管理者設定が必要) ライフサイクル設定を使用します。
+ (管理者設定が必要) カスタム Amazon EFS をアタッチします。

**重要**  
JupyterLab スペースは、設定するたびに停止する必要があります。スペースを設定するには、次の手順に従います。

**スペースを設定するには**

1. Studio 内で、JupyterLab アプリケーションページに移動します。

1. スペースの名前を選択します。

1. (オプション) **[イメージ]** で、管理者が環境をカスタマイズするために提供したイメージを指定します。
**重要**  
カスタムイメージを表示するためには、Studio ユーザーにスペースの作成を許可するカスタム IAM ポリシーで、イメージを一覧表示するアクセス許可 (`sagemaker: ListImage`) も付与する必要があります。アクセス許可を追加するには、「*AWS Identity and Access Management* ユーザーガイド」の「[アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。  
SageMaker AI リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md)には、それらのリソースの作成中にイメージを一覧表示するアクセス許可が既に含まれています。

1. (オプション) **[スペースの設定]** で、以下を指定します。
   + **ストレージ (GB)** – 最大 100 GB、または管理者がスペース用に設定したサイズ。
   + **ライフサイクル設定** – 管理者が指定したライフサイクル設定。
   + **カスタム EFS ファイルシステムのアタッチ** – 管理者がアクセスを提供する Amazon EFS。

1. **[実行スペース]** を選択します。

JupyterLab アプリケーションを開くと、スペースの設定が更新されます。

# パッケージマネージャーを使用して環境をカスタマイズする
<a name="studio-updated-jl-user-guide-customize-package-manager"></a>

pip または conda を使用して環境をカスタマイズします。ライフサイクル設定スクリプトの代わりにパッケージマネージャーを使用することをお勧めします。

## カスタム環境を作成してアクティブ化する
<a name="studio-updated-jl-create-basic-conda"></a>

このセクションでは、JupyterLab で環境を設定するさまざまな方法の例を示します。

基本的な conda 環境には、SageMaker AI のワークフローに必要最小限の数のパッケージが提供されています。次のテンプレートを使用して、基本的な conda 環境を作成します。

```
# initialize conda for shell interaction
conda init

# create a new fresh environment
conda create --name test-env

# check if your new environment is created successfully
conda info --envs

# activate the new environment
conda activate test-env

# install packages in your new conda environment
conda install pip boto3 pandas ipykernel

# list all packages install in your new environment 
conda list

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# to exit your new environment
conda deactivate
```

次の図は、作成した環境の場所を示しています。

![\[test-env 環境は、画面の右上隅に表示されます。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


環境を変更するには、その環境を選択し、ドロップダウンメニューからオプションを選択します。

![\[チェックマークとそれに対応するテキストは、以前に作成した環境の例を示しています。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/jupyter-notebook-select-env.png)


**[選択]** を選択して、環境のカーネルを選択します。

## 特定の Python バージョンで conda 環境を作成する
<a name="studio-updated-jl-create-conda-version"></a>

使用していない conda 環境をクリーンアップすると、ディスク容量が解放され、パフォーマンスが向上します。次のテンプレートを使用して、conda 環境をクリーンアップします。

```
# create a conda environment with a specific python version
conda create --name py38-test-env python=3.8.10

# activate and test your new python version
conda activate py38-test-env & python3 --version

# Install ipykernel to facilicate env registration
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your py38 test environment
conda deactivate
```

## 特定のパッケージセットを使用して conda 環境を作成する
<a name="studio-updated-jl-create-conda-specific-packages"></a>

次のテンプレートを使用して、特定のバージョンの Python と一連のパッケージを持つ conda 環境を作成します。

```
# prefill your conda environment with a set of packages,
conda create --name py38-test-env python=3.8.10 pandas matplotlib=3.7 scipy ipykernel

# activate your conda environment and ensure these packages exist
conda activate py38-test-env

# check if these packages exist
conda list | grep -E 'pandas|matplotlib|scipy'

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## 既存の環境から conda をクローンする
<a name="studio-updated-jl-create-conda-clone"></a>

conda 環境をクローンして、動作状態を維持します。テスト環境に重大な変更を加えることを心配することなく、クローン環境で実験することができます。

以下のコマンドを実行して、環境をクローンします。

```
# create a fresh env from a base environment 
conda create --name py310-base-ext --clone base # replace 'base' with another env

# activate your conda environment and ensure these packages exist
conda activate py310-base-ext

# install ipykernel to register your env
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## 参照 YAML ファイルから conda をクローンする
<a name="studio-updated-jl-create-conda-yaml"></a>

参照 YAML ファイルから conda 環境を作成します。次は、使用できる YAML ファイルの例です。

```
# anatomy of a reference environment.yml
name: py311-new-env
channels:
  - conda-forge
dependencies:
  - python=3.11
  - numpy
  - pandas
  - scipy
  - matplotlib
  - pip
  - ipykernel
  - pip:
      - git+https://github.com/huggingface/transformers
```

`pip` では、conda で使用できない依存関係のみ指定することをお勧めします。

次のコマンドを使用して、YAML ファイルから conda 環境を作成します。

```
# create your conda environment 
conda env create -f environment.yml

# activate your env
conda activate py311-new-env
```

# conda 環境をクリーンアップする
<a name="studio-updated-jl-clean-up-conda"></a>

使用していない conda 環境をクリーンアップすると、ディスク容量が解放され、パフォーマンスが向上します。次のテンプレートを使用して、conda 環境をクリーンアップします。

```
# list your environments to select an environment to clean
conda info --envs # or conda info -e

# once you've selected your environment to purge
conda remove --name test-env --all

# run conda environment list to ensure the target environment is purged
conda info --envs # or conda info -e
```

# インスタンスタイプ間で conda 環境を共有する
<a name="studio-updated-jl-create-conda-share-environment"></a>

conda 環境は、Amazon EBS ボリューム外の Amazon EFS ディレクトリに保存することにより共有できます。保存したディレクトリ内の環境に別のユーザーがアクセスすることができます。

**重要**  
環境の共有には制限があります。例えば、CPU インスタンスで実行される環境よりも、GPU Amazon EC2 インスタンスで実行されることを意図した環境が推奨されることはありません。

次のコマンドをテンプレートとして使用して、カスタム環境を作成するターゲットディレクトリを指定します。特定のパス内に conda を作成します。Amazon EFS ディレクトリ内に作成します。新しいインスタンスをスピンアップし、conda activate パスを実行して Amazon EFS 内で実行できます。

```
# if you know your environment path for your conda environment
conda create --prefix /home/sagemaker-user/my-project/py39-test python=3.9

# activate the env with full path from prefix
conda activate home/sagemaker-user/my-project/py39-test

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | awk -F' : ' '{print $2}' | awk -F'/' '{print $NF}')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env-prefix:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

# Amazon Q を使用して機械学習ワークフローを高速化する
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

Amazon Q Developer は、AI を活用した機械学習開発のパートナーです。Amazon Q Developer では、次のことができます。
+ SageMaker AI 機能を個別に、または他の AWS サービスと組み合わせて使用するためのstep-by-stepガイダンスを受け取ります。
+ データ準備、トレーニング、推論、MLOps などの ML タスクを開始するサンプルコードを取得する。
+ コードを実行中に発生したエラーをデバッグおよび解決するためのトラブルシューティングサポートを受ける。

Amazon Q Developer は JupyterLab 環境にシームレスに統合されます。Amazon Q Developer を使用するには、JupyterLab 環境または Code Editor 環境の左側のナビゲーションから **[Q]** を選択します。

**[Q]** アイコンが表示されない場合、管理者が設定する必要があります。Amazon Q Developer の設定について詳しくは、「[ユーザー用に Amazon Q Developer を設定する](studio-updated-amazon-q-admin-guide-set-up.md)」を参照してください。

Amazon Q では、コードの記述に役立つ提案が自動的に提供されます。チャットインターフェイスから提案を求めることもできます。

# JupyterLab 管理者ガイド
<a name="studio-updated-jl-admin-guide"></a>

**重要**  
Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「[SageMaker AI リソースにタグ付けのアクセス許可を付与する](security_iam_id-based-policy-examples.md#grant-tagging-permissions)」を参照してください。  
SageMaker リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md) には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

この管理者向けガイドでは、Amazon Elastic Block Store (Amazon EBS) や Amazon Elastic Compute Cloud (Amazon EC2) などの SageMaker AI の JupyterLab リソースについて説明します。また、このトピックでは、ユーザーにアクセスを提供し、ストレージサイズを変更する方法も示します。

SageMaker AI JupyterLab スペースは、次のリソースで構成されています。
+ コードや環境変数など、すべてのデータを保存する個別の Amazon EBS ボリューム。
+ スペースの実行に使用される Amazon EC2 インスタンス。
+ JupyterLab の実行に使用されるイメージ。

**注記**  
アプリケーションは、他のアプリケーションの EBS ボリュームにアクセスできません。例えば、Code-OSS (Visual Studio Code - Open Source) に基づく Code Editor は、JupyterLab の EBS ボリュームにアクセスできません。EBS ボリュームの詳細については、「[Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)」を参照してください。

Amazon SageMaker API を使用して、次を実行できます。
+ ユーザーの EBS ボリュームのデフォルトストレージサイズを変更します。
+ EBS ストレージの最大サイズを変更する
+ アプリケーションのユーザー設定を指定します。例えば、ユーザーがカスタムイメージを使用しているか、コードリポジトリを使用しているかを指定できます。
+ サポートアプリケーションタイプを指定します。

Amazon EBS ボリュームのデフォルトサイズは 5 GB です。ボリュームサイズは最大 16,384 GB まで増やすことができます。何もしない場合、ユーザーはボリュームサイズを 100 GB に増やすことができます。ボリュームサイズは、6 時間以内に 1 回しか変更できません。

JupyterLab アプリケーションに関連付けられたカーネルは、JupyterLab を実行するのと同じ Amazon EC2 インスタンスで実行されます。スペースを作成すると、SageMaker ディストリビューションイメージの最新バージョンがデフォルトで使用されます。SageMaker ディストリビューションイメージについては、「[SageMaker Studio のイメージサポートポリシー](sagemaker-distribution.md)」を参照してください。

**重要**  
SageMaker AI ディストリビューションイメージの最新バージョンを使用するようにスペースを更新する方法については、「[SageMaker ディストリビューションイメージを更新する](studio-updated-jl-update-distribution-image.md)」を参照してください。

ストレージボリューム内のユーザーの作業ディレクトリは `/home/sagemaker-user` です。ボリュームを暗号化するために独自の AWS KMS キーを指定すると、作業ディレクトリ内のすべてのものがカスタマーマネージドキーを使用して暗号化されます。 AWS KMS キーを指定しない場合、 内のデータは AWS マネージドキーで暗号化`/home/sagemaker-user`されます。 AWS KMS キーを指定するかどうかにかかわらず、作業ディレクトリ外のすべてのデータは AWS マネージドキーで暗号化されます。

以下のセクションでは、管理者として実行する必要がある設定について説明します。

**Topics**
+ [ユーザーにスペースへのアクセスを許可する](studio-updated-jl-admin-guide-permissions.md)
+ [JupyterLab ユーザーのデフォルトのストレージサイズを変更する](studio-updated-jl-admin-guide-storage-size.md)
+ [JupyterLab でのライフサイクル設定](jl-lcc.md)
+ [JupyterLab の Git リポジトリ](studio-updated-jl-admin-guide-git-attach.md)
+ [カスタムイメージ](studio-updated-jl-admin-guide-custom-images.md)
+ [SageMaker ディストリビューションイメージを更新する](studio-updated-jl-update-distribution-image.md)
+ [未使用のリソースを削除する](studio-updated-jl-admin-guide-clean-up.md)
+ [クォータ](studio-updated-jl-admin-guide-quotas.md)

# ユーザーにスペースへのアクセスを許可する
<a name="studio-updated-jl-admin-guide-permissions"></a>

ユーザーにプライベートスペースまたは共有スペースへのアクセスを許可するには、アクセス許可ポリシーを IAM ロールにアタッチする必要があります。アクセス許可ポリシーを使用して、プライベートスペースとその関連アプリケーションを特定のユーザープロファイルに制限することもできます。

以下のアクセス許可ポリシーは、プライベートスペースと共有スペースへのアクセスを許可します。これにより、ユーザーは独自のスペースを作成し、ドメイン内の他のスペースを一覧表示できます。このポリシーを持つユーザーは、別のユーザーのプライベートスペースにアクセスすることができません。Studio のスペースの詳細については、「[Amazon SageMaker Studio のスペース](studio-updated-spaces.md)」を参照してください。

このポリシーによって、ユーザーには以下へのアクセス許可が付与されます。
+ プライベートスペースまたは共有スペース。
+ これらのスペースにアクセスするためのユーザープロファイル。

アクセス許可を付与するには、次のポリシーのアクセス許可の範囲を縮小し、ユーザーの IAM ロールに追加します。このポリシーを使用して、スペースとそれに関連するアプリケーションを特定のユーザープロファイルに制限することもできます。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# JupyterLab ユーザーのデフォルトのストレージサイズを変更する
<a name="studio-updated-jl-admin-guide-storage-size"></a>

ユーザーのデフォルトのストレージ設定を変更できます。また、組織の要件やユーザーのニーズに基づいて、デフォルトのストレージ設定を変更することもできます。

ストレージサイズを変更するには、このセクションで以下のコマンドを実行します。

1. Amazon SageMaker AI ドメイン (ドメイン) の Amazon EBS ストレージ設定を更新します。

1. ユーザープロファイルを作成し、その中でストレージ設定を指定します。

次の AWS Command Line Interface (AWS CLI) コマンドを使用して、デフォルトのストレージサイズを変更します。

ドメインを更新するには、次の AWS CLI コマンドを使用します。

```
aws --region AWS リージョン sagemaker update-domain \
--domain-id domain-id \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

次の AWS CLI コマンドを使用してユーザープロファイルを作成し、デフォルトのストレージ設定を指定します。

```
aws --region AWS リージョン sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

次の AWS CLI コマンドを使用して、ユーザープロファイルのデフォルトのストレージ設定を更新します。

```
aws --region AWS リージョン sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# JupyterLab でのライフサイクル設定
<a name="jl-lcc"></a>

ライフサイクル設定は、新しい JupyterLab ノートブックの開始などの JupyterLab ライフサイクルイベントによってトリガーされるシェルスクリプトです。ライフサイクル設定を使用して、JupyterLab 環境のカスタマイズを自動化できます。このカスタマイズには、カスタムパッケージのインストール、ノートブック拡張機能の構成、データセットのプリロード、ソースコードリポジトリの設定が含まれます。

ライフサイクル設定を使うと柔軟性が生まれ、ニーズに合わせて JupyterLab の設定をコントロールできるようになります。例えば、最も一般的に使用されるパッケージとライブラリを使用して、最小限のベースコンテナイメージのセットを作成できます。その後、ライフサイクル設定を使用して、データサイエンスチームと機械学習チーム全体に、特定のユースケース用の追加パッケージをインストールできます。

**注記**  
各スクリプトの長さは **16,384 文字**に制限されています。

**Topics**
+ [ライフサイクル設定の作成](jl-lcc-create.md)
+ [ライフサイクル設定をデバッグする](jl-lcc-debug.md)
+ [ライフサイクル設定のデタッチ](jl-lcc-delete.md)

# ライフサイクル設定の作成
<a name="jl-lcc-create"></a>

このトピックでは、JupyterLab を使用してライフサイクル設定を作成および関連付ける手順について説明します。 AWS Command Line Interface (AWS CLI) または を使用して AWS マネジメントコンソール 、JupyterLab 環境のカスタマイズを自動化します。

ライフサイクル設定は、新しい JupyterLab ノートブックの開始などの JupyterLab ライフサイクルイベントによってトリガーされるシェルスクリプトです。ライフサイクル設定についての詳細は、「[JupyterLab でのライフサイクル設定](jl-lcc.md)」を参照してください。

## ライフサイクル設定の作成 (AWS CLI)
<a name="jl-lcc-create-cli"></a>

 AWS Command Line Interface (AWS CLI) を使用してライフサイクル設定を作成し、Studio 環境のカスタマイズを自動化する方法について説明します。

### 前提条件
<a name="jl-lcc-create-cli-prerequisites"></a>

開始する前に、次の前提条件を完了します。
+ [現在の AWS CLI バージョンのインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled)の AWS CLI 手順に従って、 を更新します。
+ ローカルマシンで `aws configure` を実行し、 AWS 認証情報を入力します。 AWS 認証情報の詳細については、[AWS 「認証情報の理解と取得](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)」を参照してください。
+ Amazon SageMaker AI ドメインにオンボードします。概念については、「[Amazon SageMaker AI ドメインの概要](gs-studio-onboard.md)」を参照してください。クイックスタートガイドについては、「[Amazon SageMaker AI の高速セットアップを使用する](onboard-quick-start.md)」を参照してください。

### 手順 1: ライフサイクル設定を作成する
<a name="jl-lcc-create-cli-step1"></a>

以下の手順では、`Hello World` を出力するライフサイクル設定スクリプトを作成する方法について説明します。

**注記**  
各スクリプトには最大 **16,384 文字**まで入力できます。

1. ローカルマシンで、次の内容の `my-script.sh` というファイルを作成します:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. ファイルを `my-script.sh` base64 形式に変換するには、以下を使用します。これにより、スペースと改行のエンコードによって発生するエラーを防止できます。

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Studio で使用するライフサイクル設定を作成します。次のコマンドは、関連付けられた `JupyterLab` アプリケーションの起動時に実行されるライフサイクル設定を作成します:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-jl-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type JupyterLab
   ```

   レスポンスに記載された、新しく作成されたライフサイクル設定の ARN を書き留めておきます。この ARN は、ライフサイクル設定をアプリケーションにアタッチするために必要です。

### 手順 2: Amazon SageMaker AI ドメイン (ドメイン) およびユーザープロファイルにライフサイクル設定をアタッチする
<a name="jl-lcc-create-cli-step2"></a>

ライフサイクル設定をアタッチするには、ドメインまたはユーザープロファイルの `UserSettings` を更新する必要があります。ドメインレベルで関連付けられたライフサイクル設定スクリプトは、すべてのユーザーに継承されます。ただし、ユーザープロファイルレベルで関連付けられたスクリプトは、特定のユーザーを対象としています。

次のコマンドを使用して、ライフサイクル設定をアタッチした新しいプロファイル、ドメイン、またはスペースを作成できます。
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

次のコマンドは、ライフサイクル設定を使用してユーザープロファイルを作成します。前の手順で取得したライフサイクル設定の ARN を、ユーザーの `JupyterLabAppSettings` に追加します。ライフサイクル設定のリストを渡すことで、複数のライフサイクル設定を一度に追加できます。ユーザーが で JupyterLab アプリケーションを起動すると AWS CLI、デフォルトの設定を使用する代わりにライフサイクル設定を指定できます。ユーザーが渡すライフサイクル設定は、`JupyterLabAppSettings` 内のライフサイクル設定のリストに含まれていなければなりません。

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

## ライフサイクル設定の作成 (コンソール)
<a name="jl-lcc-create-console"></a>

を使用してライフサイクル設定を作成し、Studio 環境のカスタマイズ AWS マネジメントコンソール を自動化する方法について説明します。

### 手順 1: ライフサイクル設定を作成する
<a name="jl-lcc-create-console-step1"></a>

以下の手順では、`Hello World` を出力するライフサイクル設定スクリプトを作成する手順について説明します。

**ライフサイクル設定を作成するには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

1. **[管理設定]** で、**[ライフサイクル設定]** を選択します。

1. **[JupyterLab]** タブを選択します。

1. **[設定を作成]** を選択します。

1. **[名前]** には、ライフサイクル設定の名前を指定します。

1. **[スクリプト]** のテキストボックスで、次のライフサイクル設定を指定します:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. **[設定を作成]** を選択します。

### 手順 2: Amazon SageMaker AI ドメイン (ドメイン) およびユーザープロファイルにライフサイクル設定をアタッチする
<a name="jl-lcc-create-console-step2"></a>

ドメインレベルで関連付けられたライフサイクル設定スクリプトは、すべてのユーザーに継承されます。ただし、ユーザープロファイルレベルで関連付けられたスクリプトは、特定のユーザーを対象としています。

JupyterLab について、ドメインまたはユーザープロファイルに複数のライフサイクル設定をアタッチできます。

ライフサイクル設定をドメインにアタッチするには、以下の手順を使用します。

**ライフサイクル設定をドメインにアタッチするには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

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

1. ドメインのリストから、ライフサイクル設定をアタッチするドメインを選択します。

1. **[ドメインの詳細]** ページで、**[環境]** タブを選択します。

1. **[個人用 Studio アプリのライフサイクル設定]** で、**[アタッチ]** を選択します。

1. **[ソース]** で、**[既存の設定]** を選択します。

1. **[Studio ライフサイクル設定]** で、前の手順で作成したライフサイクル設定を選択します。

1. **[ドメインにアタッチ]** を選択します。

ライフサイクル設定をユーザープロファイルにアタッチするには、次の手順を使用します。

**ライフサイクル設定をユーザープロファイルにアタッチするには**

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

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

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

1. ドメインのリストから、ライフサイクル設定をアタッチするユーザープロファイルを含むドメインを選択します。

1. **[ユーザープロファイル]** で、ユーザープロファイルを選択します。

1. **[ユーザーの詳細]** ページで、**[編集]** を選択します。

1. 左側のナビゲーションで、**[Studio の設定]** を選択します。

1. **[ユーザーにアタッチされたライフサイクル設定]** で、**[アタッチ]** を選択します。

1. **[ソース]** で、**[既存の設定]** を選択します。

1. **[Studio ライフサイクル設定]** で、前の手順で作成したライフサイクル設定を選択します。

1. **[ユーザープロファイルにアタッチ]** を選択します。

# ライフサイクル設定をデバッグする
<a name="jl-lcc-debug"></a>

次のトピックでは、ライフサイクル設定に関する情報を取得してデバッグする方法を説明します。

**Topics**
+ [CloudWatch Logs でライフサイクル設定プロセスを検証する](#jl-lcc-debug-logs)
+ [ライフサイクル設定のタイムアウト](#jl-lcc-debug-timeout)

## CloudWatch Logs でライフサイクル設定プロセスを検証する
<a name="jl-lcc-debug-logs"></a>

ライフサイクル設定では `STDOUT` と `STDERR` のみを記録します。

`STDOUT` は、bash スクリプトのデフォルト出力です。bash コマンドの最後に `>&2` を追加することで、`STDERR` に書き込むことができます。例えば、`echo 'hello'>&2`。

ライフサイクル設定のログは、Amazon CloudWatch AWS アカウント を使用して に発行されます。これらのログは、CloudWatch コンソールの `/aws/sagemaker/studio` ログストリームでも確認できます。

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. 左側のナビゲーションペインで **[ログ]** を選択します。ドロップダウンメニューで、**[ロググループ]** を選択します。

1. **[ロググループ]** ページで、`aws/sagemaker/studio` を検索します。

1. ロググループを選択します。

1. **[ロググループの詳細]** ページで、**[ログストリーム]** タブを選択します。

1. 特定のスペースのログを検索するには、次の形式を使用してログストリームを検索します。

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   例えば、ドメイン ID `d-m85lcu8vbqmz`、スペース名 `i-sonic-js`、アプリケーションタイプ `JupyterLab` のライフサイクル設定ログを検索するには、以下の検索文字列を使用します。

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## ライフサイクル設定のタイムアウト
<a name="jl-lcc-debug-timeout"></a>

ライフサイクル設定のタイムアウトの制限は 5 分です。ライフサイクル設定スクリプトの実行に 5 分以上かかる場合、エラーが表示されます。

このエラーを解決するには、ライフサイクル設定スクリプトを 5 分以内に完了させます。

スクリプトの実行時間を短縮できるように、次のことを試してください。
+ 不要なステップを減らします。例えば、大きなパッケージをインストールする conda 環境を制限します。
+ 並列プロセスでタスクを実行します。
+ スクリプトの nohup コマンドを使用して、スクリプトが停止せず実行されるように、ハングアップシグナルを無視させます。

# ライフサイクル設定のデタッチ
<a name="jl-lcc-delete"></a>

スクリプトを更新するには、新しいライフサイクル設定スクリプトを作成して、そのスクリプトを目的の Amazon SageMaker AI ドメイン (ドメイン)、ユーザープロファイル、または共有スペースにアタッチする必要があります。ライフサイクル設定スクリプトは、作成後に変更できません。ライフサイクル設定の作成やアタッチの詳細については、「[ライフサイクル設定の作成](jl-lcc-create.md)」を参照してください。

次のセクションでは、 AWS Command Line Interface (AWS CLI) を使用してライフサイクル設定をデタッチする方法を示します。

## を使用してデタッチする AWS CLI
<a name="jl-lcc-delete-cli"></a>

(AWS CLI) を使用してライフサイクル設定をデタッチするには、リソースにアタッチされているライフサイクル設定のリストから目的のライフサイクル設定を削除し、そのリストを対応するコマンドの一部として渡します:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

例えば、次のコマンドは、ドメインにアタッチされている JupyterLab アプリケーションのすべてのライフサイクル設定を削除します。

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# JupyterLab の Git リポジトリ
<a name="studio-updated-jl-admin-guide-git-attach"></a>

JupyterLab の Git 拡張機能では、Git リポジトリ の URL を入力し、環境にクローンを作成して、変更をプッシュしたり、コミット履歴を表示したりできます。推奨 Git リポジトリ URL を Amazon SageMaker AI ドメイン (ドメイン) またはユーザープロファイルにアタッチすることもできます。

以下のセクションでは、Git リポジトリ URL をアタッチまたはデタッチする方法を説明します。

**Topics**
+ [Git リポジトリをアタッチする (AWS CLI)](studio-updated-git-attach-cli.md)
+ [Git リポジトリ URL をデタッチする](studio-updated-git-detach.md)

# Git リポジトリをアタッチする (AWS CLI)
<a name="studio-updated-git-attach-cli"></a>

このセクションでは、 を使用して Git リポジトリ (リポジトリ) URL をアタッチする方法について説明します AWS CLI。Git リポジトリの URL をアタッチした後は、「[Amazon SageMaker Studio で Git リポジトリのクローンを作成する](#studio-updated-tasks-git)」の手順に従ってクローンを作成できます。

## 前提条件
<a name="studio-updated-git-attach-cli-prerequisites"></a>

開始する前に、次の前提条件を完了します。
+ [現在の AWS Command Line Interface バージョンのインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled)の AWS CLI 手順に従って、 を更新します。
+ ローカルマシンで `aws configure` を実行し、 AWS 認証情報を入力します。 AWS 認証情報の詳細については、[AWS 「認証情報の理解と取得](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)」を参照してください。
+ Amazon SageMaker AI ドメインにオンボードします。詳細については、「[Amazon SageMaker AI ドメインの概要](gs-studio-onboard.md)」を参照してください。

## Git リポジトリを Amazon SageMaker AI ドメイン (ドメイン) またはユーザープロファイルにアタッチする
<a name="studio-updated-git-attach-cli-attach"></a>

ドメインレベルで関連付けられた Git リポジトリ URL は、すべてのユーザーに継承されます。ただし、ユーザープロファイルレベルで関連付けられた Git リポジトリ URL は、特定のユーザーを対象としています。リポジトリ URL のリストを渡すことで、Amazon SageMaker AI ドメインまたはユーザープロファイルに複数の Git リポジトリ URL をアタッチできます。

以下のセクションでは、Git リポジトリ URL をドメインとユーザープロファイルにアタッチする方法を示します。

### Amazon SageMaker AI ドメインにアタッチする
<a name="studio-updated-git-attach-cli-attach-domain"></a>

次のコマンドは、Git リポジトリ URL を既存のドメインにアタッチします。

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### ユーザープロファイルにアタッチする
<a name="studio-updated-git-attach-cli-attach-userprofile"></a>

次のコマンドは、Git リポジトリ URL を既存のユーザープロファイルにアタッチします。

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

## Amazon SageMaker Studio で Git リポジトリのクローンを作成する
<a name="studio-updated-tasks-git"></a>

Amazon SageMaker Studio は、ローカル Git リポジトリにのみ接続されます。リポジトリ内のファイルにアクセスするには、Studio 内から Git リポジトリのクローンを作成します。これを行うため、Studio には、Git リポジトリ の URL の入力、環境へのクローンの作成、変更のプッシュ、コミット履歴の表示を行うための Git 拡張機能が用意されています。

リポジトリが非公開で、リポジトリにアクセスするために認証情報が必要な場合、ユーザーの認証情報の入力を求められます。認証情報には、ユーザー名と個人用のアクセストークンが含まれます。個人用のアクセストークンの詳細については、「[Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)」を参照してください。

管理者は、Amazon SageMaker AI ドメインまたはユーザープロファイルレベルで、推奨 Git リポジトリ URL をアタッチすることもできます。その後、ユーザーは、推奨リストからリポジトリ URL を選択して、そのリポジトリのクローンを Studio に作成できます。推奨リポジトリのアタッチの詳細については、「[推奨 Git リポジトリを Amazon SageMaker Studio Classic にアタッチする](studio-git-attach.md)」を参照してください。

# Git リポジトリ URL をデタッチする
<a name="studio-updated-git-detach"></a>

このセクションでは、Git リポジトリ URL を Amazon SageMaker AI ドメイン (ドメイン) またはユーザープロファイルからデタッチする方法を説明します。 AWS Command Line Interface (AWS CLI) または Amazon SageMaker AI コンソールを使用して、リポジトリ URLs をデタッチできます。 Amazon SageMaker 

## を使用して Git リポジトリをデタッチする AWS CLI
<a name="studio-updated-git-detach-cli"></a>

すべての Git リポジトリ URL をドメインまたはユーザープロファイルからデタッチするには、コードリポジトリの空のリストを渡す必要があります。このリストは、`update-domain` コマンドまたは `update-user-profile` コマンドの `JupyterLabAppSettings` パラメータの一部として渡されます。単一の Git リポジトリ URL のみをデタッチするには、デタッチする Git リポジトリ URL を含まないコードリポジトリのリストを渡します。

### Amazon SageMaker AI ドメインからデタッチする
<a name="studio-updated-git-detach-cli-domain"></a>

次のコマンドは、すべての Git リポジトリ URL をドメインからデタッチします。

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterLabAppSettings={CodeRepositories=[]}
```

### ユーザープロファイルからデタッチする
<a name="studio-updated-git-detach-cli-userprofile"></a>

次のコマンドは、すべての Git リポジトリ URL をユーザープロファイルからデタッチします。

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[]}
```

# カスタムイメージ
<a name="studio-updated-jl-admin-guide-custom-images"></a>

SageMaker Distribution が提供する機能とは異なる機能が必要な場合は、カスタムの拡張機能とパッケージを使用した独自のイメージを持ち込むことができます。これを使用して、独自のブランドやコンプライアンスのニーズに合わせて JupyterLab UI をパーソナライズすることもできます。

次のページでは、独自のカスタム SageMaker AI イメージを作成するための JupyterLab 固有の情報とテンプレートを説明します。これは、独自の Amazon SageMaker Studio の情報と、独自の SageMaker AI イメージを作成して Studio に取り込む (BYOI) 手順を補足することを目的としています。カスタム Amazon SageMaker AI イメージと Studio に独自のイメージを取り込む (BYOI) 方法については、「[Bring your own image (BYOI)](studio-updated-byoi.md)」を参照してください。

**Topics**
+ [アプリケーションのヘルスチェックと URL](#studio-updated-jl-admin-guide-custom-images-app-healthcheck)
+ [Dockerfile サンプル](#studio-updated-jl-custom-images-dockerfile-templates)

## アプリケーションのヘルスチェックと URL
<a name="studio-updated-jl-admin-guide-custom-images-app-healthcheck"></a>
+ `Base URL` – BYOI アプリケーションのベース URL は `jupyterlab/default` である必要があります。保持できるアプリケーションは 1 つのみで、必ず `default` という名前にする必要があります。
+ `HealthCheck API` – SageMaker AI は、ポート `8888` のヘルスチェックエンドポイントを使用して、JupyterLab アプリケーションのヘルスをチェックします。ヘルスチェックのエンドポイントは、`jupyterlab/default/api/status` です。
+ `Home/Default URL` – が使用する `/opt/.sagemakerinternal`および `/opt/ml` ディレクトリ AWS。`/opt/ml` のメタデータファイルには、`DomainId` などのリソースに関するメタデータが含まれています。
+ 認証 - ユーザーの認証を有効にするには、Jupyter Notebook トークンまたはパスワードベースの認証をオフにし、すべてのオリジンを許可します。

## Dockerfile サンプル
<a name="studio-updated-jl-custom-images-dockerfile-templates"></a>

以下の例は、上記の情報と[カスタムイメージの仕様](studio-updated-byoi-specs.md)を満たす `Dockerfile` です。

**注記**  
独自のイメージを SageMaker Unified Studio に取り込む (BYOI) 場合は、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile 仕様](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)」に従う必要があります。  
SageMaker Unified Studio の `Dockerfile` の例については、「*Amazon SageMaker Unified Studio ユーザーガイド*」の「[Dockerfile の例](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)」を参照してください。

------
#### [ Example AL2023 Dockerfile ]

以下の例は、上記の情報と[カスタムイメージの仕様](studio-updated-byoi-specs.md)を満たす AL2023 Dockerfile の例です。

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023

ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

# Install Python3, pip, and other dependencies
RUN yum install -y \
    python3 \
    python3-pip \
    python3-devel \
    gcc \
    shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all

RUN python3 -m pip install --no-cache-dir \
    'jupyterlab>=4.0.0,<5.0.0' \
    urllib3 \
    jupyter-activity-monitor-extension \
    --ignore-installed

# Verify versions
RUN python3 --version && \
    jupyter lab --version

USER ${NB_UID}
CMD jupyter lab --ip 0.0.0.0 --port 8888 \
    --ServerApp.base_url="/jupyterlab/default" \
    --ServerApp.token='' \
    --ServerApp.allow_origin='*'
```

------
#### [ Example Amazon SageMaker のディストリビューション Dockerfile ]

以下の例は、上記の情報と[カスタムイメージの仕様](studio-updated-byoi-specs.md)を満たす Amazon SageMaker Distribution Dockerfile です。

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

ENV MAMBA_USER=$NB_USER

USER root

RUN apt-get update
RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base

USER $MAMBA_USER

ENTRYPOINT ["entrypoint-jupyter-server"]
```

------

# SageMaker ディストリビューションイメージを更新する
<a name="studio-updated-jl-update-distribution-image"></a>

**重要**  
このトピックでは、スペースを作成し、ユーザーにそのスペースへのアクセス権を付与することを前提としています。詳細については、「[ユーザーにスペースへのアクセスを許可する](studio-updated-jl-admin-guide-permissions.md)」を参照してください。

SageMaker ディストリビューションイメージの最新バージョンを使用して最新の機能にアクセスするため、既に作成した JupyterLab スペースを更新します。Studio UI または AWS Command Line Interface (AWS CLI) を使用してイメージを更新できます。

以下のセクションでは、イメージの更新について説明します。

## イメージを更新する (UI)
<a name="studio-updated-jl-update-distribution-image-ui"></a>

イメージを更新するには、ユーザーの JupyterLab スペースを再起動する必要があります。次の手順を使用して、ユーザーの JupyterLab スペースを最新のイメージで更新します。

**イメージを更新するには (UI)**

1. Studio を開きます。Studio を開く方法については、「[Amazon SageMaker Studio を起動する](studio-updated-launch.md)」を参照してください。

1. **[JupyterLab]** を選択します。

1. ユーザーの JupyterLab スペースを選択します。

1. **[スペースを停止]** を選択します。

1. **[イメージ]** では、SageMaker AI ディストリビューションイメージの更新済みバージョンを選択します。最新のイメージについては、**[最新]** を選択します。

1. **[実行スペース]** を選択します。

## イメージを更新する (AWS CLI)
<a name="studio-updated-jl-update-distribution-image-cli"></a>

このセクションでは、 AWS Command Line Interface (AWS CLI) がインストールされていることを前提としています。のインストールの詳細については AWS CLI、「 [の最新バージョンのインストールまたは更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

イメージを更新するには、ユーザーのスペースに対して以下を実行する必要があります。

1. JupyterLab アプリケーションを削除する

1. スペースを更新する

1.  アプリケーションの作成

**重要**  
イメージの更新を開始する前に、次の情報を準備しておく必要があります。  
domain ID – ユーザーの Amazon SageMaker AI ドメインの ID です。
アプリケーションタイプ – JupyterLab。
アプリケーション名 – デフォルト。
スペース名 – スペースに指定された名前。
インスタンスタイプ – アプリケーションを実行するために使用する Amazon EC2 インスタンスタイプ。例えば、`ml.t3.medium`。
SageMaker イメージ ARN – SageMaker AI ディストリビューションイメージの Amazon リソースネーム (ARN)。SageMaker AI ディストリビューションイメージの最新バージョンを提供するには、リソース識別子として `sagemaker-distribution-cpu` または `sagemaker-distribution-gpu` を指定します。

JupyterLab アプリケーションを削除するには、次のコマンドを実行します。

```
aws sagemaker delete-app \
--domain-id your-user's-domain-id 
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space
```

ユーザーのスペースを更新するには、次のコマンドを実行します。

```
aws sagemaker update-space \
--space-name name-of-your-user's-space \
--domain-id your-user's-domain-id
```

スペースが正常に更新されると、レスポンスにスペース ARN が表示されます。

```
{
"SpaceArn": "arn:aws:sagemaker:AWS リージョン:111122223333:space/your-user's-domain-id/name-of-your-user's-space"
}
```

次のコマンドを使用して、アプリケーションを作成します。

```
aws sagemaker create-app \
--domain-id your-user's-domain-id  \
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space \
--resource-spec "InstanceType=instance-type,SageMakerImageArn=arn:aws:sagemaker:AWS リージョン:555555555555:image/sagemaker-distribution-resource-identifier"
```

# 未使用のリソースを削除する
<a name="studio-updated-jl-admin-guide-clean-up"></a>

JupyterLab を実行する追加コストが発生しないように、未使用のリソースを次の順序で削除することをお勧めします。

1. JupyterLab アプリケーション

1. スペース

1. ユーザープロファイル

1. domains

ドメイン内のリソースを削除するには、次の AWS Command Line Interface (AWS CLI) コマンドを使用します。

------
#### [ Delete a JupyterLab application ]

```
aws --region AWS リージョン sagemaker delete-app --domain-id example-domain-id --app-name default --app-type JupyterLab --space-name example-space-name
```

------
#### [ Delete a space ]

**重要**  
スペースを削除すると、それに関連付けられた Amazon EBS ボリュームが削除されます。スペースを削除する前に、重要なデータをバックアップすることをお勧めします。

```
aws --region AWS リージョン sagemaker delete-space --domain-id example-domain-id  --space-name example-space-name
```

------
#### [ Delete a user profile ]

```
aws --region AWS リージョン sagemaker delete-user-profile --domain-id example-domain-id --user-profile example-user-profile
```

------

# クォータ
<a name="studio-updated-jl-admin-guide-quotas"></a>

JupyterLab には、次のクォータが設定されています。
+  AWS アカウント内のすべての Amazon EBS ボリュームの合計。
+ ユーザーが使用できるインスタンスタイプ。
+ ユーザーが起動できる特定のインスタンスの数。

ユーザーのストレージとコンピューティングを増やすには、 AWS クォータの引き上げをリクエストします。クォータの引き上げリクエストの詳細については、「[Amazon SageMaker エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)」を参照してください。