Azure에서 셀프 호스팅(Self-Hosting on Azure)
Azure에서 셀프 호스팅(Self-Hosting on Azure)
Azure에서 전체 Confident AI 플랫폼을 여러분의 구독과 리전 안에서 실행하는 방법이에요. 공개된 Terraform 모듈이 AKS 클러스터, 관리형 PostgreSQL Flexible Server, Blob 컨테이너가 있는 Storage 계정을 세우고, confident-ai Helm 차트가 그 위에 애플리케이션을 배포해요. Azure에서 앱은 시크릿으로 보관된 연결 문자열(connection string)로 Blob 스토리지에 접근해요.
출처: 문서
본문
두 단계로 실행해요: 인프라가 Terraform으로 클라우드 리소스를 프로비저닝하고, Helm으로 배포가 앱을 설치해 HTTPS로 노출해요. Terraform 시간 15-20분에 차트가 올라오는 몇 분이 추가로 걸릴 것으로 예상하세요.

Azure 참조 아키텍처
Terraform이 프로비저닝하는 것
모듈은 이미 있는 리소스 그룹과 VNet 안에 배포돼요. 절대 새로 만들지 않아요.
AKS
워커 노드 풀, OIDC 발급자, Workload Identity가 활성화된 비공개 클러스터.
PostgreSQL Flexible Server
앱의 기본 데이터베이스로, VNet 통합되고 비공개이며 고가용성을 갖춰요.
Azure Storage
테스트 케이스용과 페이로드용 Blob 컨테이너 두 개가 있는 Storage 계정.
연결 문자열 접근
앱은 시크릿으로 보관된 연결 문자열로 Blob 스토리지에 접근해요.
Azure Function 코드 실행기
코드 기반 및 트랜스포머 지표에 필요해요: 미러링된 이미지를 실행하는 Function.
Key Vault + 관리형 Redis
권장: External Secrets Operator용 볼트와 관리형 Redis.
ClickHouse는 클러스터 안에서 실행돼요 (Helm 차트가 설치해요). 권장 설정은 시크릿을 Key Vault에 두고 Redis를 Azure Managed Redis에서 실행하는 거예요. 클러스터 안의 Redis와 Kubernetes Secret은 더 간단한 대안으로 계속 사용할 수 있어요. 인그레스 컨트롤러나 External Secrets Operator 같은 클러스터 애드온은 선택 사항이며 Terraform이 설치하지 않아요.
어떻게 맞물리는지
- Blob은 연결 문자열을, 나머지는 키리스. 앱은 시크릿으로 보관된
AZURE_STORAGE_CONNECTION_STRING로 Blob 스토리지에 접근해요. AKS는 여전히 Workload Identity를 활성화하고, External Secrets Operator가 페더레이션 자격 증명을 통해 Key Vault를 읽는 데 쓰죠. - 데이터 플레인은 비공개. AKS 노드와 Flexible Server는 VNet 안에 있고, 데이터베이스는 위임된 서브넷과 비공개 DNS 영역을 사용해요. 클러스터 API 엔드포인트를 공개할지(노트북에서
kubectl,helm쓰기 편함) 비공개로만 할지 선택할 수 있어요. - 트래픽은 한 방향으로만 들어와요. 여러분의 애플리케이션이 트레이스를
confident-otel로 보내고, 그것이 ClickHouse에 기록돼요. 대시보드와 API는 Flexible Server와 ClickHouse에서 읽어요. 평가는confident-evals와 그 워커에서 실행되며, 코드·트랜스포머 지표를 위해 여러분의 모델 제공자와 Azure Function 샌드박스를 호출해요. 데이터셋과 페이로드는 Blob 스토리지에 있어요.
배포된 서비스
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 | 캐시와 큐 (Azure Managed Redis를 쓰지 않으면 클러스터 내부) |
각각이 로드에 따라 어떻게 커지는지는 Scaling을 참고하세요.
기본값
| Component | 기본값 |
|---|---|
| Node pool | 4 x Standard_D8s_v5 |
| Region | centralus |
| Cluster endpoint | 비공개 (confident_public_aks = true면 머신에서 접근 가능) |
| PostgreSQL | GP_Standard_D4s_v3, 비공개, 고가용성 |
| Storage class | managed-csi (클러스터 내부 ClickHouse와 Redis 디스크) |
위의 모든 것은 Terraform 모듈에서 오버라이드할 수 있어요. 전체 목록은 모듈 입력값을 참고하세요.
모듈
모듈은 Terraform Registry에 게시되고 소스는 GitHub에 있어요.
Terraform Registry
confident-ai/confident-ai/azurerm
GitHub 소스
terraform-azurerm-confident-ai
사전 요구 사항
terraform(≥ 1.5),azCLI,kubectl,helm(≥ 3.8), 그리고docker(코드 샌드박스 이미지 미러링용).az login, provider용 구독 설정:export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv).- Confident AI에서: 이미지 풀 자격 증명과
CONFIDENT_LICENSE_KEY(Helm으로 배포 참고).
다음 단계
인프라
Terraform으로 AKS, PostgreSQL, Blob 스토리지 프로비저닝.
Helm으로 배포
앱을 설치하고 HTTPS로 노출.