

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

# SageMaker AI Spaces アドオンをインストールする
<a name="operator-install"></a>

## 依存関係
<a name="dependencies"></a>

**Amazon EKS Pod Identity Agent アドオン**
+ オペレーターが AWS 認証情報を取得するために必要です
+ **通常、ほとんどの EKS クラスターにプリインストールされています** 
+ インストール: EKS アドオン経由

**証明書マネージャー**
+ TLS 証明書管理に必要です
+ HyperPod クイッククラスター作成を使用する場合に**プリインストール済み** 
+ インストール: EKS アドオン経由

**EBS CSI ドライバー**
+ スペース永続ストレージ (EBS ボリューム) に必要です
+ SageMaker コンソールを使用してインストールするときに**自動的に**インストールされる
+ `AmazonEBSCSIDriverPolicy` \$1 HyperPod 固有のアクセス許可を持つ IAM ロールが必要です
+ インストール: EKS アドオン経由。ただし、 ガイドに従って HyperPod に必要な追加のアクセス許可をインストールしてください。
+ リファレンス: [ HyperPod での Amazon EBS CSI ドライバーの使用](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html)

## WebUI Access のその他の依存関係
<a name="-additional-dependencies"></a>

**AWS Load Balancerコントローラー**
+ HyperPod クイッククラスター作成を使用する場合に**プリインストール済み** 
+ インストール: Helm 経由
+ 手動インストールガイド: [AWS Load Balancerコントローラーのインストール](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

**外部 DNS**
+ WebUI アクセスにカスタムドメインを使用する場合に必要です
+ Route53 DNS レコードを自動的に管理します
+ Route53 アクセス許可を持つ IAM ロールが必要です
+ インストール: EKS アドオン経由

## インストール
<a name="installation"></a>

開始する前に、以下を確認してください。
+ Kubernetes バージョン 1.30 以降を実行しているワーカーノードが 1 つ以上あるアクティブな SageMaker HyperPod クラスター
+ 最小インスタンスタイプ (XX vCPU、YY GiB メモリ) のワーカーノードが 1 つ以上ある

### Amazon SageMaker Spaces アドオンのインストール
<a name="space-add-on"></a>

SageMaker Spaces アドオンは、デフォルト設定の場合はクイックインストール、詳細設定の場合はカスタムインストールのいずれかを使用してインストールできます。

#### クイックインストール
<a name="quick-install"></a>

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

1. クラスターリストからクラスターを選択します。

1. IDE およびノートブックタブで、Amazon SageMaker Spaces を見つけ、クイックインストールを選択します。

クイックインストールは自動的に行われます。
+ アドオンに必要な IAM ロールを作成します。
+ Systems Manager に必要な IAM ロールでリモートアクセスモードを有効にする
+ アドオンをインストールし、ポッド ID の関連付けを設定します。

#### カスタムインストール
<a name="custom-install"></a>

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

1. クラスターリストからクラスターを選択します。

1. IDE およびノートブックタブで、Amazon SageMaker Spaces を見つけ、カスタムインストールを選択します。

1. 次のオプションを設定します。

   **アドオンに必要な IAM ロール**
   + 推奨されるアクセス許可を持つ新しい IAM ロールを作成するか、必要なアクセス許可を持つ既存のロールを使用するかを選択します (上記の「管理者アクセス許可の設定」セクションを参照）。

   **リモートアクセス設定**
   + を有効にして、ユーザーが AWS Systems Manager を使用してローカル Visual Studio Code からスペースに接続できるようにします
   + SSM マネージドインスタンスロールの場合:
     + **新しいロールの作成** – アドオンは、必要な Systems Manager アクセス許可を持つロールを作成および管理します。
     + **既存のロールを使用する** – 必要な Systems Manager アクセス許可を持つ事前設定されたロールを選択します。
   + Spaces アドオン実行ロールに SSM マネージドインスタンスロールの PassRole アクセス許可があることを確認します。
**注記**  
リモートアクセスを有効にすると、 AWS Systems Manager のアドバンストインスタンス層が有効になり、インスタンスごとの追加料金が発生します。料金については、「Systems Manager の料金」を参照してください。

   **ウェブブラウザのアクセス設定**
   + Route 53 DNS 証明書と SSL 証明書を使用してウェブブラウザ経由でユーザーがスペースにアクセスできるようにするには、 を有効にします。
   + **前提条件:** ブラウザアクセスを有効にする前に AWS Load Balancer Controller をインストールする
   + **Route 53 ホストゾーン:** 所有するドメインまたはサブドメインの既存のホストゾーンを選択します。DNS 管理と SSL 証明書の検証を有効にするには、ドメインまたはサブドメインを登録し、ユーザーが管理する必要があります。

     ドメイン登録の詳細については、Route 53 デベロッパーガイド[の「新しいドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section)」を参照してください。
   + **サブドメイン:** サブドメインプレフィックスを入力します (英数字とハイフンのみ、最大 63 文字)
   + **SSL 証明書:** AWS Certificate Manager から既存の SSL 証明書を選択します。個々のスペースアクセス URLs をサポートするには、証明書が有効で、サブドメイン (subdomain.domain.com など) とワイルドカードサブドメイン (\$1.subdomain.domain.com など) の両方をカバーする必要があります。
   +  **トークン署名キー:** JWT トークン署名用の AWS KMS 非対称キーを選択します。キーは、安全な WebUI アクセスのために認証トークンを暗号化するために使用されます。KMS で新しい非対称キーを作成するか、アカウントがアクセスできる既存のキーを選択できます。
**注記**  
ホストゾーンと DNS クエリには、標準の Route 53 料金が適用されます。料金については、Route 53の料金」を参照してください。

#### EKS アドオンのインストール - WebUI を使用した Jupyter K8s
<a name="webui-install"></a>

##### 設定ファイル
<a name="configure-file"></a>

を作成する`addon-config.yaml`:

```
jupyter-k8s:
  workspacePodWatching:
    enable: true

jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    kmsEncryptionContext:
      enabled: true
    traefik:
      shouldInstall: true
    auth:
      kmsKeyId: "<KMS_KEY_ARN>"
```

**次のプレースホルダーを置き換えます。**
+ <DOMAIN\$1NAME>: ドメイン名 (例: `jupyter.example.com`)
+ <ACM\$1CERTIFICATE\$1ARN>: ACM 証明書 ARN (例: `arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012`、
+ <KMS\$1KEY\$1ARN>: KMS キー ARN (例: `arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012`

##### によるインストール AWS CLI
<a name="install-via-cli"></a>

```
aws eks create-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

**既存のアドオンを更新するには:**

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

##### によるインストール AWS マネジメントコンソール
<a name="install-via-console"></a>

1. **EKS コンソール**に移動する → クラスターを選択する

1. **アドオン**タブをクリック → **新しい** を追加

1. **SageMaker Spaces **アドオンを選択する

1. 上記の YAML 設定を**オプションの構成設定**に貼り付ける

1. **次**へをクリックし、アドオン設定を確認します。

1. [**作成**] をクリックします。

##### インストールの検証
<a name="install-verify"></a>

```
# Check addon status
aws eks describe-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --region <AWS_REGION>
```

##### ALB 属性のカスタマイズ
<a name="customize-alb"></a>

デフォルトでは、アドオンはウェブ UI で使用するパブリックロードバランサーを作成します。EKS アドオンプロパティを使用してロードバランサー属性をカスタマイズできます。

内部 ALB を作成するには、スキームを に設定します`internal`。

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"  # Default is "internet-facing"
```

`alb.annotations` フィールドを使用して ALB 設定をカスタマイズすることもできます。

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"
      annotations:
        alb.ingress.kubernetes.io/security-groups: "<SECURITY_GROUP_ID>"
        alb.ingress.kubernetes.io/subnets: "<SUBNET_ID_1>,<SUBNET_ID_2>"
        alb.ingress.kubernetes.io/load-balancer-attributes: "idle_timeout.timeout_seconds=60"
```

**一般的な ALB 注釈:**
+ `alb.ingress.kubernetes.io/security-groups`: ALB のセキュリティグループを指定する
+ `alb.ingress.kubernetes.io/subnets`: ALB のサブネットを指定する
+ `alb.ingress.kubernetes.io/load-balancer-attributes`: ALB 属性を設定する (アイドルタイムアウト、アクセスログなど)

使用可能なすべての注釈については、[AWS 「 Load Balancer Controller のドキュメント](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/)」を参照してください。

### アドオンのアップグレード/バージョニング
<a name="upgrade-add-on"></a>

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```