

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

# ドメインへのカスタムファイルシステムの追加
<a name="domain-custom-file-system"></a>

ドメインを作成する際、Amazon SageMaker AI はデフォルトの Amazon Elastic File System (Amazon EFS) ボリュームをドメインに追加します。SageMaker AI は、このボリュームを自動的に作成します。作成したカスタム Amazon EFS ファイルシステムまたはカスタム Amazon Lustre ファイルシステム用 FSx を追加することもできます。追加したファイルシステムは、ドメインに属するユーザーが使用できるようになります。ユーザーは、Amazon SageMaker Studio を使用する際に、追加したファイルシステムにアクセスできます。ファイルシステムは、以下のサポートされているアプリケーション用に作成するスペースにアタッチできます。
+ JupyterLab
+ コードエディタ

スペースを実行してアプリケーションを起動すると、ユーザーはファイルシステムに含まれるデータ、コード、またはその他のアーティファクトにアクセスできます。

ユーザーは、以下の方法でファイルシステムにアクセスできます。
+ *共有スペース*経由 – 共有スペースは、ドメインに属するすべてのユーザーが作成できます。作成された共有スペースは、ドメインに属するすべてのユーザーが利用できます。
+ *プライベートスペース*経由 – プライベートスペースは、ドメインに属するすべてのユーザーが作成できます。作成されたプライベートスペースは、作成したユーザーのみが使用できます。
+ 個別のユーザー専用 – すべてのユーザーがファイルシステムにアクセスできるようにする必要がない場合は、特定のユーザーのみがファイルシステムにアクセスできるように指定できます。このように指定すると、ファイルシステムは、特定のユーザーが作成したプライベートスペースでのみ使用できます。

Amazon SageMaker API、 AWS SDKs、または を使用して、カスタムファイルシステムを追加できます AWS CLI。カスタムファイルシステムの追加には、SageMaker AI コンソールは使用できません。

## 前提条件
<a name="domain-custom-file-system-prereqs"></a>

ドメインにカスタムファイルシステムを追加する前に、以下の要件を満たす必要があります。
+ SageMaker AI にドメインが配置されていること。ファイルシステムを追加する前に、ドメイン ID が必要です。ID の検索には、SageMaker AI コンソールを使用できます。 AWS CLIで [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-domains.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-domains.html) コマンドを実行することもできます。
+  AWS アカウント内に Amazon EFS または Lustre ファイルシステム用 FSx があること。

------
#### [ For Amazon EFS ]
  + Amazon EFS の作成手順については、「*Amazon Elastic File System ユーザーガイド*」の「[Create your Amazon EFS file system](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html)」を参照してください。
  + Studio がファイルシステムにアクセスできるようにするには、ドメインに関連付ける各サブネットにマウントターゲットが必要となります。サブネットへのマウントターゲットの割り当ての詳細については、「*Amazon Elastic File System ユーザーガイド*」の「[Creating and managing mount targets and security groups](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html)」を参照してください。
  + マウントターゲットごとに、ドメインの作成 AWS アカウント 時に Amazon SageMaker AI が で作成したセキュリティグループを追加する必要があります。セキュリティグループ名は `security-group-for-inbound-nfs-{{domain-id}}` の形式をとります。ドメイン ID を取得する手順については、「[ドメインを表示する](domain-view.md)」を参照してください。
  + IAM 許可で `elasticfilesystem:DescribeMountTargets` アクションの使用が許可されている必要があります。このアクションの詳細については、「*サービス認可リファレンス*」の「[Actions, resources, and condition keys for Amazon Elastic File System](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticfilesystem.html)」を参照してください。

------
#### [ For FSx for Lustre ]
  + FSx for Lustre ファイルシステムの作成手順については、「*Amazon FSx for Lustre ユーザーガイド*」の「[Amazon FSx for Lustre の使用開始](https://docs.aws.amazon.com/fsx/latest/LustreGuide/getting-started.html.html)」を参照してください。Lustre ファイルシステム用 FSx が以下に配置されていることを確認します。
    + ドメインと同じ Amazon VPC
    + ドメイン内に配置されたサブネットのいずれか
  + Studio が FSx for Lustre ファイルシステムにアクセスする前に、Lustre ファイルシステム用 FSx のすべての Elastic Network Interface (ENI) にドメインのセキュリティグループを追加する必要があります。このステップを実行しないと、アプリケーションの作成はエラーで失敗します。次の手順に従って、Lustre ファイルシステム用 FSx の ENI にドメインセキュリティグループを追加します。

**Lustre ファイルシステム用 FSx の ENI にドメインセキュリティグループを追加する (コンソール）**

    1. [Amazon FSx コンソール](https://console.aws.amazon.com/fsx)に移動します。

    1. [**File Systems (ファイルシステム)**] を選択します。

    1. **[ファイルシステム ID]** の対応するリンクを使って、Lustre ファイルシステム用 FSx を選択します。

    1. まだ選択されていない場合は、**[ネットワークとセキュリティ]** タブを選択します。

    1. **[サブネット]** で、**[すべての ENI を確認するには、Amazon EC2 コンソールを参照してください]** を選択します。これにより、Amazon EC2 コンソールが開き、Lustre ファイルシステム用 FSx にリンクされたすべての ENI が表示されます。

    1. 各 ENI について:

       1. **[ネットワークインターフェイス ID]** の対応するリンクをクリックして、ENI を選択します。

       1. 概要ページの右上にある **[アクション]** をクリックして、ドロップダウンメニューを展開します。

       1. ドロップダウンメニューで、**[セキュリティグループを選択してください]** を選択します。

       1. ドメインセキュリティグループを検索します。

          セキュリティグループ名は `security-group-for-inbound-nfs-{{domain-id}}` の形式をとります。ドメイン ID を取得する手順については、「[ドメインを表示する](domain-view.md)」を参照してください。

       1. **[セキュリティグループを追加]** をクリックします。

------

## を使用してドメインにカスタムファイルシステムを追加する AWS CLI
<a name="domain-custom-file-system-cli"></a>

を使用してドメインまたはユーザープロファイルにカスタムファイルシステムを追加するには AWS CLI、次のいずれかのコマンドを使用するときに`CustomFileSystemConfigs`定義を渡します。
+ [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-domain.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-domain.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-domain.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-domain.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-user-profile.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-user-profile.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-user-profile.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-user-profile.html)

次の例は、既存のドメインまたはユーザープロファイルにファイルシステムを追加する方法について説明しています。

**共有スペースでアクセスできるファイルシステムを追加するには**
+ ドメインのデフォルトのスペース設定を更新します。次の例では、ファイルシステム設定をデフォルトのスペース設定に追加します。

  ```
  aws sagemaker update-domain --domain-id {{domain-id}} \
  --default-space-settings file://file-system-settings.json
  ```

  この例では、ファイルシステム設定を JSON ファイルとして渡します。このファイルについては、後の例で説明します。

**プライベートスペースでアクセスできるファイルシステムを追加するには**
+ ドメインのデフォルトのユーザー設定を更新します。次の例では、ファイルシステム設定をデフォルトのユーザー設定に追加します。

  ```
  aws sagemaker update-domain --domain-id {{domain-id}} \
  --default-user-settings file://file-system-settings.json
  ```

  この例では、ファイルシステム設定を JSON ファイルとして渡します。このファイルについては、後の例で説明します。

**個別のユーザーのみがアクセスできるファイルシステムを追加するには**
+ 該当するユーザーのユーザープロファイルを更新します。次の例では、ファイルシステム設定をユーザープロファイルに追加します。

  ```
  aws sagemaker update-user-profile --domain-id {{domain-id}} \
  --user-profile-name {{user-profile-name}} \
  --user-settings file://file-system-settings.json
  ```

  この例では、ファイルシステム設定を JSON ファイルとして渡します。このファイルについては、次の例で説明します。

**Example ファイルシステム設定ファイル**  
上記の例のファイルである `file-system-settings.json` には、次の設定があります。  

```
{
    "CustomFileSystemConfigs":
    [
        {
            "FSxLustreFileSystemConfig":
            {
              "FileSystemId": "file-system-id",
              "FileSystemPath": "/"
            }
        }
    ]
}
```
この例の設定では、以下のキーを使用しています。    
`CustomFileSystemConfigs`  
カスタムファイルシステムの設定です (Amazon EFS ファイルシステムのみをサポートします)。  
`FSxLustreFileSystemConfig`  
Lustre ファイルシステム用 FSx ファイルシステムの設定 です。  
`FileSystemId`  
Amazon EFS ファイルシステムの ID です。  
`FileSystemPath`  
Studio のスペース内でドメインユーザーがアクセスできるファイルシステムディレクトリへのパスです。許可済みのユーザーは、このディレクトリとディレクトリ内にのみアクセスできます。デフォルトのパスは、ファイルシステムのルートである `/` です。

```
{
    "CustomFileSystemConfigs":
    [
        {
            "EFSFileSystemConfig":
            {
                "FileSystemId": "{{file-system-id}}",
                "FileSystemPath": "{{/}}"
            }
        }
    ]
}
```
この例の設定では、以下のキーを使用しています。    
`CustomFileSystemConfigs`  
カスタムファイルシステムの設定です (Amazon EFS ファイルシステムのみをサポートします)。  
`EFSFileSystemConfig`  
カスタム Amazon EFS ファイルシステムの設定です。  
`FileSystemId`  
Amazon EFS ファイルシステムの ID です。  
`FileSystemPath`  
Studio のスペース内でドメインユーザーがアクセスできるファイルシステムディレクトリへのパスです。許可済みのユーザーは、このディレクトリとディレクトリ内にのみアクセスできます。デフォルトのパスは、ファイルシステムのルートである `/` です。
ファイルシステムをドメインのデフォルトスペース設定に割り当てる場合は、設定に実行ロールも含める必要があります。  

```
{
    "ExecutionRole": "{{execution-role-arn}}"
}
```
この例の設定では、以下のキーを使用しています。    
`ExecutionRole`  
ドメインのユーザーのデフォルトの実行ロールです。
ファイルシステムに POSIX アクセス許可を適用する場合は、以下の設定を `create-domain` コマンドまたは `create-user-profile` コマンドに渡すこともできます。  

```
{
    "CustomPosixUserConfig":
    {
        "Uid": {{UID}},
        "Gid": {{GID}}
    }
}
```
この例の設定では、以下のキーを使用しています。    
`CustomPosixUserConfig`  
ファイルシステムのオペレーションに使用されるデフォルトの POSIX ID です。このような設定を使用して、カスタムファイルシステムにアクセスするユーザープロファイルに既存の POSIX アクセス許可構造を適用できます。POSIX アクセス許可レベルでは、ファイルシステムにアクセスできるユーザーや、ユーザーがアクセスできるファイルまたはデータを制御できます。  
`create-user-profile` コマンドを使用してユーザープロファイルを作成する際に、`CustomPosixUserConfig` 設定を適用することもできます。ユーザープロファイルに適用する設定は、関連付けられたドメインに適用される設定よりも優先されます。  
`create-domain` コマンドや `create-user-profile` コマンドを使用する際に、`CustomPosixUserConfig` 設定を適用できます。ただし、以下を実行する場合は、このような設定を適用できません。  
+ 既に任意のユーザープロファイルに関連付けられているドメインに対して `update-domain` コマンドを使用する場合。これらの設定は、ユーザープロファイルがないドメインにのみ適用できます。
+ `update-user-profile` コマンドを使用します。これらの設定を既に作成したプロファイルに適用するには、プロファイルを削除して、更新した設定を持つ新しいプロファイルを作成します。  
`Uid`  
POSIX ユーザー ID です。デフォルトは 200001 です。  
`Gid`  
POSIX グループ ID です。デフォルトは 1001 です。

## を使用してスペースにカスタムファイルシステムをアタッチする AWS CLI
<a name="space-custom-efs-cli"></a>

ドメインにカスタムファイルシステムを追加すると、ドメインユーザーは作成したスペースにファイルシステムをアタッチできます。例えば、Studio または AWS CLIの [create-space](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-space.html) コマンドを使用する際にファイルシステムをアタッチできます。

**カスタムファイルシステムをスペースにアタッチするには**
+ ファイルシステム設定をスペース設定に追加します。次のコマンド例では、ファイルシステムを新しいスペースにアタッチします。

  ```
  aws sagemaker create-space \
  --space-name {{space-name}} \
  --domain-id {{domain-id}} \
  --ownership-settings "OwnerUserProfileName={{user-profile-name}}" \
  --space-sharing-settings "SharingType=Private" \
  --space-settings file://space-settings.json
  ```

  この例のファイル `space-settings.json` には、`FileSystemId` キーを使用した `CustomFileSystems` 設定など、次のとおりの設定があります。

------
#### [ For your FSx for Lustre file systems ]

  ```
  {
      "AppType": "JupyterLab",
      "JupyterLabAppSettings":
      {
          "DefaultResourceSpec":
          {
            "InstanceType": "instance-type"
          }
      },
      "CustomFileSystems":
      [
          {
              "FSxLustreFileSystem":
              {
                "FileSystemId": "file-system-id"
              }
          }
      ]
  }
  ```

------
#### [ For your Amazon EFS file systems ]

  ```
  {
      "AppType": "JupyterLab",
      "JupyterLabAppSettings":
      {
          "DefaultResourceSpec":
          {
              "InstanceType": "{{instance-type}}"
          }
      },
      "CustomFileSystems":
      [
          {
              "EFSFileSystem":
              {
                  "FileSystemId": "{{file-system-id}}"
              }
          }
      ]
  }
  ```

------

  SageMaker AI は、`/home/sagemaker-user/custom-file-systems/{{file-system-type}}/{{file-system-id}}` というパスでシンボリックリンクを作成します。これにより、ドメインユーザーはホームディレクトリの `/home/sagemaker-user` 内からカスタムファイルシステムに移動できます。