셀프 호스팅 POC 환경(Self-Hosted POC Environments)

셀프 호스팅 POC 환경(Self-Hosted POC Environments)

POC(proof-of-concept)는 confident-compose 리포지토리를 사용해 Docker Compose로 한 대의 머신에서 전체 Confident AI 스택을 실행해요. 앱과 함께 Postgres, Redis, ClickHouse, 객체 스토리지를 번들하므로, 클라우드 인프라를 프로비저닝하기 전에 자체 데이터로 제품을 시험해 볼 수 있어요.

출처: 문서

본문

POC 환경을 포함한 셀프 호스팅은 Enterprise 플랜에서 사용할 수 있어요. 플랫폼 팀과 상담해 confident-compose, 컨테이너 이미지, 라이선스 키에 대한 접근을 받으세요.

POC는 평가용이지 프로덕션용이 아니에요. 모든 것이 고가용성, 백업, 단일 컨테이너 데이터스토어 없이 한 호스트에서 실행돼요. 실제 운영할 준비가 되면 AWS, GCP, 또는 Azure의 클라우드 배포로 옮기세요.

요구 사항

전체 스택(ClickHouse와 Postgres 포함)이 한 호스트에서 실행되므로, 모두를 감당할 크기로 머신을 잡아요:

리소스 최소 권장
CPU 16 vCPU 32 vCPU
메모리 64 GB 128 GB
디스크 100 GB SSD 200 GB SSD
아키텍처 x86_64 x86_64
OS Ubuntu 22.04 LTS 또는 24.04 LTS Ubuntu 22.04 LTS 또는 24.04 LTS

각 클라우드의 대응 머신 유형:

클라우드 최소 권장
AWS m6i.4xlarge (16 vCPU, 64 GB) m6i.8xlarge (32 vCPU, 128 GB)
GCP n2-standard-16 (16 vCPU, 64 GB) n2-standard-32 (32 vCPU, 128 GB)
Azure Standard_D16s_v5 (16 vCPU, 64 GB) Standard_D32s_v5 (32 vCPU, 128 GB)

또한 다음이 필요해요:

  • Docker와 Docker Compose가 있는 호스트: 노트북, VM, 또는 온프렘 서버.
  • Confident AI에서: confident-compose 리포지토리 접근, 컨테이너 이미지 풀 자격 증명, CONFIDENT_LICENSE_KEY. 세 가지 모두 플랫폼 팀에 요청하세요.
  • 평가를 실행하려면 LLM 제공자 키 (예: OPENAI_API_KEY).

배포(Deploy)

confident-compose 클론

Confident AI가 접근을 부여하면:

git clone https://github.com/confident-ai/confident-compose
cd confident-compose

환경 구성

예시 환경 파일을 복사해 채워요:

cp .env.example .env

CONFIDENT_LICENSE_KEY, LLM 제공자 키, Confident AI가 준 이미지 레지스트리 로그인을 설정해요. 리포지토리 README에 모든 변수와 기본값이 있어요.

스택 시작

docker compose up -d

이것이 앱과 Postgres, Redis, ClickHouse, 객체 스토리지를 한 호스트에서 실행해요. 정상이 되는 데 1분 정도 걸려요:

docker compose ps

앱 열기

http://localhost:3000을 열어 로그인하세요. 다른 곳에서 접근하려면 기존 VPN이나 내부 로드 밸런서 뒤에 두세요.

배포에 base URL 설정하기

Compose는 백엔드를 포트 3001에, OTEL 컬렉터를 POC 호스트의 포트 4318에 노출해요. 스택이 <IP>에서 실행 중이라면:

export CONFIDENT_API_KEY="<key-from-your-poc>"
export CONFIDENT_BASE_URL="http://<IP>:3001"
export CONFIDENT_OTEL_ENDPOINT="http://<IP>:4318/v1/traces"

CONFIDENT_BASE_URL은 SDK와 Confident API가 보내는 모든 것(테스트 실행, 데이터셋, 프롬프트, 평가)을 다루고, CONFIDENT_OTEL_ENDPOINT는 트레이스 수집을 다뤄요. confident-trace를 거치지 않고 OpenTelemetry SDK로 직접 트레이스를 내보낸다면 OTEL_EXPORTER_OTLP_ENDPOINT를 같은 컬렉터로 지정해요:

export OTEL_EXPORTER_OTLP_ENDPOINT="http://<IP>:4318"

API 키는 발급한 배포에 한정돼요. POC 대시보드에서 새 프로젝트 API 키를 생성하세요 — Confident AI Cloud의 키는 POC에 인증되지 않고, 그 반대도 마찬가지예요.

POC를 머신이 신뢰하지 않는 인증서가 있는 로드 밸런서 뒤에 둔다면 CONFIDENT_DISABLE_SSL=1로 검증을 건너뛰도록 설정하세요. 신뢰할 수 있는 네트워크 안에서만 이렇게 하세요.

POC가 클라우드 배포가 되면, 같은 변수들이 config.backendUrl과 ingress.hosts.otel에서 구성한 api.·otel. 서브도메인을 가리켜요:

export CONFIDENT_BASE_URL="https://api.yourdomain.com"
export CONFIDENT_OTEL_ENDPOINT="https://otel.yourdomain.com/v1/traces"

제한 사항

POC는 속도를 위해 프로덕션 하드닝을 희생해요:

  • 고가용성 없음. 호스트 하나, 장애 조치 없음, 중복 없음.
  • 데이터스토어가 프로덕션급이 아님. Postgres, Redis, ClickHouse가 백업·복제 없이 단일 컨테이너로 실행돼요.
  • 영속성 보장 없음. 볼륨을 구성하지 않으면 데이터는 컨테이너와 함께 있어요.
  • 표면 축소. 관리형 시크릿, 관리형 Redis, 클라우드 코드 실행기는 Compose 설정의 일부가 아니에요.

프로덕션으로 이동

POC가 적합함을 증명했다면 클라우드에 배포해요. 각 가이드가 관리형 Kubernetes, 관리형 데이터베이스, 백업된 스토리지, 키리스 아이덴티티, 수평 확장을 프로비저닝해요.

AWS에 배포

GCP에 배포

Azure에 배포

더 알아보기