

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 AMI 빌드
<a name="hyperpod-custom-ami-how-to"></a>

다음 페이지에서는 Amazon SageMaker HyperPod 기본 AMI를 사용하여 사용자 지정 Amazon Machine Image(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>

 AWS 콘솔을 통해 또는 `DescribeImages` API 호출을 사용하여 퍼블릭 SageMaker HyperPod AMIs를 선택할 수 있습니다. SageMaker HyperPod AMIs는 퍼블릭이며 모든에서 볼 수 있습니다 AWS 계정. Amazon이 소유한 퍼블릭 AMI를 검색하는 필터를 적용하여 Amazon EC2 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 인스턴스에서 AMI를 생성하는 방법:

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