셀프 호스팅 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, 관리형 데이터베이스, 백업된 스토리지, 키리스 아이덴티티, 수평 확장을 프로비저닝해요.