构建自定义 AMI - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

构建自定义 AMI

以下页面说明了如何使用亚马逊 SageMaker HyperPod基础版构建自定义亚马逊系统映像 (AMI) AMIs。首先选择一个基础 AMI,然后通过任何常用的新映像创建方法(例如 AWS CLI)来创建自己的自定义 AMI。

选择 SageMaker HyperPod 基本 AMI

您可以通过以下方法之一选择 SageMaker HyperPod 基本 AMI。

AWS控制台选择

您可以 SageMaker HyperPod AMIs 通过AWS控制台或使用 DescribeImages API 调用选择公开。 SageMaker HyperPod AMIs 是公开的,并且在每个地方都可见AWS 账户。您可以通过应用筛选条件来搜索亚马逊的公 AMIs 有商品,从而在 Amazon EC2 AMI 目录中找到它们。

要在控制台 SageMaker HyperPod AMIs 中查找,请执行以下操作:

  1. 登录 Amazon EC2 控制台。

  2. 在左侧导航窗格中,选择 AMIs

  3. 映像类型下拉列表中,选择公有映像

  4. 在搜索栏筛选条件中,将所有者别名筛选条件设置为 amazon

  5. 搜索 AMIs 前缀为 HyperPodEKS,然后选择适合您的用例的 AMI(最好是最新的)。例如,您可以在 Kubernetes 1.31 和 Kubernetes 1.30 之间选择一个 AMI。

通过获取最新的公有 AMI ID AWS CLI

如果您想始终使用最新版本的公有 AMI,则使用包含发布的最新 AMI ID 值的公共 SageMaker HyperPod SSM 参数会更有效率。 SageMaker HyperPod

以下示例说明如何使用 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

选择公有 AMI 后,使用该 SageMaker HyperPod 公有 AMI 作为基础 AMI,使用以下方法之一构建自己的自定义 AMI。请注意,这并不是一份详尽的建筑清单 AMIs。您可以使用任何您选择的方法进行构建 AMIs。 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 B uilder: EC2 Image Builder 是一项完全托管的AWS服务,它可以更轻松地自动创建、维护、验证、共享和部署 Linux 或 Windows 服务器映像。有关更多信息,请参阅 EC2 Image Builder User Guide

使用客户托管AWS KMS加密构建自定义 AMI

以下各节介绍如何使用客户托管AWS KMS密钥构建自定义 AMI 来加密您的 HyperPod 集群卷。有关客户托管密钥 HyperPod以及授予所需的 IAM 和 KMS 密钥策略权限的更多信息,请参阅客户托管的AWS KMS key加密 SageMaker HyperPod。如果您计划使用使用客户托管密钥加密的自定义 AMI,请确保同时使用相同的密钥加密 HyperPod 集群的 Amazon EBS 根卷。

AWS CLI示例:使用 I EC2 mage Builder 和 HyperPod 基础映像创建新 AMI

以下示例演示如何使用 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}

亚马逊 EC2 控制台:从亚马逊创建新 AMI EC2

要使用亚马逊 EC2 控制台从亚马逊 EC2 实例创建 AMI,请执行以下操作:

  1. 右键单击您的自定义 Amazon EC2 实例,然后选择 “创建映像”。

  2. 加密部分中,选择加密快照

  3. 从下拉菜单中选择您的 KMS 密钥。例如:arn:aws:kms:us-east-2:111122223333:key/<your-kms-key-id> 或使用密钥别名:alias/<your-hyperpod-key>

AWS CLI示例:从亚马逊 EC2 实例创建新 AMI

使用 aws ec2 create-image 命令与 AWS KMS 加密:

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" } } ]'