서론: 왜 Inference Operator 설치가 이렇게 쉬워졌을까?
과거 SageMaker HyperPod에서 추론(Inference) 워크로드를 배포하려면 AI 팀이 Helm 차트, IAM 역할 설정, 의존성 관리, 수동 업그레이드 등 복잡한 과정을 거쳐야 했습니다. 보통 첫 모델이 예측을 제공하기까지 몇 시간이 걸리곤 했죠. 😅
이제 Amazon SageMaker HyperPod Inference Operator가 EKS Add-on으로 제공되면서 상황이 완전히 달라졌습니다. SageMaker 콘솔에서 원클릭 설치와 관리형 업그레이드가 가능해져서, Helm 차트나 복잡한 IAM 설정 없이도 곧바로 모델을 배포할 수 있습니다.
이 글에서는 새로운 설치 경험을 3가지 방법(콘솔, CLI, Terraform) 으로 살펴보고, 멀티 인스턴스 타입 배포와 Node Affinity 같은 고급 기능을 실무에 어떻게 활용할 수 있는지도 함께 알아보겠습니다.
이 글은 AWS Architecture Blog의 내용을 기반으로 한국 개발자 생태계에 맞게 재구성했습니다.

본론 1: 3가지 설치 방법과 실제 코드 예제
방법 1: SageMaker UI를 통한 설치 (추천)
SageMaker 콘솔은 가장 간편한 방법을 제공합니다. Quick Install과 Custom Install 두 가지 옵션이 있습니다.
설치 순서:
- SageMaker Console → HyperPod Clusters → Cluster Management로 이동
- 원하는 클러스터 선택 → Inference 탭으로 이동
- Quick Install (자동 설정) 또는 Custom Install (기존 리소스 재사용) 선택
- Install 버튼 클릭
- 설치 확인:
kubectl get pods -n hyperpod-inference-system
방법 2: EKS CLI를 통한 설치
CLI를 선호하는 팀은 아래 명령어로 직접 설치할 수 있습니다. 단, 사전 준비 리소스(IAM 역할, S3 버킷, VPC 엔드포인트)는 수동으로 생성해야 합니다.
# EKS Add-on 생성 (사전 준비 리소스는 별도로 생성 필요)
aws eks create-addon \
--cluster-name my-hyperpod-cluster \
--addon-name amazon-sagemaker-hyperpod-inference \
--addon-version v1.0.0-eksbuild.1 \
--configuration-values '{
"executionRoleArn": "arn:aws:iam::ACCOUNT-ID:role/SageMakerHyperPodInference-inference-role",
"tlsCertificateS3Bucket": "hyperpod-tls-certificate-bucket",
"hyperpodClusterArn": "arn:aws:sagemaker:REGION:ACCOUNT-ID:cluster/CLUSTER-ID",
"alb": {
"serviceAccount": {
"create": true,
"roleArn": "arn:aws:iam::ACCOUNT-ID:role/alb-controller-role"
}
},
"keda": {
"auth": {
"aws": {
"irsa": {
"roleArn": "arn:aws:iam::ACCOUNT-ID:role/keda-operator-role"
}
}
}
}
}' \
--region us-west-2
방법 3: Terraform을 통한 설치
IaC(Infrastructure as Code)를 사용하는 조직은 awesome-distributed-training GitHub 레포지토리의 Terraform 모듈을 활용할 수 있습니다.
# custom.tfvars 예제
kubernetes_version = "1.33"
eks_cluster_name = "tf-eks-cluster"
hyperpod_cluster_name = "tf-hp-cluster"
resource_name_prefix = "tf-eks-test"
aws_region = "us-east-1"
instance_groups = [
{
name = "accelerated-instance-group-1"
instance_type = "ml.g5.8xlarge"
instance_count = 2
availability_zone_id = "use1-az2"
ebs_volume_size_in_gb = 100
threads_per_core = 1
enable_stress_check = false
enable_connectivity_check = false
lifecycle_script = "on_create.sh"
}
]
# HyperPod Inference Operator 활성화
create_hyperpod_inference_operator_module = true
첫 모델 배포하기
Add-on이 설치되면 아래와 같이 JumpStartModel CRD를 사용해 모델을 배포할 수 있습니다. (예: DeepSeek 모델)
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
name: deepseek-test-endpoint
spec:
model:
modelId: "deepseek-llm-r1-distill-qwen-1-5b"
sageMakerEndpoint:
name: deepseek-test-endpoint
server:
instanceType: "ml.g5.8xlarge"
# 배포 실행
kubectl apply -f jumpstart-model.yaml
# 배포 상태 확인
kubectl get jumpstartmodel

본론 2: 고급 기능 – 멀티 인스턴스 타입 배포 & Node Affinity
멀티 인스턴스 타입 배포 (Multi-Instance Type Deployment)
리소스 가용성을 높이기 위해 우선순위 목록을 지정할 수 있습니다. 시스템은 가장 우선순위가 높은 인스턴스 타입부터 시도하고, 용량이 부족하면 자동으로 다음 타입으로 폴백(Fallback)합니다.
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
name: lmcache-test-1
namespace: default
spec:
replicas: 13
modelName: Llama-3.1-8B-Instruct
# 우선순위 순서: p4d -> g5.24xlarge -> g5.8xlarge
instanceTypes: ["ml.p4d.24xlarge", "ml.g5.24xlarge", "ml.g5.8xlarge"]
이 기능은 Kubernetes Node Affinity의 requiredDuringSchedulingIgnoredDuringExecution과 preferredDuringSchedulingIgnoredDuringExecution을 활용해 구현됩니다.
Node Affinity로 세밀한 스케줄링 제어
Spot 인스턴스를 배제하거나, 특정 가용 영역(AZ)을 선호하거나, 커스텀 레이블이 있는 노드에만 배포하고 싶다면 nodeAffinity를 직접 지정할 수 있습니다.
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
name: lmcache-test-1
namespace: default
spec:
replicas: 15
modelName: Llama-3.1-8B-Instruct
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: node.kubernetes.io/instanceType
operator: In
values: ["ml.g5.4xlarge"]
worker:
resources:
limits:
nvidia.com/gpu: "1"
requests:
cpu: "6"
memory: 30Gi
nvidia.com/gpu: "1"
국내 SI/클라우드 환경에서의 적용 맥락
한국 기업들은 보통 프라이빗 EKS 클러스터에 HyperPod를 구축하는 경우가 많습니다. 이때 VPC 엔드포인트 설정이 특히 중요합니다. AWS Console의 Quick Install을 사용하면 자동으로 VPC 엔드포인트가 구성되지만, CLI나 Terraform으로 설치할 때는 S3 VPC Endpoint, EKS API Endpoint 등을 사전에 생성해야 합니다.
또한 국내 금융권/공공기관에서는 KMS 암호화와 CloudTrail 로깅이 필수인데, Inference Operator는 기본적으로 S3 TLS 인증서 저장소에 대해 SSE-S3 암호화를 사용하므로, KMS 키를 별도로 지정하려면 Custom Install에서 설정해야 합니다.

결론: 실무 적용 조언 및 다음 단계
SageMaker HyperPod Inference Operator의 EKS Add-on 통합은 인프라 복잡성을 획기적으로 줄여주고, ML 팀이 모델 최적화와 서빙에 집중할 수 있게 해줍니다.
주요 이점 요약
| 이점 | 설명 |
|---|---|
| 빠른 시간-가치 | 클러스터 생성 후 몇 분 안에 첫 추론 엔드포인트 배포 가능 |
| 복잡성 감소 | IAM 역할, S3 버킷, VPC 엔드포인트 등 모든 리소스를 한 번에 자동 생성 |
| 일관된 설정 | AWS 모범 사례를 따른 보안 구성 자동 적용 |
| 간편한 업그레이드 | EKS Add-on 메커니즘으로 원클릭 업그레이드 및 롤백 지원 |
주의사항
- 기존 Helm 설치 사용자: AWS에서 제공하는
helm_to_addon.sh마이그레이션 스크립트를 사용하면 무중단 마이그레이션이 가능합니다. 단, 롤백을 대비해 백업 파일이/tmp/hyperpod-migration-backup-/에 저장되니 꼭 확인하세요. - 비용: 멀티 인스턴스 타입 배포를 사용할 경우, 폴백 인스턴스가 더 비쌀 수 있으므로 비용 모니터링을 함께 설정하는 것이 좋습니다.
- Tiered KV Cache: 설치 시 활성화하면 장문 컨텍스트 추론에서 최대 40%의 레이턴시 감소 효과를 볼 수 있지만, 메모리 사용량이 증가할 수 있으니 워크로드 특성에 맞게 선택하세요.
다음 단계 학습 방향
- 터미널 코딩의 판을 바꾸다 Gemini 3 Flash, 이제 CLI에서 사용 가능 – 최신 AI 모델을 CLI로 빠르게 테스트하는 방법
- 단일 장애점에서 탈출하기: 아마존 키 팀이 밝히는 이벤트 기반 아키텍처(EDA) 실전 노하우 – EDA와 결합한 확장 가능한 ML 시스템 설계
- 공식 문서: SageMaker HyperPod Inference Operator 설치 가이드 및 트러블슈팅 가이드
지금 바로 SageMaker 콘솔에서 새 HyperPod 클러스터를 만들 때 Inference Operator를 활성화하거나, 기존 클러스터에 원클릭으로 추가해보세요. 🚀