GitLab Duo 구성
GitLab v19.2제공 대상: GitLab Self-Managed, GitLab Dedicated for Government GitLab Duo는 소프트웨어 개발 수명 주기 전반에 걸쳐 도움을 주는 AI 네이티브 어시스턴트입니다. GitLab Duo는 다음을 사용하도록 구성할 수 있습니다.
제공 대상: GitLab Self-Managed, GitLab Dedicated for Government
GitLab Duo는 소프트웨어 개발 수명 주기 전반에 걸쳐 도움을 주는 AI 네이티브 어시스턴트입니다.
GitLab Duo는 다음을 사용하도록 구성할 수 있습니다.
-
클라우드 기반 AI Gateway(기본값): 공급업체 언어 모델을 사용하는 GitLab 호스팅 AI Gateway.
-
자체 호스팅 모델: 데이터와 보안을 완전히 제어할 수 있도록 직접 운영하는 AI Gateway 및 언어 모델.
-
하이브리드 구성: 일부 기능에는 자체 호스팅 모델을, 다른 기능에는 클라우드 기반 모델을 사용하는 구성.
사전 요구 사항#
-
사일런트 모드가 해제되어 있어야 합니다.
-
라이선스 키는 사용할 수 없습니다.
-
GitLab Duo Self-Hosted를 제외하고는 오프라인 라이선스로 GitLab Duo를 사용할 수 없습니다.
-
인스턴스를 실행하는 호스트는 HTTP/S 프록시 서버를 사용하는 경우에도 DNS로 공용 호스트 이름을 확인할 수 있어야 합니다.
GitLab 인스턴스에서 GitLab Duo로의 아웃바운드 연결 허용#
-
GitLab 애플리케이션 노드는 HTTP/2를 사용하여
https://duo-workflow-svc.runway.gitlab.net의 GitLab Duo Workflow에 연결해야 합니다. 애플리케이션과 서비스는 gRPC로 통신합니다. -
GitLab Duo Agent Platform 기능을 사용하려면 방화벽과 HTTP/S 프록시 서버가
https://를 사용하여 포트443으로duo-workflow-svc.runway.gitlab.net에 대한 아웃바운드 연결을 허용하고 HTTP/2 트래픽을 지원해야 합니다. -
인스턴스가 HTTP/S 프록시 서버를 통해 연결하는 경우에도 호스트는 DNS로 공용 호스트 이름을 확인할 수 있어야 합니다. 호스트 이름을 프록시 서버를 통해서만 확인할 수 있는 경우, GitLab Duo 상태 점검, GitLab Credits 대시보드, GitLab Duo Agent Platform과 같은 GitLab Duo 기능이 시간 초과되거나 실패할 수 있습니다. 자세한 내용은 이슈 602538을 참고하세요.
-
AI 기능은 장기 실행 HTTP 연결을 통해 응답을 스트리밍합니다. 최대 요청 시간 또는 유휴 시간 초과를 적용하는 HTTP/S 프록시 서버나 방화벽은 오류 없이 긴 응답을 중단시킬 수 있습니다. 경로에 있는 다른 구성 요소보다 더 긴 시간 초과 값으로 프록시를 구성하세요.
클라이언트에서 GitLab 인스턴스로의 인바운드 연결 허용#
GitLab 인스턴스는 IDE 클라이언트로부터의 인바운드 연결을 허용해야 합니다.
-
다음 헤더를 포함하는 WebSocket 프로토콜 업그레이드 요청을 허용합니다.
-
Connection: upgrade -
Upgrade: websocket -
HTTP/2프로토콜 지원 -
표준 WebSocket 보안 헤더:
Sec-WebSocket-*
-
-
wss://(WebSocket Secure) 프로토콜 지원을 활성화합니다. -
허용할 특정 엔드포인트를 추가합니다.
- 기본 엔드포인트:
wss://<customer-instance>/-/cable
- 기본 엔드포인트:
-
HTTP/2프로토콜이HTTP/1.1로 다운그레이드되지 않도록 합니다. -
포트:
443(HTTPS/WSS)
문제가 발생하는 경우:
-
wss://gitlab.example.com/-/cable및 기타.com도메인으로의 WebSocket 트래픽에 대한 제한이 있는지 확인합니다. -
Apache와 같은 리버스 프록시를 사용하는 경우, 로그에서 WebSocket connection to …. failures와 같은 GitLab Duo Chat 연결 문제가 나타날 수 있습니다.
이 문제를 해결하려면 프록시 설정을 편집합니다.
# Enable WebSocket reverse Proxy
# Needs proxy_wstunnel enabled
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]
러너로부터의 연결 허용#
플로우와 같이 러너를 사용하는 GitLab Duo Agent Platform 기능의 경우, 러너가 GitLab 인스턴스에 연결할 수 있어야 합니다.
클라이언트에서 GitLab 인스턴스로의 인바운드 연결과 동일한 연결이 러너에서 GitLab 인스턴스로의 아웃바운드 연결로 허용되어야 합니다.
또한, 러너는 다음에 연결할 수 있어야 합니다.
| 대상 | 포트 | 용도 |
|---|---|---|
| registry.npmjs.org | 443 | 런타임에 Duo CLI 패키지 다운로드 |
| registry.gitlab.com | 443 | 기본 Docker 이미지 다운로드(사용자 지정 이미지를 사용하지 않는 경우) |
조직에서 공용 npm 레지스트리에 대한 접근을 허용할 수 없는 경우, 필요한 종속성이 이미 설치된 사용자 지정 Docker 이미지를 사용할 수 있습니다.
러너의 GitLab Duo Agent Platform Service에 대한 연결은 GitLab 인스턴스를 통해 라우팅됩니다. 러너는 duo-workflow-svc.runway.gitlab.net에 직접 연결하지 않습니다. 포트 443의 duo-workflow-svc.runway.gitlab.net에 대한 방화벽 요구 사항은 러너가 아니라 GitLab 인스턴스에 적용됩니다. 러너 네트워크 구성은 GitLab 인스턴스로의 아웃바운드 HTTPS 트래픽을 허용해야 합니다.
GitLab과 사용 데이터 공유#
이력
- GitLab 18.9.1에서 도입됨.
서비스 품질 개선을 돕기 위해, GitLab Duo Agent Platform 기능에 대한 사용 데이터를 GitLab과 공유할 수 있습니다.
데이터 수집을 켜면, GitLab은 GitLab Duo 기능 사용에 대한 정보를 기록합니다. 이 데이터는 서비스 개선 및 디버깅 목적으로만 사용되며, AI 모델 학습에는 사용되지 않습니다.
수집되는 데이터에 대한 자세한 내용은 Agent Platform 사용 데이터를 참고하세요.
사전 요구 사항:
- GitLab 18.9.1 이상이어야 합니다.
확장 로깅을 켜려면:
-
오른쪽 상단 모서리에서 **관리자(Admin)**를 선택합니다.
-
왼쪽 사이드바에서 GitLab Duo를 선택합니다.
-
**구성 변경(Change configuration)**을 선택합니다.
-
사용 데이터 수집(Collect usage data) 체크박스를 선택합니다.
-
**변경 사항 저장(Save changes)**을 선택합니다.
자체 호스팅 모델에서의 데이터 사용#
자체 호스팅 AI Gateway 및 자체 호스팅 모델을 사용하는 경우, 상세 로그는 사용자의 인프라에 저장되며 GitLab과 공유되지 않습니다. GitLab과 데이터를 공유하려면, 자체 호스팅 AI Gateway가 외부 옵저버빌리티 서비스로 추적 데이터를 전송하도록 구성해야 합니다.
Service Ping을 사용하여 GitLab에 사용 데이터를 전송할 수 있습니다. 이 데이터는 텔레메트리 데이터와는 다릅니다.
GitLab Duo 상태 점검 실행#
상태: 베타
이력
-
GitLab 17.3에서 도입됨.
-
GitLab 17.5에서 상태 점검 보고서 다운로드 추가됨.
-
GitLab 19.1에서 파운데이셔널 플로우 준비 상태 점검이 추가됨.
인스턴스가 GitLab Duo 사용 요구 사항을 충족하는지 확인할 수 있습니다. 상태 점검이 완료되면, 통과 또는 실패 결과와 문제 유형이 표시됩니다. 상태 점검에서 하나라도 테스트가 실패하면, 사용자가 인스턴스에서 GitLab Duo 기능을 사용하지 못할 수 있습니다.
이 기능은 베타 기능입니다.
사전 요구 사항:
- 관리자여야 합니다.
상태 점검을 실행하려면:
-
오른쪽 상단 모서리에서 **관리자(Admin)**를 선택합니다.
-
왼쪽 사이드바에서 GitLab Duo를 선택합니다.
-
오른쪽 상단 모서리에서 **상태 점검 실행(Run health check)**을 선택합니다.
-
선택 사항. GitLab 17.5 이상에서는 상태 점검이 완료된 후 **보고서 다운로드(Download report)**를 선택하여 상태 점검 결과에 대한 상세 보고서를 저장할 수 있습니다.
다음 테스트가 수행됩니다.
| 테스트 | 설명 |
|---|---|
| AI Gateway | GitLab Duo Self-Hosted 모델 전용. AI Gateway URL이 환경 변수로 구성되어 있는지 테스트합니다. 이 연결은 AI Gateway를 사용하는 자체 호스팅 모델 배포에 필요합니다. |
| Network | 인스턴스가 customers.gitlab.com 및 cloud.gitlab.com에 연결할 수 있는지 테스트합니다. 인스턴스가 두 대상 중 하나에 연결할 수 없는 경우, 방화벽 또는 프록시 서버 설정이 연결을 허용하는지 확인하세요. |
| Synchronization | 구독이 다음 조건을 충족하는지 테스트합니다. - 활성화 코드로 활성화되었으며 customers.gitlab.com과 동기화할 수 있습니다. - 올바른 접근 자격 증명을 보유하고 있습니다. - 최근에 동기화되었습니다. 동기화되지 않았거나 접근 자격 증명이 없거나 만료된 경우, 구독 데이터를 수동으로 동기화할 수 있습니다. |
| Code Suggestions | GitLab Duo Self-Hosted 모델 전용. Code Suggestions를 사용할 수 있는지 테스트합니다. - 라이선스에 Code Suggestions 접근 권한이 포함되어 있습니다. - 기능을 사용하는 데 필요한 권한을 보유하고 있습니다. |
| GitLab Duo Agent Platform | 백엔드 서비스가 작동 중이며 접근 가능한지 테스트합니다. 이 서비스는 Agent Platform 및 GitLab Duo Agentic Chat과 같은 에이전트 기능에 필요합니다. GitLab Duo Self-Hosted의 경우, GitLab Duo Agent Platform 기능에 대해 자체 호스팅 모델을 선택하기 전까지 이 테스트는 통과하지 않습니다. 또한 다음 파운데이셔널 플로우 사전 요구 사항을 확인합니다. - 인스턴스 수준 플로우 실행 설정이 활성화되어 있습니다. - 인스턴스 수준 파운데이셔널 플로우 설정이 활성화되어 있습니다. - gitlab--duo 태그가 있는 활성 인스턴스 러너가 하나 이상 등록 및 연결되어 있으며 Docker 호환 실행기를 사용합니다. |
| System exchange | 인스턴스에서 Code Suggestions를 사용할 수 있는지 테스트합니다. System exchange 평가가 실패하면, 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다. |
버전 17.10 이전의 GitLab 인스턴스에서 상태 점검에 문제가 발생하는 경우, 문제 해결 페이지를 참고하세요.
기타 호스팅 옵션#
기본적으로 GitLab Duo는 지원되는 AI 공급업체 언어 모델을 사용하며, GitLab이 호스팅하는 클라우드 기반 AI Gateway를 통해 데이터를 전송합니다.
직접 언어 모델이나 AI Gateway를 호스팅하려면:
-
GitLab Duo Self-Hosted를 사용하여 AI Gateway를 호스팅하고 지원되는 자체 호스팅 모델을 사용할 수 있습니다. 이 옵션은 데이터와 보안을 완전히 제어할 수 있습니다.
-
일부 기능에 대해서는 직접 AI Gateway와 모델을 호스팅하고 다른 기능은 GitLab AI Gateway 및 공급업체 모델을 사용하도록 구성하는 하이브리드 구성을 사용합니다.
GitLab Dedicated for Government#
GitLab Dedicated for Government의 경우, FedRAMP 승인 모델과 함께 GitLab Duo Self-Hosted를 사용해야 합니다. 클라우드 기반 AI Gateway 및 공급업체 모델은 GitLab Dedicated for Government에서 사용할 수 없습니다.
자세한 내용은 GitLab Dedicated for Government에서 GitLab Duo 구성을 참고하세요.