

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

# カスタム AMI を構築する
<a name="hyperpod-custom-ami-how-to"></a>

次のページでは、Amazon SageMaker HyperPod ベースの AMI を使用してカスタム Amazon マシンイメージ (AMI) を構築する方法について説明します。まずベース AMI を選択し、次に AWS CLIなどの新しいイメージを作成するための一般的な方法を使用して、独自のカスタマイズされた AMI を作成します。

## SageMaker HyperPod のベース AMI を選択する
<a name="hyperpod-custom-ami-select-base"></a>

SageMaker HyperPod のベース AMI は、次のいずれかの方法を使用して選択できます。

### AWS コンソールの選択
<a name="hyperpod-custom-ami-console-selection"></a>

パブリック SageMaker HyperPod AMIs は、 AWS コンソールまたは `DescribeImages` API コールを使用して選択できます。SageMaker HyperPod AMIs はパブリックであり、すべての に表示されます AWS アカウント。Amazon EC2 AMI カタログでそれらを探すには、フィルターを適用して Amazon が所有するパブリック AMI を検索します。

コンソールで SageMaker HyperPod の AMIを検索するには:

1. Amazon EC2 コンソールにサインインします。

1. 左のナビゲーションペインで [**AMI**] を選択してください。

1. **[イメージタイプ]** ドロップダウンでは、**[パブリックイメージ]** を選択します。

1. 検索バーフィルターで、**[所有者のエイリアス]** フィルターを **amazon** に設定します。

1. 「**HyperPod EKS**」というプレフィックスが付いた AMI を検索し、ユースケースに適した AMI (できれば最新) を選択します。例えば、Kubernetes 1.31 や Kubernetes 1.30 の AMI を選択できます。

### を使用して最新のパブリック AMI ID を取得する AWS CLI
<a name="hyperpod-custom-ami-cli-fetch"></a>

常に最新リリースのパブリック AMI を使用したい場合は、SageMaker HyperPod がリリースした最新の AMI ID の値を含むパブリック SageMaker HyperPod SSM パラメータを使用する方が効率的です。

次の例は、 AWS CLIを使用して最新の AMI ID を取得する方法を説明しています。

```
aws ssm get-parameter \
  --name "/aws/service/sagemaker-hyperpod/ami/x86_64/eks-1.31-amazon-linux-2/latest/ami-id" \
  --region us-east-1 \
  --query "Parameter.Value" \
  --output text
```

**注記**  
必要に応じて、パラメータ名を対応する Kubernetes バージョンに置き換えます。例えば、Kubernetes 1.30 を使用する場合は、`/aws/service/hyperpod/ami/x86_64/eks-1.30-amazon-linux-2/latest/ami-id` パラメータを使用します。

## カスタム AMI を構築する
<a name="hyperpod-custom-ami-build"></a>

SageMaker HyperPod パブリック AMI を選択したら、それをベース AMI として使用して、次のいずれかの方法で独自のカスタム AMI を構築します。これは AMI を構築するための包括的なリストではないことに注意が必要です。AMI の構築には、任意の方法を使用できます。SageMaker HyperPod には特定のレコメンデーションはありません。
+ **AWS マネジメントコンソール**: SageMaker HyperPod AMI を使用して Amazon EC2 インスタンスを起動し、必要なカスタマイズを行い、そのインスタンスから AMI を作成できます。
+ **AWS CLI**: `aws ec2 create-image` コマンドを使用して、カスタマイズの実行後に既存の Amazon EC2 インスタンスから AMI を作成することもできます。
+ **HashiCorp Packer**: Packer は、単一のソース設定から複数のプラットフォームに対して同一のマシンイメージを作成できる HashiCorp のオープンソースツールです。の AMIs の作成と AWS、他のクラウドプロバイダーや仮想化プラットフォームのイメージの作成をサポートしています。
+ **Image Builder**: EC2 Image Builder は、Linux または Windows Server イメージの作成、メンテナンス、検証、共有、デプロイを簡単に自動化できるフルマネージド AWS サービスです。詳細については、「[ EC2 Image Builder ユーザーガイド](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)」を参照してください。

### カスタマーマネージド AWS KMS 暗号化を使用してカスタム AMI を構築する
<a name="hyperpod-custom-ami-build-kms"></a>

以下のセクションでは、カスタマーマネージド AWS KMS キーを使用してカスタム AMI を構築し、HyperPod クラスターボリュームを暗号化する方法について説明します。HyperPod のカスタマーマネージドキーと、必要な IAM および KMS キーポリシーのアクセス許可の付与の詳細については、「[SageMaker HyperPod のカスタマーマネージド AWS KMS key 暗号化](smcluster-cmk.md)」を参照してください。カスタマーマネージドキーで暗号化されたカスタム AMI を使用する場合は、HyperPod クラスターの Amazon EBS ルートボリュームも同じキーで暗号化する必要があります。

#### AWS CLI 例: EC2 Image Builder と HyperPod ベースイメージを使用して新しい AMI を作成する
<a name="hyperpod-custom-ami-cli-example"></a>

次の例は、Image Builder と AWS KMS 暗号化を使用して AMI を作成する方法を説明しています。

```
aws imagebuilder create-image-recipe \
    name "hyperpod-custom-recipe" \
    version "1.0.0" \
    parent-image "<hyperpod-base-image-id>" \
    block-device-mappings DeviceName="/dev/xvda",Ebs={VolumeSize=100,VolumeType=gp3,Encrypted=true,KmsKeyId=arn:aws:kms:us-east-1:111122223333:key/key-id,DeleteOnTermination=true}
```

#### Amazon EC2 コンソール: Amazon EC2 から新しい AMI を作成する
<a name="hyperpod-custom-ami-console-example"></a>

Amazon EC2 コンソールを使用して Amazon EC2 インスタンスを作成するには

1. カスタマイズした Amazon EC2 インスタンスを右クリックし、**[イメージを作成]** をクリックします。

1. **[暗号化]** セクションで、**[スナップショットを暗号化]** をクリックします。

1. ドロップダウンメニューから、使用する KMS キーを選択します。例: `arn:aws:kms:us-east-2:111122223333:key/<your-kms-key-id>` または キーエイリアス `alias/<your-hyperpod-key>` を使用します。

#### AWS CLI 例: Amazon EC2 インスタンスから新しい AMI を作成する
<a name="hyperpod-custom-ami-cli-create-image"></a>

次のとおり、 AWS KMS 暗号化で `aws ec2 create-image` コマンドを使用します。

```
aws ec2 create-image \
    instance-id "<instance-id>" \
    name "MyCustomHyperPodAMI" \
    description "Custom HyperPod AMI" \
    block-device-mappings '[
        {
            "DeviceName": "/dev/xvda",
            "Ebs": {
                "Encrypted": true,
                "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id",
                "VolumeType": "gp2" 
            }
        }
    ]'
```