Google Cloud에서 셀프 호스팅(Self-Hosting on Google Cloud)

Google Cloud에서 셀프 호스팅(Self-Hosting on Google Cloud)

Google Cloud에서 전체 Confident AI 플랫폼을 여러분의 프로젝트와 리전 안에서 실행하는 방법이에요. 공개된 Terraform 모듈이 GKE 클러스터, 관리형 Cloud SQL 데이터베이스, GCS 객체 스토리지를 세우고, confident-ai Helm 차트가 그 위에 애플리케이션을 배포해요. 앱은 GKE Workload Identity를 통해 GCS에 접근하므로 어디에도 서비스 계정 키가 없어요.

출처: 문서

본문

두 단계로 실행해요: 인프라가 Terraform으로 클라우드 리소스를 프로비저닝하고, Helm으로 배포가 앱을 설치해 HTTPS로 노출해요. Terraform 시간 15-20분에 차트가 올라오는 몇 분, 그리고 Google 관리 인증서가 활성화되기까지 최대 한 시간이 더 걸릴 수 있어요.

GCP 참조 아키텍처

Terraform이 프로비저닝하는 것

모듈은 이미 있는 VPC 네트워크 안에 배포돼요. 절대 새로 만들지 않아요.

GKE

자동 확장 노드 풀과 Workload Identity가 활성화된 리전형 비공개 클러스터.

Cloud SQL for PostgreSQL

앱의 기본 데이터베이스로, Private Service Access를 통한 비공개 IP와 자동 백업을 갖춰요.

Cloud Storage

테스트 케이스용과 페이로드용 GCS 버킷 두 개. 비공개이고 저장 중 암호화돼요.

Workload Identity

앱의 Kubernetes ServiceAccount에 바인딩된 Google 서비스 계정. 버킷과 샌드박스에만 스코프가 제한되고 키가 없어요.

Cloud Run 코드 실행기

코드 기반 및 트랜스포머 지표에 필요해요: 미러링된 이미지를 실행하는 샌드박스.

Secret Manager + Memorystore

권장: External Secrets Operator용 클라우드 시크릿 스토어와 관리형 Redis.

ClickHouse는 클러스터 안에서 실행돼요 (Helm 차트가 설치해요). 권장 설정은 시크릿을 Secret Manager에 두고 Redis를 Memorystore에서 실행하는 거예요. 클러스터 안의 Redis와 Kubernetes Secret은 더 간단한 대안으로 계속 사용할 수 있어요. 인그레스 컨트롤러나 External Secrets Operator 같은 클러스터 애드온은 선택 사항이며 Terraform이 설치하지 않아요.

어떻게 맞물리는지

  • 아이덴티티는 키리스예요. 앱 파드는 Workload Identity를 통해 Google 서비스 계정에 바인딩된 Kubernetes ServiceAccount로 실행돼요. 그 서비스 계정은 두 버킷에 대한 최소 권한 접근과 Cloud Run 샌드박스 호출 권한을 가져요. 어디에도 정적 키가 없어요.
  • 데이터 플레인은 비공개. GKE 노드는 비공개 서브넷에 있고 Cloud NAT를 통해서만 인터넷에 도달해요. Cloud SQL은 비공개 IP에 있어요. 클러스터 API 엔드포인트를 공개할지(노트북에서 kubectl, helm 쓰기 편함) 비공개로만 할지 선택할 수 있어요.
  • 트래픽은 한 방향으로만 들어와요. 여러분의 애플리케이션이 트레이스를 confident-otel로 보내고, 그것이 ClickHouse에 기록돼요. 대시보드와 API는 Cloud SQL과 ClickHouse에서 읽어요. 평가는 confident-evals와 그 워커에서 실행되며, 코드·트랜스포머 지표를 위해 여러분의 모델 제공자와 Cloud Run 샌드박스를 호출해요. 데이터셋과 페이로드는 GCS에 있어요.

배포된 서비스

Helm 차트가 confident-ai 네임스페이스에 이 워크로드들을 설치해요:

Service 역할
confident-backend 핵심 API
confident-frontend 대시보드
confident-evals 평가 서비스
confident-evals-worker 비동기 평가 작업
confident-ingestion-worker 트레이스 수집
confident-worker 백그라운드 작업
confident-otel OTLP 및 트레이스 컬렉터
ClickHouse and Keeper 트레이스·스팬 스토어
Redis 캐시와 큐 (Memorystore를 쓰지 않으면 클러스터 내부)

각각이 로드에 따라 어떻게 커지는지는 Scaling을 참고하세요.

기본값

Component 기본값
Node pool 4 x n2-standard-8, 자동 확장
Region us-central1
Cluster endpoint 비공개 (confident_public_gke = true면 머신에서 접근 가능)
Cloud SQL 비공개 IP, 고가용성
Storage class standard-rwo (클러스터 내부 ClickHouse와 Redis 디스크)

위의 모든 것은 Terraform 모듈에서 오버라이드할 수 있어요. 전체 목록은 모듈 입력값을 참고하세요.

모듈

모듈은 Terraform Registry에 게시되고 소스는 GitHub에 있어요.

Terraform Registry

confident-ai/confident-ai/google

GitHub 소스

terraform-google-confident-ai

사전 요구 사항

  • terraform (≥ 1.5), gke-gcloud-auth-plugin이 있는 gcloud CLI, kubectl, helm (≥ 3.8), 그리고 docker (코드 샌드박스 이미지 미러링용).
  • gcloud auth login과 gcloud auth application-default login.
  • Infrastructure 페이지에서 활성화할 API: container, sqladmin, servicenetworking, compute, artifactregistry, run.
  • Confident AI에서: 이미지 풀 자격 증명과 CONFIDENT_LICENSE_KEY (Helm으로 배포 참고).

다음 단계

인프라

Terraform으로 GKE, Cloud SQL, GCS 프로비저닝.

Helm으로 배포

앱을 설치하고 HTTPS로 노출.

더 알아보기