콘텐츠로 이동

GitLab 사전 준비 및 점검

  • GitLab 설치 전에 시스템, 네트워크, 보안, 리소스에 대한 사전 준비가 필요함.
  • 특정 환경에 종속되지 않는 범용 기준을 정의함.

1. 운영 구조 유형

GitLab은 다음과 같은 구조로 운영될 수 있음.

단순 구조

Client → GitLab
  • GitLab이 직접 80/443 수신
  • 테스트 또는 소규모 환경에 적합

일반적인 운영 구조

Client → Reverse Proxy → GitLab
  • 가장 일반적인 운영 구조
  • 다중 서비스 및 도메인 환경에 적합

확장 구조

Client → Load Balancer → GitLab + 외부 DB/Redis
  • 고가용성 및 성능 확장
  • 중대형 환경에서 사용

2. 운영 기준

다음 구조를 표준 운영 기준으로 정의함.

Client → Reverse Proxy → GitLab
  • Reverse Proxy에서 TLS(HTTPS) 종료를 수행함
  • Reverse Proxy는 외부 요청을 수신하고, 내부 GitLab으로 전달하는 Gateway 역할을 수행함
  • GitLab은 내부 애플리케이션 처리만 담당하며, 외부 요청을 직접 수신하지 않음
  • GitLab Web Service는 내부 포트(예: 8081)에서만 동작하며, 외부에서 직접 접근할 수 없음
  • 모든 외부 트래픽은 반드시 Reverse Proxy를 통해서만 GitLab으로 전달됨
  • 단일 서버 기반에서 시작하여, 향후 분리 구성 및 확장 구조로 전환 가능하도록 설계함

즉, Reverse Proxy 기반 운영 환경을 전제로 하며, GitLab 단독 노출 구조는 사용하지 않음.


3. 시스템 요구사항 확인

GitLab은 다수의 구성요소를 포함하는 서비스이므로 충분한 리소스가 필요함.

최소 권장 사양

  • CPU: 4 Core 이상
  • Memory: 8GB 이상 (권장 16GB)
  • Disk: 50GB 이상 (운영 환경에서는 100GB 이상 권장)

확인

nproc
free -h
df -h

4. OS 및 필수 패키지

GitLab Linux package 설치를 위한 기본 패키지가 필요함.

설치

sudo dnf install -y curl policycoreutils openssh-server perl

5. 시간 동기화 (NTP)

GitLab은 인증, 로그, CI/CD에서 시간 동기화가 중요함. 시간 동기화는 필수이며, 설정되지 않을 경우 인증 및 CI/CD 동작에 문제가 발생할 수 있음.

확인

timedatectl

권장

  • chrony 또는 systemd-timesyncd 사용