Cloud Storage FUSE로 AI 및 ML 워크로드 최적화

Last reviewed 2025-04-09 UTC

이 문서에서는 Cloud Storage FUSE를 사용하여 Google Kubernetes Engine (GKE)에서 AI 및 ML 워크로드의 성능을 최적화하는 방법을 보여주는 참조 아키텍처를 제공합니다.

이 문서의 주요 대상에는 Google Cloud에서 AI 및 ML 워크로드의 스토리지를 설계, 프로비저닝, 관리하는 설계자 및 기술 실무자가 포함됩니다. 이 문서에서는 사용자가 ML 수명 주기, 프로세스, 기능을 이해하고 있다고 가정합니다.

Cloud Storage FUSE는 Cloud Storage 버킷을 로컬 파일 시스템으로 마운트할 수 있는 오픈소스 FUSE 어댑터입니다. 이 구성을 사용하면 애플리케이션이 표준 파일 유사 시스템 시맨틱스를 사용하여 클라우드 기반 스토리지 버킷과 원활하게 상호작용할 수 있습니다. Cloud Storage FUSE를 사용하면 Cloud Storage의 확장성과 비용 효율성을 활용할 수 있습니다.

아키텍처

성능, 가용성, 재해 복구 (DR) 요구사항에 따라 다음 Google Cloud 배포 원형 중 하나를 선택하여 Google Cloud에서 AI 및 ML 워크로드를 실행할 수 있습니다.

  • 리전별: 애플리케이션이 단일Google Cloud 리전 내에서 독립적으로 실행됩니다. 미션 크리티컬하지는 않지만 영역 중단에 대한 견고성이 필요한 애플리케이션에는 이 배포 원형을 사용하는 것이 좋습니다.
  • 멀티 리전: 애플리케이션이 두 개 이상의 Google Cloud 리전에서 활성-활성 또는 활성-수동 모드로 독립적으로 실행됩니다. 이 배포 원형은 DR 시나리오를 지원하는 데 이상적입니다. 리전 중단 및 재해에 대한 복원력이 필요한 미션 크리티컬 애플리케이션에는 이 배포 원형을 사용하는 것이 좋습니다. 이중 또는 멀티 리전 배포는 리소스 근접성을 높여 지연 시간을 줄이고 처리량을 개선할 수 있습니다.

선택한 배포 원형은 아키텍처에 필요한 Google Cloud 제품 및 기능에 영향을 미칩니다. 멀티 리전 아키텍처는 Anywhere Cache를 사용합니다. 워크로드에 Anywhere Cache가 적합한지 평가하려면 Anywhere Cache 추천자를 사용하여 데이터 사용량과 스토리지를 분석하세요.

다음 탭에서는 리전 및 멀티 리전 배포 원형의 참조 아키텍처를 제공합니다.

리전

다음 다이어그램은 Cloud Storage FUSE를 사용하여 모델 학습 및 모델 제공 워크플로의 성능을 최적화하는 샘플 리전 아키텍처를 보여줍니다.

Cloud Storage FUSE를 사용하여 AI 및 ML 워크로드를 최적화하는 지역 아키텍처

이 아키텍처에는 다음 구성요소가 포함됩니다.

  • GKE 클러스터: GKE는 AI 및 ML 모델 학습 및 제공 프로세스가 실행되는 컴퓨팅 노드를 관리합니다. GKE는 컨트롤 플레인, 노드, 모든 시스템 구성요소를 비롯한 Kubernetes 클러스터의 기본 인프라를 관리합니다.
  • Kubernetes 스케줄러: GKE 컨트롤 플레인이 워크로드를 예약하고 수명 주기, 확장, 업그레이드를 관리합니다. 다이어그램에 표시되지 않은 Kubernetes 노드 에이전트 (kubelet)는 컨트롤 플레인과 통신합니다. kubelet 에이전트는 GKE 노드에 예약된 컨테이너를 시작하고 실행합니다. 스케줄러에 대한 자세한 내용은 GKE의 AI/ML 조정을 참고하세요.
  • 가상 프라이빗 클라우드 (VPC) 네트워크: 아키텍처의 모든 Google Cloud리소스는 단일 VPC 네트워크를 사용합니다. 요구사항에 따라 여러 네트워크를 사용하는 아키텍처를 빌드할 수 있습니다. Cloud Storage FUSE용 VPC 네트워크 구성에 대한 자세한 내용은 여러 VPC 네트워크 생성 여부 결정을 참고하세요.
  • Cloud Load Balancing: 이 아키텍처에서 Cloud Load Balancing은 애플리케이션 사용자의 수신 추론 요청을 GKE 클러스터의 서빙 컨테이너에 효율적으로 분산합니다. 자세한 내용은 GKE 부하 분산 이해하기를 참고하세요.
  • 그래픽 처리 장치 (GPU) 또는 Tensor 처리 장치 (TPU): GPU와 TPU는 AI 및 ML 워크로드의 성능을 개선하는 특수 머신 가속기입니다. 적절한 프로세서 유형을 선택하는 방법에 관한 자세한 내용은 이 문서의 뒷부분에 나오는 액셀러레이터 옵션을 참고하세요.
  • Cloud Storage: Cloud Storage는 AI 및 ML 워크로드를 위한 지속적이고 확장 가능하며 비용 효율적인 스토리지를 제공합니다. Cloud Storage는 원시 학습 데이터 세트, 모델 체크포인트, 최종 학습 모델의 중앙 저장소 역할을 합니다.
  • 파일 캐시가 사용 설정된 Cloud Storage FUSE: Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 로컬 파일 시스템으로 마운트할 수 있습니다. Cloud Storage FUSE의 파일 캐시는 Cloud Storage 버킷에서 자주 액세스하는 파일을 저장하는 로컬 머신의 디렉터리입니다. Cloud Storage FUSE CSI 드라이버는 Cloud Storage FUSE와 Kubernetes API의 통합을 관리하여 Cloud Storage 버킷을 볼륨으로 사용합니다.

다음 섹션에서는 아키텍처의 학습 및 제공 워크로드의 워크플로를 설명합니다.

멀티 리전

다음 다이어그램은 Cloud Storage FUSE 및 Anywhere Cache를 사용하여 모델 학습 및 모델 제공 워크플로의 성능을 최적화하는 샘플 멀티 리전 아키텍처를 보여줍니다.

Cloud Storage FUSE를 사용하여 AI 및 ML 워크로드를 최적화하는 멀티 리전 아키텍처

이 아키텍처에는 다음 구성요소가 포함됩니다.

  • GKE 클러스터: GKE는 AI 및 ML 모델 학습 및 서빙 프로세스가 실행되는 컴퓨팅 노드를 관리합니다. GKE는 컨트롤 플레인, 노드, 모든 시스템 구성요소를 비롯한 Kubernetes 클러스터의 기본 인프라를 관리합니다.
  • Kubernetes 스케줄러: GKE 컨트롤 플레인이 워크로드를 예약하고 수명 주기, 확장, 업그레이드를 관리합니다. 다이어그램에 표시되지 않은 Kubernetes 노드 에이전트 (kubelet)는 컨트롤 플레인과 통신합니다. kubelet 에이전트는 GKE 노드에 예약된 컨테이너를 시작하고 실행합니다. 스케줄러에 대한 자세한 내용은 GKE의 AI/ML 조정을 참고하세요.
  • 가상 프라이빗 클라우드 (VPC) 네트워크: 아키텍처의 모든 Google Cloud리소스는 단일 VPC 네트워크를 사용합니다. 요구사항에 따라 여러 네트워크를 사용하는 아키텍처를 빌드할 수 있습니다. Cloud Storage FUSE용 VPC 네트워크 구성에 대한 자세한 내용은 여러 VPC 네트워크 생성 여부 결정을 참고하세요.
  • Cloud DNS: 멀티 리전 아키텍처에서 Cloud DNS는 애니캐스트 라우팅을 통해 트래픽을 부하 분산기로 전달하여 최적의 성능과 가용성을 보장합니다. 요청은 자동으로 가장 가까운 위치로 라우팅되므로, 지연 시간이 줄어들고 사용자의 권한 이름 조회 성능이 향상됩니다. 일반 원칙 및 권장사항에 관한 자세한 내용은 Cloud DNS 권장사항을 참고하세요.
  • Cloud Load Balancing: 이 아키텍처에서 Cloud Load Balancing은 애플리케이션 사용자의 수신 추론 요청을 GKE 클러스터의 서빙 컨테이너에 효율적으로 분산합니다. 자세한 내용은 GKE 부하 분산 이해하기를 참고하세요.
  • 그래픽 처리 장치 (GPU) 또는 Tensor 처리 장치 (TPU): GPU와 TPU는 AI 및 ML 워크로드의 성능을 개선하는 특수 머신 가속기입니다. 적절한 프로세서 유형을 선택하는 방법에 관한 자세한 내용은 이 문서의 뒷부분에 나오는 액셀러레이터 옵션을 참고하세요.
  • Cloud Storage: Cloud Storage는 AI 및 ML 워크로드를 위한 지속적이고 확장 가능하며 비용 효율적인 스토리지를 제공합니다. Cloud Storage는 원시 학습 데이터 세트, 모델 체크포인트, 최종 학습 모델의 중앙 저장소 역할을 합니다.
  • Cloud Storage FUSE: Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 로컬 파일 시스템으로 마운트할 수 있습니다. 다이어그램에 표시되지 않은 Cloud Storage FUSE CSI 드라이버는 Cloud Storage FUSE와 Kubernetes API의 통합을 관리하여 Cloud Storage 버킷을 볼륨으로 사용합니다.
  • Anywhere Cache: Anywhere Cache는 Cloud Storage 버킷에 최대 1PiB의 SSD 지원 영역 읽기 전용 캐시를 제공하는 Cloud Storage 기능입니다. 학습 및 서빙 중에 Anywhere Cache는 캐시 용량과 대역폭을 확장하여 1TB/s를 초과하는 처리량을 달성하도록 지원합니다.

다음 섹션에서는 아키텍처의 학습 및 제공 워크로드의 워크플로를 설명합니다.

학습 워크로드

위 아키텍처에서 모델 학습 중 데이터 흐름의 단계는 다음과 같습니다.

  1. Cloud Storage에 학습 데이터 로드: 학습 데이터가 계층적 네임스페이스가 사용 설정된 Cloud Storage 버킷에 업로드됩니다. Cloud Storage는 확장 가능한 중앙 저장소 역할을 합니다.
  2. GKE에서 학습 데이터 로드 및 학습 작업 실행: GKE 포드에 마운트된 Cloud Storage 버킷을 사용하면 학습 애플리케이션이 FUSE 인터페이스를 사용하여 학습 데이터를 효율적으로 로드하고 액세스할 수 있습니다. GKE 노드는 마운트된 파일 캐시를 데이터 소스로 사용하여 모델 학습 프로세스를 실행합니다. 학습 애플리케이션은 모델 학습에 필요한 복잡한 계산을 실행하기 위해 머신 액셀러레이터에 학습 데이터를 지속적으로 제공합니다. 워크로드 요구사항에 따라 GPU 또는 TPU를 사용할 수 있습니다. 적절한 프로세서 유형을 선택하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 나오는 액셀러레이터 옵션을 참고하세요.
  3. 체크포인트 및 모델 저장 및 복원:

    • 체크포인트 또는 모델 저장: 학습 중에 별도의 Cloud Storage 버킷에 자주 비동기식으로 체크포인트를 저장합니다. 체크포인트는 정의한 측정항목 또는 간격을 기반으로 모델의 상태를 캡처합니다.
    • 체크포인트 또는 모델 복원: 학습 워크로드에서 체크포인트 또는 모델 데이터를 복원해야 하는 경우 Cloud Storage에서 복원할 애셋을 찾아야 합니다. 복원된 체크포인트 또는 모델을 사용하여 학습을 재개하거나, 매개변수를 미세 조정하거나, 검증 세트에서 성능을 평가할 수 있습니다.

제공 워크로드

위 아키텍처에서 모델 제공 중 데이터 흐름의 단계는 다음과 같습니다.

  1. 모델 로드: 학습이 완료되면 포드가 병렬 다운로드가 사용 설정된 Cloud Storage FUSE를 사용하여 학습된 모델을 로드합니다. 동시 다운로드는 Cloud Storage에서 모델의 부분을 병렬로 가져와 모델 로딩을 가속화합니다. 모델 로드 시간을 크게 줄이기 위해 프로세스에서는 캐시 디렉터리를 프리페치 버퍼로 사용합니다.
  2. 추론 요청: 애플리케이션 사용자가 Cloud Load Balancing 서비스를 통해 AI 및 ML 애플리케이션에서 추론 요청을 전송합니다. Cloud Load Balancing은 수신 요청을 GKE 클러스터의 서빙 컨테이너에 분산합니다. 이러한 분산을 통해 단일 컨테이너가 과부하되지 않고 요청이 효율적으로 처리됩니다.
  3. 응답 전달: 노드가 요청을 처리하고 예측을 생성합니다. 제공 컨테이너는 Cloud Load Balancing을 통해 애플리케이션 사용자에게 응답을 다시 전송합니다.

사용 제품

참조 아키텍처에는 다음과 같은 Google Cloud 제품이 사용됩니다.

  • Google Kubernetes Engine(GKE): Google 인프라를 사용하여 컨테이너화된 애플리케이션을 대규모로 배포 및 운영하는 데 사용할 수 있는 Kubernetes 서비스입니다.
  • Cloud Storage: 다양한 데이터 유형에 적합한 저비용, 무제한 객체 저장소입니다. Google Cloud내부 및 외부에서 데이터에 액세스할 수 있고 중복성을 위해 여러 위치에 복제됩니다.
  • 가상 프라이빗 클라우드(VPC): Google Cloud 워크로드에 확장 가능한 전역 네트워킹 기능을 제공하는 가상 시스템입니다. VPC에는 VPC 네트워크 피어링, Private Service Connect, 비공개 서비스 액세스, 공유 VPC가 포함됩니다.
  • Cloud Load Balancing: 확장 가능한 고성능 전역 및 리전 부하 분산기 포트폴리오입니다.
  • Cloud DNS: Google의 전 세계 네트워크에서 복원력이 우수하고 지연 시간이 짧은 DNS 서비스를 제공하는 서비스입니다.

사용 사례

대규모 스토리지 용량과 고성능 파일 액세스가 필요한 AI 및 ML 워크로드의 경우 Cloud Storage FUSE를 기반으로 구축된 아키텍처를 사용하는 것이 좋습니다. 적절한 계획을 통해 이러한 아키텍처로 1TB/s 이상의 처리량을 달성할 수 있습니다. 또한 Cloud Storage FUSE를 사용하면 AI 및 ML 워크플로의 모든 단계에서 단일 정보 소스 역할을 하는 중앙 스토리지 저장소를 활용할 수 있습니다. 이 접근 방식은 규모나 크기에 관계없이 모든 워크로드에 사용할 수 있습니다.

이러한 워크로드의 경우 Cloud Storage FUSE는 다음과 같은 이점을 제공합니다.

  • 간소화된 데이터 액세스: Connector for PyTorch, JAX, TensorFlow와 같은 AI 및 ML 프레임워크를 사용하여 학습 데이터와 체크포인트에 액세스합니다. AI 및 ML 프레임워크를 통해 데이터에 액세스하면 코드 리팩터링이 필요하지 않습니다.
  • 시작 속도 향상: Cloud Storage FUSE를 사용하여 Cloud Storage의 데이터에 직접 액세스하여 컴퓨팅 리소스에 대규모 데이터 세트를 다운로드할 필요가 없습니다. 데이터에 직접 액세스하면 작업 시작 시간이 빨라집니다.
  • 비용 효율성: Cloud Storage의 고유한 확장성과 비용 효율성을 사용하여 비용을 최적화합니다.

Cloud Storage FUSE는 50MB 미만의 파일이 포함되어 있거나 임의 I/O 및 메타데이터 액세스에 1밀리초 미만의 지연 시간이 필요한 지연 시간에 민감한 워크로드에는 적합하지 않습니다.

데이터 집약적인 학습 또는 체크포인트 작업 및 다시시작 워크로드의 경우 I/O 집약적 학습 단계에서 스토리지 대안을 고려하세요.

설계 대안

다음 섹션에서는 Google Cloud에서 AI 및 ML 애플리케이션에 대해 고려할 수 있는 대체 설계 접근 방식을 보여줍니다.

플랫폼 대안

GKE에서 모델 학습 및 제공 워크플로를 호스팅하는 대신 Slurm을 사용하는 Compute Engine을 고려할 수 있습니다. Slurm은 구성 가능성이 높고 오픈소스 워크로드 및 리소스 관리자입니다. Slurm과 함께 Compute Engine을 사용하면 대규모 모델 학습 및 시뮬레이션에 특히 적합합니다. 독점 AI 및 ML 지식 재산 (IP)을 특수 워크로드의 성능을 최적화할 수 있는 유연성과 제어 기능을 갖춘 확장 가능한 환경에 통합해야 하는 경우 Slurm과 함께 Compute Engine을 사용하는 것이 좋습니다. Slurm과 함께 Compute Engine을 사용하는 방법에 대한 자세한 내용은 Slurm으로 HPC 클러스터 배포를 참고하세요.

Compute Engine에서는 가상 머신 (VM)을 프로비저닝하고 관리할 수 있으므로 인스턴스 유형, 스토리지, 네트워킹을 세부적으로 제어할 수 있습니다. 특정 VM 머신 유형을 선택하는 등 정확한 요구사항에 맞게 인프라를 맞춤설정할 수 있습니다. Compute Engine에서 Cloud Storage FUSE 명령줄 옵션을 사용하는 방법에 대한 자세한 내용은 gcsfuse CLICloud Storage FUSE 구성 파일을 참고하세요. AI 및 ML 워크로드의 성능을 향상하기 위해 가속기 최적화 머신 계열을 사용할 수도 있습니다. Compute Engine에서 사용할 수 있는 머신 유형 제품군에 대한 자세한 내용은 머신 계열 리소스 및 비교 가이드를 참고하세요.

Slurm은 AI 및 ML 워크로드를 관리하는 강력한 옵션을 제공하며, 이를 통해 컴퓨팅 리소스의 구성과 관리를 제어할 수 있습니다. 이 방법을 사용하려면 Slurm 관리 및 Linux 시스템 관리에 대한 전문 지식이 필요합니다.

가속기 옵션

머신 가속기는 AI 및 ML 워크로드에 필요한 계산 속도를 높이도록 설계된 특수 프로세서입니다. GPU 또는 TPU를 선택할 수 있습니다.

  • GPU 액셀러레이터는 그래픽 렌더링, 딥 러닝 학습, 과학 컴퓨팅 등 다양한 작업에 뛰어난 성능을 제공합니다. Google Cloud 는 다양한 성능 및 가격대의 GPU를 제공합니다. GPU에는 각 머신 구성에 로컬 SSD가 포함되는 경우가 많으며, 이는 Cloud Storage FUSE에서 캐시 디렉터리로 사용할 수 있습니다. GPU 모델 및 가격에 대한 자세한 내용은 GPU 가격 책정을 참고하세요.
  • TPU는 대규모 AI 모델의 학습과 추론에 최적화된 맞춤 설계된 AI 가속기입니다. 챗봇, 코드 생성, 미디어 콘텐츠 생성, 합성 음성, 비전 서비스, 추천 엔진, 맞춤설정 모델 등 다양한 사용 사례에 적합합니다. TPU 모델 및 가격 책정에 대한 자세한 내용은 TPU 가격 책정을 참고하세요.

스토리지 대안

Cloud Storage FUSE는 Cloud Storage의 확장성과 비용 효율성을 활용할 수 있는 편리한 파일 시스템을 제공합니다. 하지만 Cloud Storage FUSE는 작은 파일 읽기를 위해 짧은 지연 시간이 필요한 워크로드나 완전한 POSIX 호환 스토리지 솔루션이 필요한 워크로드에는 적합하지 않습니다. 이러한 사용 사례의 경우 다음 스토리지 대안을 고려하는 것이 좋습니다.

  • Google Cloud Hyperdisk ML: 수백 GB에서 64TB에 이르는 소규모 읽기 전용 데이터 세트가 있는 수백 개의 노드로 구성된 대규모 클러스터가 있는 워크로드에 적합한 고성능 블록 스토리지 솔루션입니다. Hyperdisk ML은 Cloud Storage보다 처리량이 높으며 읽기 전용 모드로 여러 VM에 연결할 수 있습니다. Kubernetes ReadOnlyMany 액세스 모드를 사용하면 모델 레지스트리에서 직접 로드하는 것과 비교하여 Hyperdisk ML이 모델 가중치 로드를 가속화할 수 있습니다. AI 및 ML 워크로드에서 Hyperdisk ML을 사용하는 방법에 대한 자세한 내용은 Hyperdisk ML을 사용하여 AI/ML 데이터 로드 가속화를 참고하세요.
  • Connector for PyTorch: PyTorch를 사용하는 워크로드에 적합한 Cloud Storage의 오픈소스 제품입니다. Connector for PyTorch는 Cloud Storage 버킷에서 직접 데이터를 스트리밍하고 중간 저장소의 필요성을 없애 학습 워크로드를 최적화합니다. 이 직접 액세스 및 최적화는 데이터 로드, 학습, 체크포인트 설정 시 Cloud Storage에 대한 직접 API 호출보다 훨씬 뛰어난 성능을 제공합니다.

대체 스토리지 옵션이 특정 AI 및 ML 워크로드에 성능 이점을 제공할 수 있지만 지연 시간, 처리량, 스토리지 용량에 대한 요구사항을 평가하는 것이 중요합니다.

AI 및 ML 워크로드의 스토리지 옵션에 대한 자세한 비교는 Google Cloud에서 AI 및 ML 워크로드를 위한 스토리지 설계를 참고하세요.

설계 고려사항

이 섹션에서는 보안, 안정성, 비용, 성능을 위해 Cloud Storage FUSE를 구성하기 위한 권장사항과 설계 고려사항을 안내합니다. 여기에 나온 권장사항이 모든 사항을 다루지는 않지만 환경에서 Cloud Storage FUSE의 이점을 극대화하기 위한 주요 고려사항을 다룹니다. 특정 요구사항과 워크로드 특성에 따라 추가 구성 옵션과 장단점을 고려해야 할 수 있습니다.

다음 설계 권장사항에서는 GKE에서 Cloud Storage FUSE를 배포하는 방법을 개선하기 위한 구성을 강조합니다. 대부분의 Cloud Storage FUSE 옵션은 마운트 옵션으로 구성됩니다. Cloud Storage FUSE 명령줄 옵션 및 사용 방법에 대한 자세한 내용은 gcsfuse CLIGKE 성능을 위해 Cloud Storage FUSE CSI 드라이버 최적화를 참고하세요.

보안, 개인 정보 보호, 규정 준수

이 섹션에서는 Google Cloud 에서 보안, 개인 정보 보호, 규정 준수 요구사항을 충족하는 AI 및 ML 워크로드에 대한 고려사항을 설명합니다.

GKE 고려사항

Autopilot 모드의 작업에서는 GKE가 클러스터를 사전 구성하고 보안 권장사항에 따라 노드를 관리하므로 워크로드별 보안에 집중할 수 있습니다. 자세한 내용은 다음을 참조하세요.

GKE에서 실행되는 애플리케이션의 액세스 제어를 강화하려면 IAP (Identity-Aware Proxy)를 사용하면 됩니다. IAP는 GKE 인그레스 리소스와 통합되며 올바른 Identity and Access Management (IAM) 역할을 가진 인증된 사용자만 애플리케이션에 액세스할 수 있도록 지원합니다. 자세한 내용은 GKE에 IAP 사용 설정을 참고하세요.

기본적으로 GKE의 데이터는 Google-owned and Google-managed encryption keys를 사용하여 저장 데이터전송 중 데이터 상태로 암호화됩니다. 민감한 정보에 대한 추가 보안 레이어로서 Cloud Key Management Service (Cloud KMS)에서 사용자가 소유하고 관리하는 키를 사용하여 애플리케이션 레이어의 데이터를 암호화할 수 있습니다. 자세한 내용은 애플리케이션 레이어에서 보안 비밀 암호화를 참고하세요.

표준 GKE 클러스터를 사용하는 경우 다음과 같은 추가 데이터 암호화 기능을 사용할 수 있습니다.

Cloud Storage 고려사항

기본적으로 Cloud Storage에 저장되는 데이터는 Google-owned and Google-managed encryption keys를 사용하여 암호화됩니다. 필요한 경우 고객 관리 암호화 키 (CMEK)를 사용하거나 고객 제공 암호화 키(CSEK)와 같은 외부 관리 방법을 사용하여 관리하는 자체 키를 사용할 수 있습니다. 자세한 내용은 데이터 암호화 옵션을 참고하세요.

Cloud Storage는 버킷과 객체에 액세스할 수 있는 권한을 사용자에게 부여하기 위해 IAM 및 액세스 제어 목록 (ACL)의 두 가지 방법을 지원합니다. 대부분의 경우 버킷 및 프로젝트 수준에서 권한을 부여할 수 있는 IAM을 사용하는 것이 좋습니다. 자세한 내용은 액세스 제어 개요를 참고하세요.

Cloud Storage를 통해 로드하는 학습 데이터에는 민감한 정보가 포함될 수 있습니다. 이러한 데이터를 보호하기 위해서는 Sensitive Data Protection을 사용하여 데이터를 검색, 분류, 익명화할 수 있습니다. 학습 및 제공 워크로드를 분리하려면 모델과 체크포인트를 별도의 Cloud Storage 버킷에 저장하세요. 이 격리를 통해 서비스 제공 중에 학습 데이터 세트의 민감한 정보가 실수로 노출되는 것을 방지할 수 있습니다. 자세한 내용은 Cloud Storage에 Sensitive Data Protection 사용을 참고하세요.

데이터 상주 요구사항이 있는 경우 Cloud Storage를 사용하면 이러한 요구사항을 충족할 수 있습니다. 데이터는 사용자가 지정한 리전 내에 저장 또는 복제됩니다.

Cloud Storage FUSE 고려사항

캐싱을 사용 설정하면 Cloud Storage FUSE는 지정한 디렉터리 내에 Cloud Storage 버킷의 영구 파일을 암호화되지 않은 형식으로 저장합니다. Cloud Storage는 디렉터리 액세스 권한이 있는 모든 사용자 또는 프로세스에 모든 파일을 노출합니다. 이러한 위험을 완화하고 보안을 개선하기 위해 FUSE 커널 레이어는 시스템을 마운트한 사용자에 대한 파일 시스템 액세스를 제한합니다. 이 제한사항은 inode 권한이 더 관대하더라도 루트 사용자를 비롯한 다른 사용자의 액세스를 거부합니다.

하지만 기본 액세스 제한을 재정의해야 하는 사용 사례가 있습니다. 예를 들어 여러 노드가 Cloud Storage에 저장된 체크포인트에 액세스하고 이를 공유해야 하는 분산 AI 및 ML 학습 워크로드에서는 더 광범위한 액세스를 허용해야 할 수 있습니다. 이 경우 -o allow_other 옵션을 사용하여 기본 제한을 재정의할 수 있습니다. 하지만 파일에 대한 액세스 권한을 확대하면 승인되지 않은 사용자에게 데이터가 노출될 수 있습니다. 따라서 이 옵션을 사용할 때는 주의해야 합니다.

기본적으로 Cloud Storage FUSE 파일 시스템의 모든 아이노드는 파일 시스템을 마운트한 사용자가 소유합니다. 이러한 기본값이 많은 경우에 적합할 수 있지만 포드의 보안 컨텍스트를 맞춤설정할 수 있습니다. 보안 컨텍스트 맞춤설정에 관한 자세한 내용은 보안 및 권한을 참고하세요.

안정성

안정적인 작동을 위해 Cloud Storage FUSE는 잠재적인 중단을 처리하고 데이터 일관성을 유지하기 위해 자동 재시도를 통합합니다. 실패한 요청은 Cloud Storage에 지수 백오프로 자동 재시도됩니다. 지수 백오프는 재시도 간 시간을 점진적으로 늘립니다. 이 기본 제공 메커니즘은 애플리케이션이 일시적인 네트워크 문제나 임시 Cloud Storage 사용 불가능 상태를 극복하는 데 도움이 됩니다.

Cloud Storage FUSE는 다양한 이점을 제공하지만 다음 사항을 고려하세요.

  • 동시 쓰기: 여러 사용자가 파일을 수정하려고 하면 마지막 쓰기 우선 작업이 우선 적용되고 이전의 모든 쓰기 작업이 손실됩니다. 데이터 무결성을 유지하려면 특정 시점에 하나의 소스에서만 단일 객체를 수정하는 것이 좋습니다.
  • 캐시 지속성: 버킷을 마운트 해제하거나 다시 시작하면 캐시가 지속되지 않습니다. 잠재적인 보안 문제를 방지하려면 버킷을 마운트 해제하거나 다시 시작한 후 파일 캐시 디렉터리를 수동으로 삭제해야 합니다.
  • 전용 캐시가 있는 프로세스: Cloud Storage FUSE는 효율적인 병렬 처리를 위해 동시 액세스를 지원하지만 캐시는 각 Cloud Storage FUSE 프로세스에만 적용된다는 점을 기억해야 합니다. 따라서 동일하거나 다른 머신에서 실행되는 다양한 Cloud Storage FUSE 프로세스에서 동일한 캐시 디렉터리를 사용해서는 안 됩니다.

워크로드의 아키텍처를 빌드할 때는 Well-Architected Framework: 안정성 필라에서 제공하는 일반 권장사항과 추천도 고려하세요.

비용 최적화

이 섹션에서는 Google Cloud에서 AI 및 ML 워크플로를 설정하고 운영하는 비용을 최적화할 수 있게 도와줍니다.

GKE 고려사항

Autopilot 모드에서 GKE는 워크로드 요구사항에 따라 클러스터 인프라의 효율성을 최적화합니다. 비용을 관리하기 위해 리소스 사용률을 지속적으로 모니터링하거나 용량을 관리할 필요가 없습니다.

Autopilot 클러스터의 CPU, 메모리, 임시 스토리지 사용량을 예측할 수 있으면 약정 사용 할인을 받을 수 있습니다. 애플리케이션 실행 비용을 줄이려면 GKE 노드에 스팟 VM을 사용하면 됩니다. 스팟 VM은 표준 VM보다 가격이 저렴하지만 가용성을 보장하지 않습니다.

효율적인 관리를 통해 비용과 성능을 최적화하려면 동적 워크로드 스케줄러를 사용하세요. 동적 워크로드 스케줄러는 AI 및 ML 리소스에 대한 액세스를 개선하는 데 도움이 되는 리소스 관리 및 작업 스케줄러입니다. 동적 워크로드 스케줄러는 모든 가속기를 동시에 예약하며 정의된 가속기 용량 관리로 오프 피크타임에 실행할 수 있습니다. 작업을 전략적으로 예약하면 동적 워크로드 스케줄러가 액셀러레이터 사용률을 극대화하고 유휴 시간을 줄여 궁극적으로 클라우드 지출을 최적화할 수 있습니다.

비용 최적화 안내에 대한 자세한 내용은 GKE에서 비용에 최적화된 Kubernetes 애플리케이션을 실행하기 위한 권장사항을 참고하세요.

Cloud Storage 고려사항

AI 및 ML 스토리지 요구사항은 동적일 수 있습니다. 예를 들어 학습 데이터에는 상당한 스토리지 용량이 필요하지만 모델 데이터와 체크포인트를 주로 저장하는 서빙에는 용량 요구사항이 줄어듭니다. 비용을 관리하려면 객체 수명 주기 관리자동 클래스를 사용 설정하는 것이 좋습니다.

객체 수명 주기 관리를 사용하면 설정한 규칙에 따라 오래된 데이터나 사용하지 않는 데이터를 더 저렴한 스토리지 클래스로 자동 이동하거나 데이터를 삭제할 수도 있습니다.

자동 클래스 기능은 액세스 패턴에 따라 스토리지 클래스 간에 데이터를 자동으로 이동합니다. 이 기능을 사용하면 성능과 비용 간의 최적의 균형을 유지할 수 있습니다.

Cloud Storage FUSE 고려사항

스토리지, 메타데이터 작업, FUSE 활동으로 생성된 네트워크 트래픽에는 표준 Cloud Storage 요금이 적용됩니다. Cloud Storage FUSE를 사용하는 데 추가 비용이 들지 않습니다. 일반적인 Cloud Storage FUSE 작업과 Cloud Storage 작업에 대한 매핑 방법에 대한 자세한 내용은 작업 매핑을 참고하세요.

캐시 디렉터리의 비용을 최적화하려면 로컬 SSD, 영구 디스크, 임시 파일 시스템용 인메모리 데이터 등 프로비저닝된 기존 머신 용량을 사용하면 됩니다. 기존 머신 용량을 사용하면 추가 스토리지 리소스에 대한 요금이 청구되지 않습니다. 또한 캐시 적중을 최대화하면 로컬에서 제공되는 데이터에는 작업 요금이나 네트워크 이그레스 요금이 발생하지 않으므로 Cloud Storage 비용을 크게 절감할 수 있습니다.

요금에 대한 자세한 내용은 Cloud Storage 가격 책정을 참고하세요.

워크로드의 아키텍처를 빌드할 때는 Well-Architected Framework: 비용 최적화 필라에서 제공하는 일반 권장사항과 추천도 고려하세요.

성능 최적화

Cloud Storage FUSE는 AI 및 ML 워크로드를 위해 Cloud Storage의 데이터에 효율적으로 액세스할 수 있도록 설계되었습니다. 하지만 메타데이터 요청이 빈번하면 특히 대규모 클러스터에서 성능이 저하될 수 있습니다. 성능 개선에 관한 자세한 내용은 GKE 성능을 위해 Cloud Storage FUSE CSI 드라이버 최적화를 참고하세요.

성능을 최적화하려면 다음 구성을 고려하세요.

  • 계층적 네임스페이스 사용 설정: 데이터 액세스 및 구성을 개선하려면 계층적 네임스페이스가 사용 설정된 Cloud Storage 버킷을 만드세요. 계층적 네임스페이스를 사용하면 파일 시스템 구조로 데이터를 구성할 수 있으므로 AI 및 ML 워크로드의 성능이 향상되고 일관성이 보장되며 관리가 간소화됩니다. 계층적 네임스페이스를 사용하면 초기 QPS가 높아지고 원자적 디렉터리 이름 바꾸기가 빨라집니다.
  • 파일 캐싱 사용 설정: 파일 캐싱은 로컬 노드 디렉터리를 사용하여 자주 읽는 파일을 캐시함으로써 학습 데이터에 대한 반복 액세스를 가속화합니다. 캐시 미디어에서 반복 읽기를 제공하면 지연 시간이 줄어들고 Cloud Storage로 돌아가는 작업이 최소화됩니다. 로컬 SSD가 있는 GPU 머신 유형에서는 로컬 SSD 디렉터리가 자동으로 사용됩니다. TPU와 같이 로컬 SSD가 포함되지 않은 머신 유형의 경우 /tmpfs와 같은 RAM 디스크 디렉터리를 사용할 수 있습니다.

    파일 캐시를 사용 설정하려면 다음 마운트 옵션을 사용하세요.

    • 사용 가능한 파일 캐시 값을 캐시 용량 한도로 설정하려면 file-cache:max-size-mb:-1로 설정합니다.
    • 메타데이터 캐시 수명 (TTL)을 무제한으로 설정하고 최대 용량에 도달한 후 가장 최근에 사용된 항목 (LRU) 알고리즘에 따라 제거하려면 metadata-cache:ttl-secs:-1로 설정합니다.
  • 메타데이터 캐시 값 늘리기: Cloud Storage FUSE에는 메타데이터 조회와 관련된 작업의 성능을 개선하는 두 가지 형태의 메타데이터 캐시(통계 캐시유형 캐시)가 있습니다.

    메타데이터 캐시 값을 늘리려면 다음 마운트 옵션을 설정하세요.

    • 사용 가능한 통계 캐시 값을 캐시 용량 한도로 설정하려면 metadata-cache:stat-cache-max-size-mb:-1로 설정합니다.
    • 사용 가능한 유형 캐시 값을 용량 한도로 설정하려면 metadata-cache:type-cache-max-size-mb:-1로 설정합니다.
    • 캐시된 메타데이터 항목이 만료되지 않도록 하려면(기본값은 60초) metadata-cache:ttl-secs:-1로 설정하세요. 무한 값은 읽기 전용 볼륨과 메모리 구성이 큰 노드에만 사용해야 합니다.
  • 메타데이터 캐시 미리 채우기: 메타데이터 미리 가져오기 기능을 사용하면 Cloud Storage FUSE CSI 드라이버가 Cloud Storage 버킷의 객체에 관한 관련 메타데이터를 Cloud Storage FUSE 캐시에 미리 로드할 수 있습니다. 이 접근 방식을 사용하면 Cloud Storage에 대한 호출이 줄어들며, 특히 AI 및 ML 학습 워크로드와 같이 파일이 많은 대규모 데이터 세트에 액세스하는 애플리케이션에 유용합니다.

    메타데이터 캐시를 미리 채우려면 지정된 볼륨에 대해 메타데이터 미리 가져오기를 사용 설정하세요. 볼륨 속성 gcsfuseMetadataPrefetchOnMounttrue로 설정합니다.

  • 목록 캐싱 사용 설정: 이 기능은 목록 디렉터리 및 파일을 최적화합니다. 특히 전체 디렉터리에 반복적으로 액세스하고 나열하는 경우가 많은 AI 및 ML 학습 워크로드에 유용합니다. 목록 캐싱은 컴퓨터 메모리의 디렉터리 목록에 반복적으로 액세스할 필요성을 줄여 매우 효율적인 학습 프로세스를 제공합니다.

    목록 캐싱을 사용 설정하고 커널 목록 캐시 항목이 만료되지 않도록 하려면 마운트 옵션 file-system:kernel-list-cache-ttl-secs:-1로 설정합니다.

  • 동시 다운로드 사용 설정: 동시 다운로드는 여러 청크를 동시에 가져와 모델의 초기 로딩을 가속화합니다. 병렬 다운로드를 사용하면 모델 로드 속도가 빨라지고 제공 중 응답성이 향상됩니다.

    동시 다운로드를 사용 설정하려면 파일 캐시를 사용 설정하고 마운트 옵션 file-cache:enable-parallel-downloads:true로 설정합니다.

  • GKE 사이드카 한도 늘리기: 리소스 제약으로 인해 성능이 저하되지 않도록 CPU 및 메모리 소비와 같은 사이드카 컨테이너의 리소스에 한도를 구성합니다. 로컬 SSD 캐시를 사용하는 경우 ephemeral-storage-limit을 무제한으로 설정하는 것이 좋습니다. 이 설정을 사용하면 Cloud Storage FUSE가 향상된 캐싱을 위해 사용 가능한 로컬 SSD 스토리지를 완전히 사용할 수 있습니다.

  • 읽기 전용 마운트: 학습 워크로드는 일반적으로 데이터만 읽으면 되므로 특히 파일 캐싱을 사용하는 경우 최적의 성능을 위해 마운트 지점을 읽기 전용으로 구성합니다. 이 구성은 대규모 클러스터에서 최적화의 이점을 극대화하고 잠재적인 데이터 불일치를 방지하는 데도 도움이 됩니다.

워크로드의 아키텍처를 빌드할 때 Well-Architected Framework: 성능 최적화에서 제공하는 일반적인 권장사항과 추천을 고려하세요.

다음 단계

참여자

저자: 사만다 헤 | 기술 문서 작성자

기타 참여자: