에어갭 Confident Agent 설정

에어갭 Confident Agent 설정 (Set Up an Air-Gapped Confident Agent)

에어갭 또는 이그레스 제한 네트워크에 Confident Agent를 배포하는 방법을 설명하는 문서예요. 이 문서에서는 작동 방식, 요구사항, 아웃바운드 연결, 이미지 배포, 배포와 연결 검증을 다뤄요.

출처: 문서

본문

개요 (Overview)

Confident Agent는 잠긴 네트워크를 위해 설계됐어요. 인바운드 연결을 절대 받지 않고, WebSocket Secure(WSS) 로 Confident AI에 아웃바운드 연결을 걸어 터널을 유지해요. 그래서 평가 트래픽이 내부 엔드포인트를 공개 인터넷에 노출하지 않고도 내부 엔드포인트에 닿아요. 이는 인바운드 포트가 닫히고 아웃바운드 트래픽이 엄격히 제어되는 에어갭·이그레스 제한 환경에 잘 맞아요.

제로 이그레스인 완전 에어갭 네트워크는 Confident AI의 클라우드 릴레이에 닿을 수 없어요. 에이전트는 최소한 Confident AI로의 아웃바운드 WSS 접근이 필요해요(아래 아웃바운드 연결 참조). 아웃바운드 접근이 전혀 허용되지 않으면, 전체 플랫폼이 네트워크 안에서 돌도록 Self-Hosting을 대신 사용해요.

작동 방식 (How It Works)

에이전트는 포트 443에서 Confident AI 릴레이로 단일 아웃바운드 WSS 연결을 만듭니다. 모든 평가 요청과 응답은 이 하나의 터널을 통해 흐르고, 인바운드로 노출할 것은 없어요.

요구사항 (Requirements)

  • 에이전트를 실행하는 머신에서 Confident AI 릴레이로 포트 443에서 아웃바운드 WSS. WebSocket Secure가 에이전트가 Confident AI에 닿는 유일한 프로토콜이에요.
  • 에이전트에서 내부 API 엔드포인트로의 인네트워크 접근.
  • 인바운드 포트 없음 — 네트워크로 들어오는 트래픽을 위해 열어야 할 것은 없어요.
  • 내부 레지스트리에 넣을 confidentai/confident-agent 컨테이너 이미지 (내부 레지스트리로 가져오는 방법은 이미지 배포 참조).

아웃바운드 연결 (Outbound Connectivity)

에이전트는 WSS로 Confident AI에 다음 주소로 연결해요:

wss://deepeval.confident-ai.com/ws/relay

이그레스 방화벽이 포트 443에서 이 아웃바운드 연결을 허용해야 해요. 허용 목록에는 두 가지 옵션이 있어요:

권장 — 443에서 모든 아웃바운드 허용

포트 443에서 제한 없는 아웃바운드 HTTPS/WSS를 허용해요. 가장 단순하고 탄력적인 옵션이에요. Confident AI의 기본 인프라 변화(로드 밸런서 뒤의 IP 순환 같은)에도 여러분 쪽에서 아무 조치 없이 견뎌요.

제한 — Confident AI 릴레이만 허용 목록

블랭킷 아웃바운드 접근을 금지하는 정책이라면, 에이전트가 WebSocket으로 릴레이에 닿는 데 필요한 대상만 허용 목록에 넣어요. 가능하면 호스트 이름(deepeval.confident-ai.com)으로 허용 목록을 만들어 DNS 기반 규칙이 인프라 변경에서도 계속 작동하게 해요.

방화벽이 IP 기반 허용 목록을 요구한다면, 릴레이가 WebSocket 연결을 받는 특정 IP 주소가 필요해요.

Confident AI 릴레이 IP는 바뀔 수 있어요. IP 기반 허용 목록은 깨지기 쉽고 기본 인프라가 순환하면 연결이 끊길 수 있어요. 정책이 허락한다면 호스트 이름 기반 규칙을 선호하거나 443에서 모든 아웃바운드를 허용하세요.

IP 기반 이그레스 허용 목록에 릴레이 IP가 필요하세요? Confident AI 팀에 연락하면 릴레이 엔드포인트의 현재 IP를 제공해 드려요.

이미지 배포 (Distributing the Image)

에어갭 환경에서는 배포 호스트가 보통 Docker Hub에서 pull할 수 없어요. confidentai/confident-agent 이미지를 격리된 네트워크가 닿을 수 있는 레지스트리로 미러링해요.

인터넷 접근이 있는 머신에서 이미지를 pull하고 내부 레지스트리로 푸시해요:

docker pull confidentai/confident-agent
docker tag confidentai/confident-agent <your-internal-registry>/confident-agent
docker push <your-internal-registry>/confident-agent

또는 이미지를 tarball로 저장해 에어갭을 가로질러 전송해요:

# On a connected machine
docker save confidentai/confident-agent -o confident-agent.tar

# After transferring confident-agent.tar into the isolated network
docker load -i confident-agent.tar

에이전트 배포 (Deploying the Agent)

이미지가 네트워크 안에서 사용 가능해지면, 내부 레지스트리(또는 로드된 이미지)와 릴레이 URL을 가리켜 에이전트를 실행해요.

Docker

docker run -d \
  -e CONFIDENT_API_KEY=<your-api-key> \
  -e CONFIDENT_WS_BASE_URL=wss://deepeval.confident-ai.com/ws/relay \
  <your-internal-registry>/confident-agent

Docker Compose

services:
  confident-agent:
    image: <your-internal-registry>/confident-agent
    restart: unless-stopped
    environment:
      - CONFIDENT_API_KEY=${CONFIDENT_API_KEY}
      - CONFIDENT_WS_BASE_URL=${CONFIDENT_WS_BASE_URL:-wss://deepeval.confident-ai.com/ws/relay}
docker compose up -d

전체 설정 옵션 목록은 Confident Agent → 환경 변수를 참고해요.

연결 검증 (Verifying Connectivity)

에이전트를 시작한 뒤 아웃바운드 터널이 올라왔는지 확인해요:

  • 컨테이너 로그에서 성공적인 WSS 연결 메시지를 확인해요:

    docker logs -f confident-agent
    
  • Confident AI에서 AI Connection을 열고 Ping Endpoint를 클릭해요. 200 응답은 요청이 에이전트를 통해 내부 엔드포인트로 터널링되어 돌아왔다는 뜻이에요.

연결이 맺어지지 않으면 가장 흔한 원인은 이그레스 방화벽이 443 아웃바운드 WSS를 막는 것이에요 — 아웃바운드 연결을 다시 살펴보세요.

에이전트는 자동으로 재연결돼요. WSS 터널이 끊겨도(예: 네트워크 블립) 수동 개입 없이 다시 맺어져요.

더 알아보기