InfoGrab Docs

GitLab Duo Self-Hosted: Ollama 통합을 포함한 완전한 AWS/Google Cloud 배포 가이드

요약

이 문서는 Ollama에서 Mistral 모델을 실행하는 자체 호스팅 대형 언어 모델 (LLM)과 함께 GitLab 및 GitLab Duo의 설치 및 통합에 대해 설명합니다. 이 가이드는 원하는 설정을 작동시키기 위한 포괄적인 엔드투엔드 지침입니다.

이 문서는 Ollama에서 Mistral 모델을 실행하는 자체 호스팅 대형 언어 모델 (LLM)과 함께 GitLab 및 GitLab Duo의 설치 및 통합에 대해 설명합니다. 이 가이드는 3개의 가상 머신을 사용하는 설정을 설명하며 AWS 또는 GCP에서 따를 수 있습니다. 물론 이 프로세스는 다른 배포 플랫폼에도 적용 가능합니다.

이 가이드는 원하는 설정을 작동시키기 위한 포괄적인 엔드투엔드 지침입니다. 최종 구성 생성을 지원하기 위해 사용된 GitLab 문서의 여러 영역에 대한 참조를 언급합니다. 참조된 문서는 특정 시나리오에 맞게 구현을 조정하는 데 더 많은 배경이 필요할 때 중요합니다.

사전 요구 사항#

가상 머신#

리소스 및 운영 체제#

GitLab, GitLab AI Gateway 및 Ollama 각각을 별도의 가상 머신에 설치합니다. 이 가이드에서 Ubuntu 24.0x를 사용했지만 조직의 요구 사항과 선호도에 맞는 Unix 기반 운영 체제를 자유롭게 선택할 수 있습니다. 그러나 이 설정에서는 Unix 기반 운영 체제를 사용하는 것이 필수입니다. 이는 시스템 안정성, 보안 및 필요한 소프트웨어 스택과의 호환성을 보장합니다. 이 설정은 테스트 및 평가 단계를 위한 비용과 성능 간의 적절한 균형을 제공하지만, 사용 요구 사항과 팀 크기에 따라 프로덕션으로 전환 시 GPU 인스턴스 유형을 업그레이드해야 할 수 있습니다.

GCP AWS OS 디스크
GitLab c2-standard-4 c6xlarge Ubuntu 24 50 GB
AI Gateway e2-medium t2.medium Ubuntu 24 20 GB
Ollama n1-standard-4 g4dn.xlarge Ubuntu 24 50 GB

컴포넌트 및 목적에 대한 자세한 내용은 AI Gateway를 참조하세요.

Mermaid 다이어그램 (7줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart LR
    accTitle: GitLab Duo Self-Hosted 아키텍처
    accDescr: GitLab Ultimate에서 AI Gateway로의 흐름을 보여주고, Ollama에서 실행 중인 Mistral에 연결됩니다.
A[GitLab<br/>Ultimate] --> C
C[GitLab&lt;br/&gt;AI Gateway] --&gt; B[Ollama&lt;br/&gt;Mistral]</code></pre></details></div>

이러한 컴포넌트들은 함께 작동하여 Self-Hosted AI 기능을 실현합니다. 이 가이드는 Ollama를 LLM 서버로 사용하여 완전한 자체 호스팅 AI 환경을 구축하기 위한 자세한 지침을 제공합니다.

Note

완전한 프로덕션 환경의 경우, 공식 문서는 1x NVIDIA A100 (40 GB)과 같은 더 강력한 GPU 인스턴스를 권장합니다. 하지만 g4dn.xlarge 인스턴스 유형은 소수 팀의 평가 목적으로는 충분합니다.

네트워킹#

GitLab에 대한 접근을 활성화하려면 정적 공개 IP 주소 (AWS의 탄력적 IP 또는 Google Cloud의 외부 IP)가 필요합니다. 다른 모든 컴포넌트는 내부 통신을 위해 정적 내부 IP 주소를 사용할 수 있고 사용해야 합니다. 모든 VM이 동일한 네트워크에 있고 직접 통신할 수 있다고 가정합니다.

공개 IP 프라이빗 IP
GitLab yes yes
AI Gateway no yes
Ollama no yes

내부 IP를 사용하는 이유:

  • 내부 IP는 AWS/Google Cloud에서 인스턴스의 수명 동안 정적으로 유지됩니다.
  • GitLab 서버만 외부 접근이 필요하며, Ollama와 같은 다른 컴포넌트는 내부 통신에 의존합니다.
  • 이 접근 방식은 공개 IP 주소에 대한 비용을 방지하여 비용을 절감하고 LLM 서버를 인터넷에서 접근할 수 없게 하여 보안을 강화합니다.

GitLab#

이 가이드의 나머지 부분은 다음 요구 사항을 충족하는 GitLab 인스턴스가 이미 실행 중이라고 가정합니다:

라이선스#

GitLab Duo Self-Hosted를 운영하려면 GitLab Ultimate 라이선스와 GitLab Duo Enterprise 라이선스가 모두 필요합니다. GitLab Ultimate 라이선스는 온라인 또는 오프라인 라이선스 옵션 중 하나와 함께 작동합니다. 이 문서는 두 라이선스가 이미 확보되어 구현에 사용할 수 있다고 가정합니다.

라이선스 스크린샷

라이선스 스크린샷

SSL/TLS#

GitLab 인스턴스에 유효한 SSL 인증서 (예: Let's Encrypt)가 구성되어 있어야 합니다. 이것은 단순한 보안 모범 사례가 아니라 기술적 요구 사항입니다:

  • AI Gateway 시스템 (2025년 1월 기준)은 GitLab과 통신할 때 적절한 SSL 인증을 엄격하게 요구합니다
  • AI Gateway는 자체 서명된 인증서를 허용하지 않습니다
  • 비SSL 연결 (HTTP)도 지원되지 않습니다

GitLab은 편리한 자동화된 SSL 설정 프로세스를 제공합니다:

  • GitLab 설치 중에 https:// 접두사가 있는 URL을 지정하기만 하면 됩니다
  • GitLab은 자동으로 다음을 수행합니다:
    • Let's Encrypt SSL 인증서 획득
    • 인증서 설치
    • HTTPS 구성
  • 수동 SSL 인증서 관리가 필요하지 않습니다

GitLab 설치 중 절차는 다음과 같습니다:

  1. GitLab 인스턴스와 공개 및 정적 IP 주소를 할당하고 연결합니다
  2. 해당 주소를 가리키도록 DNS 레코드를 구성합니다
  3. GitLab 설치 중에 HTTPS URL을 사용합니다 (예: https://gitlab.yourdomain.com)
  4. GitLab이 SSL 인증서 설정을 자동으로 처리하도록 합니다

자세한 내용은 문서 페이지를 참조하세요.

소개#

GitLab Duo Self-Hosted를 설정하기 전에 AI가 어떻게 작동하는지 이해하는 것이 중요합니다. AI 모델은 데이터로 훈련된 AI의 두뇌입니다. 이 두뇌는 작동하기 위한 프레임워크가 필요하며, 이를 LLM 서빙 플랫폼 또는 간단히 "서빙 플랫폼"이라고 합니다. AWS에서는 "Amazon Bedrock", Azure에서는 "Azure OpenAI Service", ChatGPT의 경우 그들의 플랫폼, Anthropic의 경우 "Claude"입니다. 자체 호스팅 모델의 경우 Ollama가 일반적인 선택입니다.

예를 들어:

  • AWS에서 서빙 플랫폼은 Amazon Bedrock입니다.
  • Azure에서는 Azure OpenAI Service입니다.
  • ChatGPT의 경우 OpenAI의 독점 플랫폼입니다
  • Anthropic의 경우 서빙 플랫폼은 Claude입니다.

AI 모델을 직접 호스팅하는 경우 서빙 플랫폼도 선택해야 합니다. 자체 호스팅 모델에 인기 있는 옵션은 Ollama입니다.

이 비유에서 ChatGPT의 두뇌 부분은 GPT-4 모델이며, Anthropic 생태계에서는 Claude 3.7 Sonnet 모델입니다. 서빙 플랫폼은 두뇌를 세상과 연결하여 효과적으로 "생각"하고 상호 작용할 수 있게 하는 중요한 프레임워크 역할을 합니다.

지원되는 서빙 플랫폼과 모델에 대한 자세한 내용은 LLM 서빙 플랫폼모델을 참조하세요.

Ollama란 무엇인가?

Ollama는 로컬 환경에서 대형 언어 모델 (LLM)을 실행하기 위한 간소화된 오픈 소스 프레임워크입니다. 전통적으로 복잡한 AI 모델 배포 프로세스를 단순화하여 효율적이고 유연하며 확장 가능한 AI 솔루션을 찾는 개인 및 조직에게 접근 가능하게 만듭니다.

주요 특징:

  1. 간소화된 배포: 사용자 친화적인 명령줄 인터페이스로 빠른 설정과 편리한 설치 보장.
  2. 광범위한 모델 지원: Llama 2, Mistral, Code Llama와 같은 인기 있는 오픈 소스 모델과 호환.
  3. 최적화된 성능: 리소스 효율성을 위해 GPU 및 CPU 환경 모두에서 원활하게 작동.
  4. 통합 준비 완료: 기존 도구 및 워크플로우와 쉽게 통합할 수 있는 OpenAI 호환 API.
  5. 컨테이너 불필요: Docker 또는 컨테이너화된 환경 없이 호스트 시스템에서 직접 실행.
  6. 다양한 호스팅 옵션: 로컬 머신, 온프레미스 서버 또는 클라우드 GPU 인스턴스에 배포 가능.

단순성과 성능을 위해 설계된 Ollama는 전통적인 AI 인프라의 복잡성 없이 LLM의 힘을 활용할 수 있게 해줍니다. 설정 및 지원 모델에 대한 자세한 내용은 문서의 뒷부분에서 다룹니다.

설치#

AI Gateway#

공식 설치 가이드는 GitLab AI Gateway 설치에서 확인할 수 있지만, AI Gateway 설정을 위한 간소화된 접근 방법을 소개합니다. 2025년 1월 기준으로 이미지 gitlab/model-gateway:self-hosted-v17.6.0-ee가 GitLab 17.7과 함께 작동하는 것이 검증되었습니다.

  1. 다음을 확인합니다:

    • API Gateway VM에 대한 TCP 포트 5052가 허용되어 있는지 확인합니다 (보안 그룹 구성 확인)
    • 다음 코드 스니펫에서 GITLAB_DOMAIN을 YOUR GitLab 인스턴스의 도메인 이름으로 교체합니다:
  2. GitLab AI Gateway를 시작하려면 다음 명령을 실행합니다:

    GITLAB_DOMAIN="gitlab.yourdomain.com"
    docker run -p 5052:5052 \
      -e AIGW_GITLAB_URL=$GITLAB_DOMAIN \
      -e AIGW_GITLAB_API_URL=https://${GITLAB_DOMAIN}/api/v4/ \
      -e AIGW_AUTH__BYPASS_EXTERNAL=true \
      gitlab/model-gateway:self-hosted-v17.6.0-ee
    

다음 표에서는 인스턴스 설정 시 주요 환경 변수와 역할을 설명합니다:

변수 설명
AIGW_GITLAB_URL GitLab 인스턴스 도메인.
AIGW_GITLAB_API_URL GitLab 인스턴스의 API 엔드포인트.
AIGW_AUTH__BYPASS_EXTERNAL 인증 처리를 위한 구성.

초기 설정 및 테스트 단계에서 AIGW_AUTH__BYPASS_EXTERNAL=true를 설정하여 인증을 우회하고 문제를 방지할 수 있습니다. 그러나 이 구성은 프로덕션 환경이나 인터넷에 노출된 서버에서는 절대로 사용해서는 안 됩니다.

Ollama#

설치#

  1. 공식 설치 스크립트를 사용하여 Ollama를 설치합니다:

    curl --fail --silent --show-error --location "https://ollama.com/install.sh" | sh
    
  2. 시작 구성에 OLLAMA_HOST 환경 변수를 추가하여 내부 IP에서 수신하도록 Ollama를 구성합니다

    systemctl edit ollama.service
    
    [Service]
    Environment="OLLAMA_HOST=172.31.11.27"
    

    [!note] IP 주소를 실제 서버의 내부 IP 주소로 교체하세요.

  3. 서비스를 다시 로드하고 재시작합니다:

    systemctl daemon-reload
    systemctl restart ollama
    

모델 배포#

  1. 환경 변수를 설정합니다:

    export OLLAMA_HOST=172.31.11.27
    
  2. Mistral Instruct 모델을 설치합니다:

    ollama pull mistral:instruct
    

    mistral:instruct 모델은 약 4.1 GB의 저장 공간이 필요하며 연결 속도에 따라 다운로드하는 데 시간이 걸립니다.

  3. 모델 설치를 확인합니다:

    ollama list
    

    이 명령은 목록에 설치된 모델을 표시해야 합니다. Ollama에서 설치된 모델 목록

통합#

루트 사용자를 위한 GitLab Duo 활성화#

  1. GitLab 웹 인터페이스에 접근합니다

    • 관리자 사용자로 로그인
    • Admin Area (렌치 아이콘)로 이동
  2. Duo 라이선스 구성

    • 왼쪽 사이드바의 "Subscription" 섹션으로 이동
    • "Seats used: 1/5"가 표시되어 사용 가능한 Duo 시트가 있음을 확인
    • 참고: 루트 사용자에게는 하나의 시트만 필요합니다
  3. 루트에 Duo 라이선스 할당

    • "Admin area" > "GitLab Duo" > "Seat utilization"으로 이동
    • 사용자 목록에서 루트 사용자 (Administrator)를 찾습니다
    • "GitLab Duo Enterprise" 열의 스위치를 토글하여 루트 사용자에 대한 Duo를 활성화합니다
    • 활성화되면 토글 버튼이 파란색으로 바뀝니다

루트 사용자를 위한 Duo 활성화

Note

루트 사용자에 대해서만 Duo를 활성화하는 것으로 초기 설정 및 테스트에 충분합니다. 필요한 경우 나중에 시트 라이선스 제한 내에서 추가 사용자에게 Duo 접근을 부여할 수 있습니다.

GitLab에서 GitLab Duo Self-Hosted 구성#

  1. GitLab Duo Self-Hosted 구성에 접근합니다

    • Admin Area > GitLab Duo > "Configure GitLab Duo Self-hosted"로 이동
    • "Add self-hosted model" 버튼을 클릭합니다

    Self-Hosted 모델 구성

  2. 모델 설정 구성

    • 배포 이름: 설명적인 이름 선택 (예: Mistral-7B-Instruct-v0.3 on AWS Tokyo)

    • 모델 패밀리: 드롭다운 목록에서 "Mistral" 선택

    • 엔드포인트: 다음 형식으로 Ollama 서버 URL 입력:

      http://[Internal-IP]:11434/v1
      

      예시: http://172.31.11.27:11434/v1

    • 모델 식별자: custom_openai/mistral:instruct 입력

    • API 키: 이 필드는 비워 둘 수 없으므로 자리 표시자 텍스트 (예: test) 입력

Mistral 모델 구성

  1. AI 기능 활성화

    • "AI-native features" 탭으로 이동
    • 다음 기능에 구성된 모델 할당:
      • Code Suggestions > Code Generation
      • Code Suggestions > Code Completion
      • GitLab Duo Chat > General Chat
    • 각 기능의 드롭다운 목록에서 배포된 모델 선택

모델과 Duo 기능 매핑

이러한 설정은 AI Gateway를 통해 GitLab 인스턴스와 자체 호스팅 Ollama 모델 간의 연결을 설정하여 GitLab 내에서 AI 네이티브 기능을 활성화합니다.

확인#

  1. GitLab에서 테스트 그룹 만들기
  2. GitLab Duo Chat 아이콘이 오른쪽 상단 모서리에 나타나야 합니다
  3. 이는 GitLab과 AI Gateway 간의 통합이 성공했음을 나타냅니다

Duo Chat에서 대화

GitLab Duo Self-Hosted: Ollama 통합을 포함한 완전한 AWS/Google Cloud 배포 가이드

Tier: Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

이 문서는 Ollama에서 Mistral 모델을 실행하는 자체 호스팅 대형 언어 모델 (LLM)과 함께 GitLab 및 GitLab Duo의 설치 및 통합에 대해 설명합니다. 이 가이드는 원하는 설정을 작동시키기 위한 포괄적인 엔드투엔드 지침입니다.

이 문서는 Ollama에서 Mistral 모델을 실행하는 자체 호스팅 대형 언어 모델 (LLM)과 함께 GitLab 및 GitLab Duo의 설치 및 통합에 대해 설명합니다. 이 가이드는 3개의 가상 머신을 사용하는 설정을 설명하며 AWS 또는 GCP에서 따를 수 있습니다. 물론 이 프로세스는 다른 배포 플랫폼에도 적용 가능합니다.

이 가이드는 원하는 설정을 작동시키기 위한 포괄적인 엔드투엔드 지침입니다. 최종 구성 생성을 지원하기 위해 사용된 GitLab 문서의 여러 영역에 대한 참조를 언급합니다. 참조된 문서는 특정 시나리오에 맞게 구현을 조정하는 데 더 많은 배경이 필요할 때 중요합니다.

사전 요구 사항#

가상 머신#

리소스 및 운영 체제#

GitLab, GitLab AI Gateway 및 Ollama 각각을 별도의 가상 머신에 설치합니다. 이 가이드에서 Ubuntu 24.0x를 사용했지만 조직의 요구 사항과 선호도에 맞는 Unix 기반 운영 체제를 자유롭게 선택할 수 있습니다. 그러나 이 설정에서는 Unix 기반 운영 체제를 사용하는 것이 필수입니다. 이는 시스템 안정성, 보안 및 필요한 소프트웨어 스택과의 호환성을 보장합니다. 이 설정은 테스트 및 평가 단계를 위한 비용과 성능 간의 적절한 균형을 제공하지만, 사용 요구 사항과 팀 크기에 따라 프로덕션으로 전환 시 GPU 인스턴스 유형을 업그레이드해야 할 수 있습니다.

GCP AWS OS 디스크
GitLab c2-standard-4 c6xlarge Ubuntu 24 50 GB
AI Gateway e2-medium t2.medium Ubuntu 24 20 GB
Ollama n1-standard-4 g4dn.xlarge Ubuntu 24 50 GB

컴포넌트 및 목적에 대한 자세한 내용은 AI Gateway를 참조하세요.

Mermaid 다이어그램 (7줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart LR
    accTitle: GitLab Duo Self-Hosted 아키텍처
    accDescr: GitLab Ultimate에서 AI Gateway로의 흐름을 보여주고, Ollama에서 실행 중인 Mistral에 연결됩니다.
A[GitLab&lt;br/&gt;Ultimate] --&gt; C
C[GitLab&lt;br/&gt;AI Gateway] --&gt; B[Ollama&lt;br/&gt;Mistral]</code></pre></details></div>

이러한 컴포넌트들은 함께 작동하여 Self-Hosted AI 기능을 실현합니다. 이 가이드는 Ollama를 LLM 서버로 사용하여 완전한 자체 호스팅 AI 환경을 구축하기 위한 자세한 지침을 제공합니다.

Note

완전한 프로덕션 환경의 경우, 공식 문서는 1x NVIDIA A100 (40 GB)과 같은 더 강력한 GPU 인스턴스를 권장합니다. 하지만 g4dn.xlarge 인스턴스 유형은 소수 팀의 평가 목적으로는 충분합니다.

네트워킹#

GitLab에 대한 접근을 활성화하려면 정적 공개 IP 주소 (AWS의 탄력적 IP 또는 Google Cloud의 외부 IP)가 필요합니다. 다른 모든 컴포넌트는 내부 통신을 위해 정적 내부 IP 주소를 사용할 수 있고 사용해야 합니다. 모든 VM이 동일한 네트워크에 있고 직접 통신할 수 있다고 가정합니다.

공개 IP 프라이빗 IP
GitLab yes yes
AI Gateway no yes
Ollama no yes

내부 IP를 사용하는 이유:

  • 내부 IP는 AWS/Google Cloud에서 인스턴스의 수명 동안 정적으로 유지됩니다.
  • GitLab 서버만 외부 접근이 필요하며, Ollama와 같은 다른 컴포넌트는 내부 통신에 의존합니다.
  • 이 접근 방식은 공개 IP 주소에 대한 비용을 방지하여 비용을 절감하고 LLM 서버를 인터넷에서 접근할 수 없게 하여 보안을 강화합니다.

GitLab#

이 가이드의 나머지 부분은 다음 요구 사항을 충족하는 GitLab 인스턴스가 이미 실행 중이라고 가정합니다:

라이선스#

GitLab Duo Self-Hosted를 운영하려면 GitLab Ultimate 라이선스와 GitLab Duo Enterprise 라이선스가 모두 필요합니다. GitLab Ultimate 라이선스는 온라인 또는 오프라인 라이선스 옵션 중 하나와 함께 작동합니다. 이 문서는 두 라이선스가 이미 확보되어 구현에 사용할 수 있다고 가정합니다.

라이선스 스크린샷

라이선스 스크린샷

SSL/TLS#

GitLab 인스턴스에 유효한 SSL 인증서 (예: Let's Encrypt)가 구성되어 있어야 합니다. 이것은 단순한 보안 모범 사례가 아니라 기술적 요구 사항입니다:

  • AI Gateway 시스템 (2025년 1월 기준)은 GitLab과 통신할 때 적절한 SSL 인증을 엄격하게 요구합니다
  • AI Gateway는 자체 서명된 인증서를 허용하지 않습니다
  • 비SSL 연결 (HTTP)도 지원되지 않습니다

GitLab은 편리한 자동화된 SSL 설정 프로세스를 제공합니다:

  • GitLab 설치 중에 https:// 접두사가 있는 URL을 지정하기만 하면 됩니다
  • GitLab은 자동으로 다음을 수행합니다:
    • Let's Encrypt SSL 인증서 획득
    • 인증서 설치
    • HTTPS 구성
  • 수동 SSL 인증서 관리가 필요하지 않습니다

GitLab 설치 중 절차는 다음과 같습니다:

  1. GitLab 인스턴스와 공개 및 정적 IP 주소를 할당하고 연결합니다
  2. 해당 주소를 가리키도록 DNS 레코드를 구성합니다
  3. GitLab 설치 중에 HTTPS URL을 사용합니다 (예: https://gitlab.yourdomain.com)
  4. GitLab이 SSL 인증서 설정을 자동으로 처리하도록 합니다

자세한 내용은 문서 페이지를 참조하세요.

소개#

GitLab Duo Self-Hosted를 설정하기 전에 AI가 어떻게 작동하는지 이해하는 것이 중요합니다. AI 모델은 데이터로 훈련된 AI의 두뇌입니다. 이 두뇌는 작동하기 위한 프레임워크가 필요하며, 이를 LLM 서빙 플랫폼 또는 간단히 "서빙 플랫폼"이라고 합니다. AWS에서는 "Amazon Bedrock", Azure에서는 "Azure OpenAI Service", ChatGPT의 경우 그들의 플랫폼, Anthropic의 경우 "Claude"입니다. 자체 호스팅 모델의 경우 Ollama가 일반적인 선택입니다.

예를 들어:

  • AWS에서 서빙 플랫폼은 Amazon Bedrock입니다.
  • Azure에서는 Azure OpenAI Service입니다.
  • ChatGPT의 경우 OpenAI의 독점 플랫폼입니다
  • Anthropic의 경우 서빙 플랫폼은 Claude입니다.

AI 모델을 직접 호스팅하는 경우 서빙 플랫폼도 선택해야 합니다. 자체 호스팅 모델에 인기 있는 옵션은 Ollama입니다.

이 비유에서 ChatGPT의 두뇌 부분은 GPT-4 모델이며, Anthropic 생태계에서는 Claude 3.7 Sonnet 모델입니다. 서빙 플랫폼은 두뇌를 세상과 연결하여 효과적으로 "생각"하고 상호 작용할 수 있게 하는 중요한 프레임워크 역할을 합니다.

지원되는 서빙 플랫폼과 모델에 대한 자세한 내용은 LLM 서빙 플랫폼모델을 참조하세요.

Ollama란 무엇인가?

Ollama는 로컬 환경에서 대형 언어 모델 (LLM)을 실행하기 위한 간소화된 오픈 소스 프레임워크입니다. 전통적으로 복잡한 AI 모델 배포 프로세스를 단순화하여 효율적이고 유연하며 확장 가능한 AI 솔루션을 찾는 개인 및 조직에게 접근 가능하게 만듭니다.

주요 특징:

  1. 간소화된 배포: 사용자 친화적인 명령줄 인터페이스로 빠른 설정과 편리한 설치 보장.
  2. 광범위한 모델 지원: Llama 2, Mistral, Code Llama와 같은 인기 있는 오픈 소스 모델과 호환.
  3. 최적화된 성능: 리소스 효율성을 위해 GPU 및 CPU 환경 모두에서 원활하게 작동.
  4. 통합 준비 완료: 기존 도구 및 워크플로우와 쉽게 통합할 수 있는 OpenAI 호환 API.
  5. 컨테이너 불필요: Docker 또는 컨테이너화된 환경 없이 호스트 시스템에서 직접 실행.
  6. 다양한 호스팅 옵션: 로컬 머신, 온프레미스 서버 또는 클라우드 GPU 인스턴스에 배포 가능.

단순성과 성능을 위해 설계된 Ollama는 전통적인 AI 인프라의 복잡성 없이 LLM의 힘을 활용할 수 있게 해줍니다. 설정 및 지원 모델에 대한 자세한 내용은 문서의 뒷부분에서 다룹니다.

설치#

AI Gateway#

공식 설치 가이드는 GitLab AI Gateway 설치에서 확인할 수 있지만, AI Gateway 설정을 위한 간소화된 접근 방법을 소개합니다. 2025년 1월 기준으로 이미지 gitlab/model-gateway:self-hosted-v17.6.0-ee가 GitLab 17.7과 함께 작동하는 것이 검증되었습니다.

  1. 다음을 확인합니다:

    • API Gateway VM에 대한 TCP 포트 5052가 허용되어 있는지 확인합니다 (보안 그룹 구성 확인)
    • 다음 코드 스니펫에서 GITLAB_DOMAIN을 YOUR GitLab 인스턴스의 도메인 이름으로 교체합니다:
  2. GitLab AI Gateway를 시작하려면 다음 명령을 실행합니다:

    GITLAB_DOMAIN="gitlab.yourdomain.com"
    docker run -p 5052:5052 \
      -e AIGW_GITLAB_URL=$GITLAB_DOMAIN \
      -e AIGW_GITLAB_API_URL=https://${GITLAB_DOMAIN}/api/v4/ \
      -e AIGW_AUTH__BYPASS_EXTERNAL=true \
      gitlab/model-gateway:self-hosted-v17.6.0-ee
    

다음 표에서는 인스턴스 설정 시 주요 환경 변수와 역할을 설명합니다:

변수 설명
AIGW_GITLAB_URL GitLab 인스턴스 도메인.
AIGW_GITLAB_API_URL GitLab 인스턴스의 API 엔드포인트.
AIGW_AUTH__BYPASS_EXTERNAL 인증 처리를 위한 구성.

초기 설정 및 테스트 단계에서 AIGW_AUTH__BYPASS_EXTERNAL=true를 설정하여 인증을 우회하고 문제를 방지할 수 있습니다. 그러나 이 구성은 프로덕션 환경이나 인터넷에 노출된 서버에서는 절대로 사용해서는 안 됩니다.

Ollama#

설치#

  1. 공식 설치 스크립트를 사용하여 Ollama를 설치합니다:

    curl --fail --silent --show-error --location "https://ollama.com/install.sh" | sh
    
  2. 시작 구성에 OLLAMA_HOST 환경 변수를 추가하여 내부 IP에서 수신하도록 Ollama를 구성합니다

    systemctl edit ollama.service
    
    [Service]
    Environment="OLLAMA_HOST=172.31.11.27"
    

    [!note] IP 주소를 실제 서버의 내부 IP 주소로 교체하세요.

  3. 서비스를 다시 로드하고 재시작합니다:

    systemctl daemon-reload
    systemctl restart ollama
    

모델 배포#

  1. 환경 변수를 설정합니다:

    export OLLAMA_HOST=172.31.11.27
    
  2. Mistral Instruct 모델을 설치합니다:

    ollama pull mistral:instruct
    

    mistral:instruct 모델은 약 4.1 GB의 저장 공간이 필요하며 연결 속도에 따라 다운로드하는 데 시간이 걸립니다.

  3. 모델 설치를 확인합니다:

    ollama list
    

    이 명령은 목록에 설치된 모델을 표시해야 합니다. Ollama에서 설치된 모델 목록

통합#

루트 사용자를 위한 GitLab Duo 활성화#

  1. GitLab 웹 인터페이스에 접근합니다

    • 관리자 사용자로 로그인
    • Admin Area (렌치 아이콘)로 이동
  2. Duo 라이선스 구성

    • 왼쪽 사이드바의 "Subscription" 섹션으로 이동
    • "Seats used: 1/5"가 표시되어 사용 가능한 Duo 시트가 있음을 확인
    • 참고: 루트 사용자에게는 하나의 시트만 필요합니다
  3. 루트에 Duo 라이선스 할당

    • "Admin area" > "GitLab Duo" > "Seat utilization"으로 이동
    • 사용자 목록에서 루트 사용자 (Administrator)를 찾습니다
    • "GitLab Duo Enterprise" 열의 스위치를 토글하여 루트 사용자에 대한 Duo를 활성화합니다
    • 활성화되면 토글 버튼이 파란색으로 바뀝니다

루트 사용자를 위한 Duo 활성화

Note

루트 사용자에 대해서만 Duo를 활성화하는 것으로 초기 설정 및 테스트에 충분합니다. 필요한 경우 나중에 시트 라이선스 제한 내에서 추가 사용자에게 Duo 접근을 부여할 수 있습니다.

GitLab에서 GitLab Duo Self-Hosted 구성#

  1. GitLab Duo Self-Hosted 구성에 접근합니다

    • Admin Area > GitLab Duo > "Configure GitLab Duo Self-hosted"로 이동
    • "Add self-hosted model" 버튼을 클릭합니다

    Self-Hosted 모델 구성

  2. 모델 설정 구성

    • 배포 이름: 설명적인 이름 선택 (예: Mistral-7B-Instruct-v0.3 on AWS Tokyo)

    • 모델 패밀리: 드롭다운 목록에서 "Mistral" 선택

    • 엔드포인트: 다음 형식으로 Ollama 서버 URL 입력:

      http://[Internal-IP]:11434/v1
      

      예시: http://172.31.11.27:11434/v1

    • 모델 식별자: custom_openai/mistral:instruct 입력

    • API 키: 이 필드는 비워 둘 수 없으므로 자리 표시자 텍스트 (예: test) 입력

Mistral 모델 구성

  1. AI 기능 활성화

    • "AI-native features" 탭으로 이동
    • 다음 기능에 구성된 모델 할당:
      • Code Suggestions > Code Generation
      • Code Suggestions > Code Completion
      • GitLab Duo Chat > General Chat
    • 각 기능의 드롭다운 목록에서 배포된 모델 선택

모델과 Duo 기능 매핑

이러한 설정은 AI Gateway를 통해 GitLab 인스턴스와 자체 호스팅 Ollama 모델 간의 연결을 설정하여 GitLab 내에서 AI 네이티브 기능을 활성화합니다.

확인#

  1. GitLab에서 테스트 그룹 만들기
  2. GitLab Duo Chat 아이콘이 오른쪽 상단 모서리에 나타나야 합니다
  3. 이는 GitLab과 AI Gateway 간의 통합이 성공했음을 나타냅니다

Duo Chat에서 대화