InfoGrab DocsInfoGrab Docs

GitLab Duo 구성

요약

GitLab Duo는 소프트웨어 개발 수명 주기 전반을 지원하는 AI 네이티브 어시스턴트입니다. GitLab Duo는 다음 방식으로 구성할 수 있습니다. GitLab 인스턴스는 IDE 클라이언트의 인바운드 연결을 허용해야 합니다.

GitLab Duo는 소프트웨어 개발 수명 주기 전반을 지원하는 AI 네이티브 어시스턴트입니다.

GitLab Duo는 다음 방식으로 구성할 수 있습니다.

  • 클라우드 기반 AI Gateway(기본값): 벤더 언어 모델을 사용하는 GitLab 호스팅 AI Gateway.
  • 자체 호스팅 모델: 데이터와 보안을 전면 통제할 수 있는 자체 AI Gateway와 언어 모델.
  • 하이브리드 구성: 일부 기능에는 자체 호스팅 모델을, 나머지 기능에는 클라우드 기반 모델을 사용.

사전 요구 사항#

GitLab 인스턴스에서 GitLab Duo로의 아웃바운드 연결 허용#

  • GitLab 애플리케이션 노드는 HTTP/2로 https://duo-workflow-svc.runway.gitlab.net의 GitLab Duo Workflow에 연결해야 합니다. 애플리케이션과 서비스는 gRPC로 통신합니다.
  • GitLab Duo Agent Platform 기능을 사용하려면 방화벽과 HTTP/S 프록시 서버가 443 포트에서 https://로 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 클라이언트의 인바운드 연결을 허용해야 합니다.

  1. 다음 헤더를 포함한 WebSocket 프로토콜 업그레이드 요청을 허용합니다.
    • Connection: upgrade
    • Upgrade: websocket
    • HTTP/2 프로토콜 지원
    • 표준 WebSocket 보안 헤더: Sec-WebSocket-*
  2. wss://(WebSocket Secure) 프로토콜 지원을 활성화합니다.
  3. 허용할 엔드포인트를 지정해 추가합니다.
    • 기본 엔드포인트: 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 연결 문제가 나타날 수 있습니다.

이 문제를 해결하려면 프록시 설정을 수정합니다.

Apache 2.4.47 이상에서는 ProxyPass 지시문에 upgrade=websocket을 추가하여 Apache가 WebSocket 트래픽에 대해 연결을 업그레이드하도록 합니다.

# Needs proxy_http and proxy_wstunnel enabled
ProxyPass / http://127.0.0.1:8181/ upgrade=websocket
ProxyPassReverse / http://127.0.0.1:8181/

이전 Apache 버전에서는 재작성 규칙을 사용하여 WebSocket 트래픽을 ws:// 프로토콜로 라우팅합니다.

# 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]

프록시에서 WebSocket 업그레이드가 누락되면 머지 리퀘스트와 파이프라인 상태의 실시간 업데이트처럼 Action Cable(/-/cable)로 스트리밍하는 다른 GitLab 기능도 동작하지 않습니다.

러너로부터의 연결 허용#

플로처럼 러너를 사용하는 GitLab Duo Agent Platform 기능을 사용하려면 러너가 GitLab 인스턴스에 연결할 수 있어야 합니다. 자세한 내용은 플로를 실행하도록 러너 구성을 참고합니다.

클라이언트에서 GitLab 인스턴스로의 인바운드 연결과 동일한 조건을 러너에서 GitLab 인스턴스로 향하는 아웃바운드 연결에도 허용해야 합니다.

또한 러너는 다음 대상에 연결할 수 있어야 합니다.

Destination Port Purpose
gitlab.com 443 런타임에 패키지 레지스트리에서 GitLab Duo CLI 바이너리를 다운로드
registry.gitlab.com 443 기본 Docker 이미지를 다운로드(사용자 정의 이미지를 사용하지 않는 경우)

조직에서 gitlab.com 액세스를 허용할 수 없는 경우 GitLab Duo CLI가 이미 설치된 사용자 정의 Docker 이미지를 사용할 수 있습니다.

Note

러너와 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 이상을 사용합니다

확장 로깅을 켜려면 다음 단계를 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 GitLab Duo를 선택합니다.
  3. Change configuration을 선택합니다.
  4. Collect usage data 체크박스를 선택합니다.
  5. Save changes를 선택합니다.

자체 호스팅 모델을 사용하는 경우의 데이터 사용#

자체 호스팅 AI Gateway와 자체 호스팅 모델을 사용하면 상세 로그가 자체 인프라에 저장되며 GitLab과 공유되지 않습니다. GitLab과 데이터를 공유하려면 자체 호스팅 AI Gateway가 외부 관측 서비스로 트레이스를 보내도록 구성해야 합니다.

Service Ping을 사용해 GitLab으로 사용 데이터를 보낼 수 있습니다. 이 데이터는 텔레메트리 데이터와 다릅니다.

GitLab Duo 헬스 체크 실행#

히스토리

인스턴스가 GitLab Duo 사용 요건을 충족하는지 확인할 수 있습니다. 헬스 체크가 끝나면 통과 또는 실패 결과와 문제 유형이 표시됩니다. 헬스 체크에서 하나라도 실패하면 인스턴스 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다.

상태 점검은 베타 기능입니다.

사전 요구 사항:

  • 관리자여야 합니다.

헬스 체크를 실행하려면 다음 단계를 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 GitLab Duo를 선택합니다.
  3. 오른쪽 위 모서리에서 Run health check를 선택합니다.
  4. 선택 사항. GitLab 17.5 이상에서는 헬스 체크가 끝난 뒤 Download report를 선택해 헬스 체크 결과 상세 보고서를 저장할 수 있습니다.

다음 테스트를 수행합니다.

Test Description
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를 사용할 수 있는지 테스트합니다. 시스템 교환 평가가 실패하면 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다.
Usage billing 인스턴스가 Customers Portal, AI Gateway, GitLab Duo Workflow Service를 포함한 사용량 청구 엔드포인트에 연결할 수 있는지 테스트합니다.

17.10 이전 버전의 GitLab 인스턴스에서 헬스 체크에 문제가 발생하면 문제 해결 페이지를 참고합니다.

기타 호스팅 옵션#

기본적으로 GitLab Duo는 지원되는 AI 벤더 언어 모델을 사용하며 GitLab이 호스팅하는 클라우드 기반 AI Gateway를 통해 데이터를 전송합니다.

자체 언어 모델이나 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 구성을 참고합니다.

관련 주제#

GitLab Duo 구성

GitLab v19.5
원문 보기

요약

GitLab Duo는 소프트웨어 개발 수명 주기 전반을 지원하는 AI 네이티브 어시스턴트입니다. GitLab Duo는 다음 방식으로 구성할 수 있습니다. GitLab 인스턴스는 IDE 클라이언트의 인바운드 연결을 허용해야 합니다.

GitLab Duo는 소프트웨어 개발 수명 주기 전반을 지원하는 AI 네이티브 어시스턴트입니다.

GitLab Duo는 다음 방식으로 구성할 수 있습니다.

  • 클라우드 기반 AI Gateway(기본값): 벤더 언어 모델을 사용하는 GitLab 호스팅 AI Gateway.
  • 자체 호스팅 모델: 데이터와 보안을 전면 통제할 수 있는 자체 AI Gateway와 언어 모델.
  • 하이브리드 구성: 일부 기능에는 자체 호스팅 모델을, 나머지 기능에는 클라우드 기반 모델을 사용.

사전 요구 사항#

GitLab 인스턴스에서 GitLab Duo로의 아웃바운드 연결 허용#

  • GitLab 애플리케이션 노드는 HTTP/2로 https://duo-workflow-svc.runway.gitlab.net의 GitLab Duo Workflow에 연결해야 합니다. 애플리케이션과 서비스는 gRPC로 통신합니다.
  • GitLab Duo Agent Platform 기능을 사용하려면 방화벽과 HTTP/S 프록시 서버가 443 포트에서 https://로 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 클라이언트의 인바운드 연결을 허용해야 합니다.

  1. 다음 헤더를 포함한 WebSocket 프로토콜 업그레이드 요청을 허용합니다.
    • Connection: upgrade
    • Upgrade: websocket
    • HTTP/2 프로토콜 지원
    • 표준 WebSocket 보안 헤더: Sec-WebSocket-*
  2. wss://(WebSocket Secure) 프로토콜 지원을 활성화합니다.
  3. 허용할 엔드포인트를 지정해 추가합니다.
    • 기본 엔드포인트: 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 연결 문제가 나타날 수 있습니다.

이 문제를 해결하려면 프록시 설정을 수정합니다.

Apache 2.4.47 이상에서는 ProxyPass 지시문에 upgrade=websocket을 추가하여 Apache가 WebSocket 트래픽에 대해 연결을 업그레이드하도록 합니다.

# Needs proxy_http and proxy_wstunnel enabled
ProxyPass / http://127.0.0.1:8181/ upgrade=websocket
ProxyPassReverse / http://127.0.0.1:8181/

이전 Apache 버전에서는 재작성 규칙을 사용하여 WebSocket 트래픽을 ws:// 프로토콜로 라우팅합니다.

# 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]

프록시에서 WebSocket 업그레이드가 누락되면 머지 리퀘스트와 파이프라인 상태의 실시간 업데이트처럼 Action Cable(/-/cable)로 스트리밍하는 다른 GitLab 기능도 동작하지 않습니다.

러너로부터의 연결 허용#

플로처럼 러너를 사용하는 GitLab Duo Agent Platform 기능을 사용하려면 러너가 GitLab 인스턴스에 연결할 수 있어야 합니다. 자세한 내용은 플로를 실행하도록 러너 구성을 참고합니다.

클라이언트에서 GitLab 인스턴스로의 인바운드 연결과 동일한 조건을 러너에서 GitLab 인스턴스로 향하는 아웃바운드 연결에도 허용해야 합니다.

또한 러너는 다음 대상에 연결할 수 있어야 합니다.

Destination Port Purpose
gitlab.com 443 런타임에 패키지 레지스트리에서 GitLab Duo CLI 바이너리를 다운로드
registry.gitlab.com 443 기본 Docker 이미지를 다운로드(사용자 정의 이미지를 사용하지 않는 경우)

조직에서 gitlab.com 액세스를 허용할 수 없는 경우 GitLab Duo CLI가 이미 설치된 사용자 정의 Docker 이미지를 사용할 수 있습니다.

Note

러너와 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 이상을 사용합니다

확장 로깅을 켜려면 다음 단계를 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 GitLab Duo를 선택합니다.
  3. Change configuration을 선택합니다.
  4. Collect usage data 체크박스를 선택합니다.
  5. Save changes를 선택합니다.

자체 호스팅 모델을 사용하는 경우의 데이터 사용#

자체 호스팅 AI Gateway와 자체 호스팅 모델을 사용하면 상세 로그가 자체 인프라에 저장되며 GitLab과 공유되지 않습니다. GitLab과 데이터를 공유하려면 자체 호스팅 AI Gateway가 외부 관측 서비스로 트레이스를 보내도록 구성해야 합니다.

Service Ping을 사용해 GitLab으로 사용 데이터를 보낼 수 있습니다. 이 데이터는 텔레메트리 데이터와 다릅니다.

GitLab Duo 헬스 체크 실행#

히스토리

인스턴스가 GitLab Duo 사용 요건을 충족하는지 확인할 수 있습니다. 헬스 체크가 끝나면 통과 또는 실패 결과와 문제 유형이 표시됩니다. 헬스 체크에서 하나라도 실패하면 인스턴스 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다.

상태 점검은 베타 기능입니다.

사전 요구 사항:

  • 관리자여야 합니다.

헬스 체크를 실행하려면 다음 단계를 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 GitLab Duo를 선택합니다.
  3. 오른쪽 위 모서리에서 Run health check를 선택합니다.
  4. 선택 사항. GitLab 17.5 이상에서는 헬스 체크가 끝난 뒤 Download report를 선택해 헬스 체크 결과 상세 보고서를 저장할 수 있습니다.

다음 테스트를 수행합니다.

Test Description
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를 사용할 수 있는지 테스트합니다. 시스템 교환 평가가 실패하면 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다.
Usage billing 인스턴스가 Customers Portal, AI Gateway, GitLab Duo Workflow Service를 포함한 사용량 청구 엔드포인트에 연결할 수 있는지 테스트합니다.

17.10 이전 버전의 GitLab 인스턴스에서 헬스 체크에 문제가 발생하면 문제 해결 페이지를 참고합니다.

기타 호스팅 옵션#

기본적으로 GitLab Duo는 지원되는 AI 벤더 언어 모델을 사용하며 GitLab이 호스팅하는 클라우드 기반 AI Gateway를 통해 데이터를 전송합니다.

자체 언어 모델이나 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 구성을 참고합니다.

관련 주제#