본문으로 건너뛰기

소개

AI on EKS 기반 인프라는 infra/base 디렉토리에 있습니다. 이 디렉토리에는 실험, AI/ML 학습, LLM 추론, 모델 추적 등을 지원하는 환경을 구성할 수 있는 기본 인프라와 모든 모듈이 포함되어 있습니다.

디렉토리에는 원하는 모듈을 활성화하거나 비활성화하는 데 사용되는 모든 매개변수가 포함된 variables.tf가 있습니다 (기본값은 false로 설정). 이를 통해 Karpenter와 GPU 및 AWS Neuron NodePool을 갖춘 기본 환경을 배포하여 가속기 사용 및 추가 커스터마이징이 가능합니다.

참조 구현인 jark-stack은 실험을 위한 JupyterHub, Ray Clusters를 사용한 학습 및 추론을 위한 KubeRay 오퍼레이터, 워크플로우 자동화를 위한 Argo Workflows, 스토리지 컨트롤러 및 볼륨을 활성화하여 빠른 AI/ML 개발을 지원하는 환경을 배포합니다.

다른 블루프린트는 동일한 기반 인프라를 사용하며 블루프린트의 필요에 따라 다른 컴포넌트를 선택적으로 활성화합니다.

개요

AI on EKS는 Amazon EKS에서 AI/ML 워크로드를 배포하기 위한 포괄적인 인프라 솔루션을 제공합니다. 학습, 추론 또는 범용 AI/ML 워크로드에 최적화된 사전 구성 솔루션 중 선택하세요.

학습 인프라

AI/ML 모델 학습 워크로드에 최적화된 인프라 솔루션:

  • JARK Stack on EKS - JupyterHub, Ray, Kubeflow를 포함한 NVIDIA GPU 기반 AI 워크로드를 위한 완전한 스택
  • JupyterHub on EKS - 데이터 사이언스 및 ML을 위한 대화형 개발 환경

추론 인프라

AI/ML 모델 추론 워크로드에 최적화된 인프라 솔루션:

기타

추가 인프라 솔루션 및 유틸리티:

시작하기

  1. 사용 사례 선택: 워크로드 요구 사항에 따라 학습 또는 추론 선택
  2. 인프라 배포: 선택한 솔루션의 배포 가이드를 따라 진행
  3. 워크로드 배포: 블루프린트를 사용하여 AI/ML 워크로드 배포
  4. 최적화: 가이던스 모범 사례 적용

아키텍처 패턴

모든 인프라 솔루션은 다음 핵심 원칙을 따릅니다:

  • 모듈식 설계: 재사용 가능한 모듈로 솔루션 구성
  • 모범 사례: 보안, 관측성, 확장성이 내장
  • 클라우드 네이티브: Kubernetes와 AWS 서비스 활용
  • 검증됨: 엔터프라이즈 워크로드에 대해 테스트 및 검증 완료

리소스

각 스택은 base 스택의 컴포넌트를 상속합니다. 이러한 컴포넌트에는 다음이 포함됩니다:

  • 2개 가용 영역에 서브넷이 있는 VPC
  • 최소 인프라를 실행하기 위한 2개 노드를 가진 1개 코어 노드그룹이 있는 EKS 클러스터
  • CPU, GPU, AWS Neuron NodePool을 갖춘 Karpenter 오토스케일링
  • GPU/Neuron 디바이스 드라이버
  • GPU/Neuron 모니터링 에이전트

변수

배포

변수 이름설명기본값
nameKubernetes 클러스터 이름ai-stack
region클러스터 리전us-east-1
eks_cluster_version사용할 EKS 버전1.32
vpc_cidrVPC에 사용되는 CIDR10.1.0.0/21
secondary_cidr_blocksVPC 보조 CIDR100.64.0.0/16
enable_database_subnets데이터베이스 서브넷 활성화 여부false
enable_aws_cloudwatch_metricsAWS CloudWatch Metrics 애드온 활성화false
bottlerocket_data_disk_snapshot_id배포된 노드에 스냅샷 ID 연결""
enable_aws_efs_csi_driverAWS EFS CSI 드라이버 활성화false
enable_aws_efa_k8s_device_pluginAWS EFA 디바이스 플러그인 활성화false
enable_aws_fsx_csi_driverFSx 디바이스 플러그인 활성화false
deploy_fsx_volume간단한 FSx 볼륨 배포false
fsx_pvc_namespaceFSx PVC를 프로비저닝할 네임스페이스default
enable_amazon_prometheusAmazon Managed Prometheus 활성화false
enable_amazon_emrAmazon EMR 설정false
enable_kube_prometheus_stackKube Prometheus 애드온 활성화false
enable_kubecostKubecost 활성화false
enable_ai_ml_observability_stackAI/ML 관측성 애드온 활성화false
enable_argo_workflowsArgo Workflow 활성화false
enable_argo_eventsArgo Events 활성화false
enable_argocdArgoCD 애드온 활성화false
enable_mlflow_trackingMLFlow Tracking 활성화false
enable_jupyterhubJupyterHub 활성화false
enable_volcanoVolcano 활성화false
enable_kuberay_operatorKubeRay 활성화false
huggingface_token환경에서 사용할 Hugging Face 토큰DUMMY_TOKEN_REPLACE_ME
enable_rayserve_ha_elastic_cache_redisElastiCache를 사용한 Rayserve 고가용성 활성화false
enable_torchx_etcdtorchx용 etcd 활성화false
enable_mpi_operatorMPI Operator 활성화false
enable_aibrix_stackAIBrix 스택 활성화false
aibrix_stack_versionAIBrix 스택 버전v0.2.1
enable_aws_load_balancer_controllerAWS Load Balancer Controller 활성화true
enable_service_mutator_webhookAWS Load Balancer Controller용 service-mutator 웹훅 활성화false
enable_ingress_nginxingress-nginx 애드온 활성화true
enable_cert_managerCert Manager 활성화false
enable_slurm_operatorSlinky Slurm Operator 활성화 (Cert Manager 포함)false

JupyterHub

변수 이름설명기본값
jupyter_hub_auth_mechanismJupyterHub에 사용할 인증 메커니즘 [dummy | cognito | oauth]dummy
cognito_custom_domainHosted UI 인증 엔드포인트를 위한 Cognito 도메인 접두사eks
acm_certificate_domainACM 인증서에 사용되는 도메인 이름""
jupyterhub_domainJupyterHub 도메인 이름 (cognito 또는 oauth 사용 시에만)""
oauth_jupyter_client_idJupyterHub용 OAuth 클라이언트 ID. OAuth 사용 시에만 필요""
oauth_jupyter_client_secretOAuth 클라이언트 시크릿. OAuth 사용 시에만 필요""
oauth_username_key사용자 이름을 위한 OAuth 필드 (예: preferred_username). OAuth 사용 시에만 필요""

커스텀 스택

위의 변수를 사용하면 자신의 필요에 맞는 새로운 환경을 쉽게 구성할 수 있습니다. infra 폴더에 간단한 blueprint.tfvars가 포함된 custom 폴더가 있습니다. 위의 변수를 적절한 값으로 추가하면 원하는 애드온이 배포된 환경을 생성하여 기호에 맞게 커스터마이징할 수 있습니다. 변수를 추가한 후 infra/custom 루트에 있는 install.sh를 실행하세요.