구축형 GitLab을 설치해보셨거나 설치하실 계획이 있으신가요? 구축형 GitLab을 사용하기 위해 고려해야 하는 상황은 다양합니다. 사용하는 유저의 수, 가용성, 클라우드 네이티브 환경 여부 등 이러한 환경에 대해 전부는 아니지만, 구축에 참고할 수 있는 레퍼런스 아키텍처를 오늘 소개해 드리려 합니다.
- 일반적인 환경에서 1,000명의 사용자를 기준으로 작성된 아키텍처
- 클라우드 네이티브 환경에서 사용가능한 2,000명의 사용자를 기준으로 작성된 아키텍처
더 다양한 레퍼런스 아키텍처가 필요하신 경우에는 GitLab 공식 Docs를 참고하시기 바랍니다.
최대 1,000명 레퍼런스 아키텍처 (Omnibus, Single Node)
최대 1,000명 레퍼런스 아키텍처를 기준으로 설명해 드리는 이유는 GitLab에서 권장하는 최소 단위의 아키텍처임과 동시에 일반적인 환경에서 사용하기에 적합하기 때문입니다. 이 아키텍처는 엄격한 가용성 요구 사항이 없는 경우와 백업을 자주 수행하는 단일 노드 솔루션이 있는 대부분의 조직에 적합합니다.
이 아키텍처의 구성 목표를 정리하면 다음 과 같습니다.
지원 가능 사용자 수
지원 사용자 수는 1,000명이며 권장 사양 기준 최대 사용자 수 입니다.
고가용성
이 아키텍처에서는 고가용성 사용은 불가능합니다. 고가용성 환경의 경우 최소 3,000명 사용자 레퍼런스 아키텍처를 권장합니다.
예상 비용
예상 비용은 GitLab에서 제공하는 Omnibus 패키지 설치를 기준으로 합니다. 클라우드 공급자 별로 인스턴스의 비용이나 규격화되어 있는 인스턴스 종류가 다르기에 가격에 차이가 있을 수 있습니다.
검증 및 테스트
GitLab의 성능을 측정하고 개선하는 것은 물론 자체 관리 고객이 성능 구성으로 신뢰할 수 있는 레퍼런스 아키텍처를 만들고 검증하는 데 중점을 두고 있습니다. GitLab 품질 엔지니어링 팀은 레퍼런스 아키텍처가 규정을 준수하는지, 적합한지에 대한 것들을 확인하기 위해 정기적으로 성능 테스트를 수행합니다. 테스트는 자동화된 방식을 사용하며 모든 레퍼런스 아키텍처 및 클라우드 제공 업체에 대해 수행합니다. 테스트에는 환경 구축을 위한 GitLab 환경 툴킷, 성능 테스트를 위한 GitLab 성능 도구가 사용 됩니다.
아키텍처에 대한 테스트 결과는 다음과 같습니다.
- 초당 테스트 요청(RPS) 속도: API: 20RPS, 웹: 2RPS, Git(Pull): 2RPS, Git(Push): 1RPS
- RPS : 테스트에서 달성할 수 있는 평균 초당 요청(Requests per second)입니다.
이 테스트 결과는 지속적으로 업데이트 됩니다. 최신 결과에서 변경된 테스트 결과들을 확인할 수 있습니다.
권장 사양
| 사용자 수 | 사양 구성 | GCP | AWS | Azure |
|---|---|---|---|---|
| 최대 500명 | 4 vCPU, 3.6GB memory | n1-highcpu-4(4vCPU / 3.6 GB memory) | c5.xlarge(4vCPU / 8 GB memory) | F4s v2(4vCPU / 8 GB memory) |
| 최대 1,000명 | 8 vCPU, 7.2GB memory | n1-highcpu-8(4vCPU / 7.2 GB memory) | c5.2xlarge(8vCPU / 16 GB memory) | F8s v2(8vCPU / 16 GB memory) |