Skip to main content

GCP 기초

GCP는 프로젝트 단위 권한 분리와 데이터/분석 서비스 연계가 강점입니다. 초기에는 조직-폴더-프로젝트와 서비스 계정 권한 설계가 핵심입니다.

학습 목표

  • GCP 조직 구조(Organization/Folder/Project)를 이해합니다.
  • 서비스 계정 기반 권한 모델을 설명할 수 있습니다.
  • Vertex AI와 BigQuery를 활용한 ML 파이프라인 기본을 이해합니다.
  • GPU/TPU 선택 기준과 비용 최적화를 적용할 수 있습니다.

왜 GCP인가

GCP는 BigQuery, Vertex AI, TPU 등 AI/ML에 특화된 서비스 연계가 강점입니다. 특히 데이터 분석 → 모델 학습 → 서빙까지의 파이프라인이 자연스럽게 연결됩니다. TPU 접근성도 주요 클라우드 중 가장 좋습니다.

핵심 서비스 맵

영역서비스AI/ML 용도
컴퓨팅Compute Engine, GKE, Cloud Run학습/서빙, 컨테이너, 서버리스 추론
저장소Cloud Storage, Persistent Disk, Filestore데이터셋, 체크포인트, 공유 파일
네트워크VPC, Cloud Load Balancing, Cloud DNS격리, 로드밸런싱, 이름 해석
보안IAM, Secret Manager, Cloud KMS권한, 비밀정보, 암호화
관측성Cloud Monitoring, Cloud Logging메트릭, 로그
AI/MLVertex AI, BigQuery MLML 파이프라인, SQL 기반 ML
데이터BigQuery, Dataflow, Pub/Sub분석, ETL, 스트리밍

GPU/TPU 비교

유형모델메모리주요 용도특징
GPU a2-highgpu-1gA100 x140GB중형 학습범용 GPU, CUDA 생태계
GPU a3-highgpu-8gH100 x8640GB대규모 학습최고 성능 GPU
TPU v4-8TPU v4 x4128GB HBMJAX/TensorFlow 학습Google 전용, 비용 효율
TPU v5e-4TPU v5e x464GB HBM추론, 경량 학습추론 최적화
TPU는 JAX/TensorFlow 생태계에서 최적화됩니다. PyTorch 워크로드는 GPU를 권장합니다. TPU는 Spot(선점형) 가격이 GPU보다 할인폭이 커서 대규모 학습에 비용 효율적입니다.

프로젝트 구조 설계

Organization (company.com)
├── Folder: ML-Production
│   ├── Project: ml-prod-serving    ── 추론 서비스
│   ├── Project: ml-prod-data       ── 데이터 파이프라인
│   └── Project: ml-prod-monitoring ── 모니터링
├── Folder: ML-Development
│   ├── Project: ml-dev-sandbox     ── 실험/PoC
│   └── Project: ml-dev-training    ── 학습 클러스터
└── Folder: Shared-Services
    ├── Project: shared-networking   ── VPC, DNS
    └── Project: shared-security     ── KMS, Secret Manager
설계 원칙:
  • 환경(prod/dev)과 기능(serving/training) 기준으로 프로젝트를 분리합니다.
  • 공유 인프라(네트워크, 보안)는 별도 프로젝트로 관리합니다.
  • 프로젝트 라벨로 비용/팀 추적을 강제합니다.

Vertex AI 연동 기본

from google.cloud import aiplatform

# Vertex AI 초기화
aiplatform.init(
    project="ml-prod-serving",
    location="us-central1",
    staging_bucket="gs://ml-staging-bucket"
)

# 학습 작업 제출
job = aiplatform.CustomTrainingJob(
    display_name="my-training-job",
    script_path="train.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/pytorch-gpu.2-1:latest",
    requirements=["transformers", "datasets"],
    machine_type="a2-highgpu-1g",
    accelerator_type="NVIDIA_TESLA_A100",
    accelerator_count=1,
)

BigQuery 활용

BigQuery는 데이터 분석과 피처 엔지니어링에서 강력합니다.
-- 학습 데이터 피처 집계 예시
SELECT
  user_id,
  COUNT(*) as total_actions,
  AVG(session_duration) as avg_duration,
  APPROX_QUANTILES(response_time, 100)[OFFSET(95)] as p95_latency
FROM `ml-prod-data.analytics.user_events`
WHERE event_date BETWEEN '2025-01-01' AND '2025-12-31'
GROUP BY user_id
BigQuery ML을 사용하면 SQL만으로 모델 학습/예측이 가능합니다. 빠른 프로토타이핑에 유용합니다.

시작 순서(권장)

1

조직/폴더/프로젝트 계층 확정

환경별 프로젝트 분리와 라벨 규칙을 정합니다.
2

서비스 계정 및 IAM 설정

워크로드 아이덴티티를 우선 사용하고, 서비스 계정 키 파일 사용을 최소화합니다.
3

네트워크/방화벽 구성

VPC, 서브넷, 방화벽 규칙을 설정합니다.
4

컴퓨팅 배치

GPU/TPU 인스턴스 또는 GKE 클러스터를 배치합니다.
5

모니터링/예산 설정

Cloud Monitoring 대시보드와 예산 알림을 설정합니다.

실무 포인트

  • 사람 계정 대신 서비스 계정 + 워크로드 아이덴티티 중심으로 자동화를 구성합니다.
  • 프로젝트 라벨(env, team, service)을 조직 정책으로 강제합니다.
  • GPU/TPU quota와 리전 가용성을 사전 검증합니다.
  • 로그 보존 기간(기본 30일)과 내보내기 정책을 정의합니다.
  • 선점형(Spot) VM으로 학습 비용을 절감합니다.
키 파일을 장기 보관하면 유출 리스크가 커집니다. 워크로드 아이덴티티(GKE)나 서비스 계정 가장(impersonation)을 우선 사용하세요. 키 파일이 필요하다면 만료 기한을 설정하고 정기 회전하세요.
단순 API와 빠른 배포, 자동 스케일링은 Cloud Run이 유리합니다. GPU 필요, 복잡한 네트워크/스케줄링/상태 관리가 필요하면 GKE를 선택하세요.
프로젝트 라벨, 예산 알림, 유휴 리소스 정리 자동화를 함께 적용하세요. Recommender API로 비용 최적화 제안을 자동으로 받을 수 있습니다.
BigQuery는 스캔한 데이터 양 기준으로 과금됩니다. 파티셔닝, 클러스터링을 적용하고, SELECT * 대신 필요한 컬럼만 조회하세요. 슬롯 기반 요금제(Editions)도 대량 쿼리 시 비용 예측에 유리합니다.

체크리스트

  • 조직/폴더/프로젝트 경계가 정리됐나요?
  • 서비스 계정 권한이 최소화됐나요?
  • 워크로드 아이덴티티를 키 파일 대신 사용하고 있나요?
  • GPU/TPU 리전/할당량을 확인했나요?
  • 예산 및 비용 경보가 설정됐나요?
  • BigQuery 파티셔닝/클러스터링이 적용됐나요?
  • 로그 보존 기간과 내보내기 정책이 정의됐나요?

다음 문서