

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

# SageMaker HyperPod EKS クラスターで Amazon EBS CSI ドライバーを使用する
<a name="sagemaker-hyperpod-eks-ebs"></a>

SageMaker HyperPod は、Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) ドライバーをサポートしています。このドライバーは、作成した Kubernetes ボリュームのストレージとして Amazon EBS ボリュームのライフサイクルを管理します。Amazon EBS CSI ドライバーを使用すると、Amazon EKS オーケストレーションを使用して SageMaker HyperPod クラスターで実行される機械学習ワークロード用の Amazon EBS ボリュームを作成、アタッチ、管理できます。

**Topics**
+ [キーストレージ機能](#sagemaker-hyperpod-eks-ebs-features)
+ [ユースケース](#sagemaker-hyperpod-eks-ebs-use)
+ [SageMaker HyperPod EKS クラスターで Amazon EBS CSI ドライバーを設定する](#sagemaker-hyperpod-eks-ebs-setup)
+ [API の使用](#sagemaker-hyperpod-eks-ebs-setup-apis)

## キーストレージ機能
<a name="sagemaker-hyperpod-eks-ebs-features"></a>

SageMaker HyperPod の Amazon EBS CSI ドライバーは、次のストレージ機能をサポートしています。
+ 静的プロビジョニング: ポッドで使用できるように、事前に作成された Amazon EBS ボリュームを Kubernetes の[永続ボリューム](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)に関連付けます。
+ 動的プロビジョニング: [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) から Amazon EBS ボリュームと関連する永続ボリュームを自動的に作成します。パラメータは、ボリューム作成をきめ細かく制御するために [https://kubernetes.io/docs/concepts/storage/storage-classes/](https://kubernetes.io/docs/concepts/storage/storage-classes/) を介して渡すことができます。
+ ボリュームのサイズ変更: 実行中のワークロードを中断することなく [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) のサイズ仕様を更新することで、既存のボリュームを拡張します。これは、増大するモデルリポジトリを処理したり、サービスを中断することなくより大規模なノードに適応したりするために不可欠です。
+ ボリュームスナップショット: バックアップ、リカバリ、データバージョニング用のボリュームのポイントインタイムスナップショットを作成します。
+ ブロックボリューム: ストレージへの直接アクセスを必要とする高パフォーマンスアプリケーションに、raw ブロックデバイスアクセスを提供します。
+ ボリュームの変更: [ボリューム属性クラス](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/)を使用して、タイプ、1 秒あたりの入出力操作数 (IOPS)、スループットなどのボリュームプロパティを変更します。

Amazon EBS CSI ドライバーの詳細については、「*Amazon EKS ユーザーガイド*」の「[Amazon EBS で Kubernetes ボリュームストレージを使用する](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html)」を参照してください。

クラスター内のポッドへのストレージの詳細については、「*Kubernetes ドキュメント*」の「[ストレージ](https://kubernetes.io/docs/concepts/storage/)」を参照してください。

## ユースケース
<a name="sagemaker-hyperpod-eks-ebs-use"></a>

Amazon EBS CSI ドライバー統合により、SageMaker HyperPod EKS クラスターでのトレーニングワークロードと推論ワークロードの両方で、いくつかの主要なユースケースが可能になります。

**トレーニングワークロード**
+ データセットストレージ: ポッドの再起動後も保持されるトレーニングデータセットのボリュームをプロビジョンする。
+ チェックポイントストレージ: モデルのチェックポイントと中間トレーニング結果を保存する。
+ 共有アーティファクト: 複数のトレーニングジョブで共通のデータセットとモデルアーティファクトにアクセスする。

**推論ワークロード**
+ モデルストレージ: モデルの要件に基づいて適切なサイズのボリュームを動的にプロビジョンする。
+ コンテナキャッシュ: 推論パフォーマンスを向上させるエフェメラルストレージを作成する。
+ イベントログ: 推論結果とログを永続的ストレージに保存する。

## SageMaker HyperPod EKS クラスターで Amazon EBS CSI ドライバーを設定する
<a name="sagemaker-hyperpod-eks-ebs-setup"></a>

Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) ドライバーを使用すると、EKS オーケストレーションを備えた SageMaker HyperPod クラスターで実行されているコンテナ化されたワークロードの Amazon EBS ボリュームを動的にプロビジョンして管理できます。このセクションでは、Amazon EBS CSI ドライバーをインストールして設定し、機械学習ワークロードの永続的ストレージを有効にする方法について説明します。

### 前提条件
<a name="sagemaker-hyperpod-eks-ebs-setup-prerequisite"></a>

開始する前に、以下を実行します。
+ [のインストールと設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [Amazon EKS オーケストレーションを使用した SageMaker HyperPod クラスターを作成する](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)
+ バージョン [v1.47.0](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md#v1470) の Amazon EBS CSI ドライバーをインストールする

### 追加のアクセス許可
<a name="sagemaker-hyperpod-eks-ebs-setup-permissions"></a>

Amazon EBS CSI ドライバーアドオンを設定するには、「*Amazon EKS ユーザーガイド*」の「[Amazon EBS で Kubernetes ボリュームストレージを使用する](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html)」の手順に従ってください。ドライバーアドオンの実行に使用される IAM ロールに次のアクセス許可を追加する必要もあります。これは、HyperPod クラスター実行ロールではなく、ドライバーアドオンのサービスアカウント設定で指定された IAM ロールであることに注意が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume",
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        }
    ]
}
```

------

## API の使用
<a name="sagemaker-hyperpod-eks-ebs-setup-apis"></a>

別の方法として、[AttachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AttachClusterNodeVolume.html) API オペレーションと [DetachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DetachClusterNodeVolume.html) API オペレーションを使用して、Amazon EBS ボリュームを SageMaker HyperPod EKS クラスターインスタンスにアタッチしてデタッチできます。

**これらの API を使用するための主な要件は、次のとおりです。**
+ Amazon EBS ボリュームと SageMaker HyperPod EKS クラスターの両方が同じ AWS アカウントによって所有されている必要があります。
+ 呼び出し元プリンシパルには、アタッチまたはデタッチのオペレーションを正常に実行するための特定の最小アクセス許可が必要です。最小権限のアクセス許可の詳細については、以降のトピックを参照してください。
+ HyperPod ノードにボリュームをアタッチしたら、「[SageMaker HyperPod クラスターノードへのアクセス](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-access-through-terminal.html)」の手順に従ってクラスターノードにアクセスし、アタッチされたボリュームをマウントするために[ボリュームを使用できるようにします](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html)。

### `sagemaker:AttachClusterNodeVolume`に必要なアクセス許可
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-attach"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:AttachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### `sagemaker:DetachClusterNodeVolume`に必要なアクセス許可
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-detach"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:DetachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### AWS KMS キーに必要なアクセス許可
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-kms"></a>

カスタマーマネージド KMS キーを使用して HyperPod クラスターノードにアタッチされた Amazon EBS ボリュームを暗号化している場合にのみ、次の AWS KMS アクセス許可を追加します。 AWSマネージド KMS キー (デフォルトの暗号化オプション) を使用している場合、これらのアクセス許可は必要ありません。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement":
    [
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition":
            {
                "StringEquals":
                {
                    "kms:CallerAccount": "111122223333",
                    "kms:ViaService": "ec2.us-east-1.amazonaws.com"
                },
                "ForAnyValue:StringEquals":
                {
                    "kms:EncryptionContextKeys": "aws:ebs:id"
                },
                "Bool":
                {
                    "kms:GrantIsForAWSResource": true
                },
                "ForAllValues:StringEquals":
                {
                    "kms:GrantOperations":
                    [
                        "Decrypt"
                    ]
                }
            }
        }
    ]
}
```

------

**注記**  
これらの AWS KMS アクセス許可は、カスタマーマネージド KMS キーで暗号化された Cluster Auto Volume Attachment (CAVA) ボリュームをデタッチ`sagemaker:DetachClusterNodeVolume`する場合には必要ありません。