멀티 GPU 활용을 위한 AI/ML 인프라 with EKSNCCL: GPU 간 통신을 위한 NVIDIA의 해결책분산 학습에서 GPU 간 통신 성능이 중요해짐에 따라, NVIDIA는 NCCL(NVIDIA Collective Communications Library)을 개발NCCL은 여러 GPU 간의 집합 통신 연산을 최적화하기 위해 설계된 라이브러리임.NCCL 주요 특징고성능 집합 통신 연산: AllReduce, Broadcast, Reduce, AllGather, ReduceScatter 등 딥러닝에 필수적인 통신 패턴을 최적화다양한 토폴로지 지원: PCIe, NVLink, NVSwitch 등 GPU 간 연결 토폴로지를 자동으로 감지하고 최적화멀티 노드 확장성: InfiniBand, RoCE, IP 소켓..
AI 워크로드에 대한 컨테이너 사용 배경 머신러닝과 딥러닝이 기업의 핵심 경쟁력으로 부상하면서, 데이터 과학자들은 점점 더 복잡하고 계산 집약적인 모델을 개발. 이러한 모델을 효율적으로 학습하고 배포하기 위해서는 GPU를 사용하는 강력한 컴퓨팅 인프라가 요구됨 전통적으로 ML 엔지니어들은 베어메탈 서버에 직접 GPU 드라이버와 라이브러리를 설치하여 작업환경 구성의 복잡성: CUDA, cuDNN 등 복잡한 드라이버 스택 설치 및 관리가 필요. 특히 버전 호환성 문제로 인해 특정 프레임워크(TensorFlow, PyTorch)가 특정 CUDA/cuDNN 버전만 지원하는 경우가 많았음.재현성 부족: 동일한 실험 환경을 다른 시스템에서 재현하기 어려움. '내 컴퓨터에서는 잘 작동하는데요?.'와 같은 이야기를 ..
[실습 2] Multi Cluster secure communication 멀티 클러스터 환경 간에서 Amazon VPC Lattice를 활용한 안전한 통신 방법에 대해 실습 주요 컴포넌트인프라 구성두 개의 VPC: VPC cluster 1과 VPC cluster 2가 독립적으로 구성두 개의 EKS 클러스터: 각 VPC에 EKS Cluster 1과 EKS Cluster 2 배포VPC Lattice: 두 VPC 간의 서비스 통신을 위한 중앙 관리형 연결 서비스애플리케이션 구성EKS Cluster 1 애플리케이션:App1 Service가 Pod로 배포됨Envoy sidecar 프록시를 통한 서비스 메시 구성HTTP Route를 통한 외부 트래픽 라우팅EKS Cluster 2 애플리케이션:App2 Servi..
Amazon VPC Lattice란AWS에서 제공하는 완전관리형 애플리케이션 네트워킹 서비스로, 다양한 컴퓨팅 환경에서 애플리케이션 서비스를 연결, 보호 및 모니터링하는 통합 솔루션 Amazon VPC Lattice 주요 구성 요소ServiceService는 특정 작업이나 기능을 수행하는 독립적으로 배포가능한 소프트웨어 단위입니다. 이는 어떤 Amazon Virtual Private Cloud(VPC)나 계정에도 존재할 수 있으며, 다양한 유형의 컴퓨팅 환경(가상머신, 컨테이너, 서버리스 함수)에서 실행할 수 있습니다. 서비스 구성은 다음과 같은 요소로 이루어집니다.리스너 : 리스너에서는 Service가 트래픽을 받아들일 포트와 프로포콜을 정의합니다. 지원되는 프로토콜은 HTTP/1.1, HTTP/2, ..
PKI Secrets운영자가 단일 Vault PKI 시크릿을 단일 Kubernetes 시크릿으로 동기화하는 데 필요한 구성Ingress, mTLS, Webapp 등 PKI 인증서를 사용하는 애플리케이션에서 동적으로 변경된 PKI 인증서를 사용할 수 있도록 지원Vault PKI 시크릿엔진 사용을 위한 설정#kubectl exec --stdin=true --tty=true vault-0 -n vault -- /bin/sh#1. PKI 엔진 활성화(마운트)vault secrets enable -path=pki pki#2. Root CA(Common Name) 인증서 생성(발급)- Vault 자체가 루트 인증기관(CA)이 됨- Root CA 인증서와 개인키를 Vault 내부에 생성·보관 - 10년 TTL- PE..
Vault Secrets Operator (VSO) VSO을 통해서 획득한 시크릿을 Kubernetes Secret을 자동으로 동기화하고 관리하는 방법Vault Secrets Operator는 지원하는 Custom Resource Definitions(CRD) 집합의 변경 사항을 감시하여 작동CRD는 시크릿의 지원되는 소스 중 하나에서 Kubernetes Secret으로 동기화할 수 있도록 필요한 사양을 제공오퍼레이터는 소스 시크릿 데이터를 대상 Kubernetes Secret에 직접 작성하며, 소스에 변경 사항이 발생할 경우 해당 내용을 대상에도 수명 주기 동안 지속적으로 반영이렇게 함으로써 애플리케이션은 대상 시크릿에만 접근하면 그 안의 시크릿 데이터를 사용할 수 있음기능여러 시크릿 소스로부터의 동기..
Jenkins + Vault (AppRole) - CI Vault KV Store에 저장한 username, password을 Jenkins을 활용해서 획득CI 파이프라인에서 정적(Static) 시크릿을 외부에 저장하고 관리할 경우 사용할 수 있음Jenkins에서 Vault Plugin 설치Jenkins 관리 > Pluguns > Available plugins > vault Vault AppRole 정보 확인 ⇒ Secret ID는 1시간 만료이므로, 그냥 다시 생성해서, 해당 값을 젠킨스에 설정하고 빌드 실습# Role ID 확인 및 Secret ID 신규 발급ROLE_ID=$(vault read -field=role_id auth/approle/role/sampleapp-role/role-id)SE..