GitLab.com 설정

Tier: Free, Premium, Ultimate Offering: GitLab.com

이 페이지에는 GitLab.com에서 사용되는 설정에 관한 정보가 있으며, GitLab SaaS 고객을 대상으로 합니다.

GitLab.com의 인스턴스 구성 페이지에서 일부 설정을 확인하세요.

이메일 확인

GitLab.com에는 다음과 같은 설정이 있습니다:

비밀번호 요구 사항

GitLab.com은 새 계정 및 비밀번호 변경 시 다음과 같은 요구 사항을 가지고 있습니다:

  • 최소 문자 길이 8자.
  • 최대 문자 길이 128자.
  • 모든 문자가 허용됩니다. 예: ~, !, @, #, $, %, ^, &, *, (), [], _, +, =, 및 -.

SSH 키 제한

GitLab.com은 기본 SSH 키 제한을 사용합니다.

SSH 호스트 키 지문

GitLab.com의 현재 인스턴스 구성 페이지에서 SSH 호스트 키 지문을 확인하세요.

  1. GitLab에 로그인합니다.
  2. 왼쪽 사이드 바에서 Help () > Help를 선택합니다.
  3. Help 페이지에서 현재 인스턴스 구성 확인을 선택합니다.

인스턴스 구성 페이지에서 다음과 같이 SSH 호스트 키 지문을 확인할 수 있습니다:

알고리즘 MD5 (사용 중지) SHA256
ECDSA f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35 SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw
ED25519 2e:65:6a:c8:cf:bf:b2:8b:9a:bd:6d:9f:11:5c:12:16 SHA256:eUXGGm1YGsMAS7vkcx6JOJdOGHPem5gQp4taiCfCLB8
RSA b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09 SHA256:ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ

GitLab.com 리포지터리에 처음 연결할 때, 이 중 하나의 키가 출력됩니다.

SSH known_hosts 항목

SSH에서 매뉴얼 지문 확인을 건너뛰기 위해 .ssh/known_hosts에 다음을 추가하세요:

gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=

메일 구성

GitLab.com은 Mailgun을 사용하여 mg.gitlab.com 도메인에서 이메일을 보내며, 고유의 전용 IP 주소를 사용합니다:

  • 23.253.183.236
  • 69.72.35.190
  • 69.72.44.107
  • 159.135.226.146
  • 161.38.202.219
  • 192.237.158.143
  • 192.237.159.239
  • 198.61.254.136
  • 198.61.254.160
  • 209.61.151.122

mg.gitlab.com의 IP 주소는 언제든지 변경될 수 있습니다.

Service Desk 별칭 이메일 주소

GitLab.com에서 Service Desk용으로 구성된 메일함이 있으며, 이메일 주소는 다음과 같습니다: contact-project+%{key}@incoming.gitlab.com. 이 메일함을 사용하려면 프로젝트 설정에서 사용자 정의 접미사를 구성하세요.

백업

백업 전략을 확인하세요.

GitLab.com에서 전체 프로젝트를 백업하려면 다음을 수행할 수 있습니다:

  • UI를 통해.
  • API를 통해. 또한 API를 사용하여 수출물을 Amazon S3와 같은 저장 플랫폼에 프로그래밍 방식으로 업로드할 수도 있습니다.

수출물을 사용할 때 내보내는 항목내보내지 않는 항목을 고려하세요.

GitLab은 Git 기반으로 만들어졌으므로 프로젝트의 리포지터리만 백업하기 위해 다른 컴퓨터로 복제할 수 있습니다. 마찬가지로 프로젝트 위키를 백업하기 위해 프로젝트 위키를 복제할 수도 있습니다. 2020년 8월 22일 이후 업로드된 모든 파일은 복제됩니다.

지연된 그룹 삭제

Tier: Premium, Ultimate Offering: GitLab.com

2023년 5월 8일 이후로 모든 그룹은 지연된 삭제 기능이 기본으로 활성화됩니다.

그룹은 7일의 지연 기간 이후에 영구적으로 삭제됩니다.

무료 티어를 사용 중이라면 그룹이 즉시 삭제되며 복원할 수 없습니다.

지연된 프로젝트 삭제

Tier: Premium, Ultimate Offering: GitLab.com

2023년 5월 8일 이후로 모든 그룹은 지연된 프로젝트 삭제 기능이 기본으로 활성화됩니다.

프로젝트는 7일의 지연 기간 이후에 영구적으로 삭제됩니다.

무료 티어를 사용 중이라면 프로젝트가 즉시 삭제되며 복원할 수 없습니다.

비활성 프로젝트 삭제

비활성 프로젝트 삭제는 GitLab.com에서 비활성화되어 있습니다.

대체 SSH 포트

GitLab.com은 git+ssh를 위해 다른 SSH 포트를 사용하여 접속할 수 있습니다.

설정
호스트 이름 altssh.gitlab.com
포트 443

다음은 예시인 ~/.ssh/config입니다:

호스트 gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

GitLab Pages

GitLab Pages의 일부 설정은 Self-managed 인스턴스의 기본 값과 다릅니다:

설정 GitLab.com
도메인 이름 gitlab.io
IP 주소 35.185.44.232
사용자 정의 도메인 지원
TLS 인증서 지원
최대 사이트 크기 1 GB
GitLab Pages 웹사이트 당 사용자 정의 도메인 수 150

사이트의 최대 크기는 GitLab CI/CD의 최대 artifact 크기에 따라 달라집니다.

비율 제한은 GitLab Pages에도 존재합니다.

GitLab 컨테이너 레지스트리

설정 GitLab.com
도메인 이름 registry.gitlab.com
IP 주소 35.227.35.254
CDN 도메인 이름 cdn.registry.gitlab-static.net
CDN IP 주소 34.149.22.116

GitLab 컨테이너 레지스트리를 사용하려면 Docker 클라이언트가 다음에 액세스해야 합니다:

  • 레지스트리 엔드포인트 및 인증을 위해 GitLab.com.
  • 이미지를 다운로드하기 위해 Google Cloud Storage 또는 Google Cloud Content Delivery Network.

GitLab.com의 인바운드 연결을 위해 Cloudflare이 프론트엔드에 위치하고 있습니다. GitLab.com으로의 연결을 위해 Cloudflare의 CIDR 블록(IPv4IPv6)을 허용해야 합니다.

GitLab CI/CD

아래는 GitLab CI/CD의 현재 설정입니다. 여기에 나열되어 있지 않은 설정 또는 기능 제한은 관련 문서에 나열된 기본 설정을 사용합니다.

설정 GitLab.com 기본값 (Self-managed)
artifact 최대 크기 (압축) 1 GB 최대 artifact 크기 참조
artifact 만료 시간 2020년 6월 22일부터, 지정하지 않은 경우 30일 후에 삭제됨 (해당 날짜 이전에 만들어진 artifact는 만료되지 않음). 기본 artifact 만료 시간 참조
예약된 파이프라인 Cron */5 * * * * 파이프라인 스케줄 고급 구성 참조
활성 파이프라인의 최대 작업수 무료 티어: 500, 모든 체험 티어: 1000, Premium: 20000, Ultimate: 100000 활성 파이프라인의 작업수 참조
프로젝트 당 최대 CI/CD 구독 수 2 프로젝트당 CI/CD 구독 수 참조
프로젝트당 파이프라인 트리거의 최대 수 무료 및 체험 티어: 25000, 유료 티어: 무제한 파이프라인 트리거 수 제한 참조
프로젝트당 파이프라인 스케줄의 최대 수 무료 티어: 10, 유료 티어: 50 파이프라인 스케줄 수 참조
스케줄 당 만들어지는 파이프라인 최대 수 무료 티어: 24, 유료 티어: 288 하루에 파이프라인 스케줄으로 생성되는 파이프라인 수 제한 참조
각 보안 정책 프로젝트에 정의된 스케줄 규칙 최대 수 유료 티어: 무제한 보안 정책 프로젝트당 스케줄 규칙 수 제한 참조
예약된 작업의 보관 기간 2020년 6월 22일부터 3개월. 해당 날짜 이전에 만들어진 작업은 2020년 9월 22일 이후에 보관됨 절대로 안됨.
단위 테스트 보고서 당 최대 테스트 케이스 수 500000 무제한.
등록된 러너의 최대 수 무료 티어: 50 (그룹 당) / 50 (프로젝트 당)
유료 티어: 1000 (그룹 당) / 1000 (프로젝트 당)
범위 당 등록된 러너 수 참조
dotenv 변수 제한 무료 티어: 50 / Premium 티어: 100 / Ultimate 티어: 150 dotenv 변수 제한 참조
권한 토큰 기간 (분) 15 사용자 정의 값으로 설정하려면 Rails 콘솔에서 ApplicationSetting.last.update(container_registry_token_expire_delay: <integer>)를 실행하세요. <integer>에는 원하는 분 수를 입력합니다.
특정 프로젝트, 사용자 및 커밋당 파이프라인 트리거 속도의 최대 하향 트리거 비율 분당 350 하향 트리거 비율 최대 수 참조

패키지 레지스트리 제한

GitLab 패키지 레지스트리에 업로드된 패키지의 최대 파일 크기는 형식에 따라 다음과 같습니다.

패키지 유형 GitLab.com
Conan 5 GB
Generic 5 GB
Helm 5 MB
Maven 5 GB
npm 5 GB
NuGet 5 GB
PyPI 5 GB
Terraform 1 GB

계정 및 제한 설정

GitLab.com은 다음과 같은 계정 제한을 사용합니다. 설정이 명시되어 있지 않은 경우에는, 기본 값이 Self-managed 인스턴스와 동일합니다:

설정 GitLab.com 기본값
LFS를 포함한 리포지터리 크기 제한 10 GB
최대 가져오기 크기 5 GiB
최대 내보내기 크기 40 GiB
[외부 객체 리포지터리에서 가져오기의 최대 원격 파일 크기](../../administration/settings/import_and_export_settings.md#maximum-remote-fil… 10 GiB
[직접 전송을 통한 소스 GitLab 인스턴스로부터 가져올 때의 최대 다운로드 파일 크기](../../administration/settings/import_and_export_settings.md#maxi… 5 GiB
최대 첨부 파일 크기 100 MiB
[가져온 아카이브의 최대 압축 해제된 파일 크기](../../administration/settings/import_and_export_settings.md#maximum-decompressed-file-size-for-impo 25 GiB
푸시 크기 최대 제한 5 GiB

리포지터리 크기 제한을 근접하거나 초과하는 경우, 다음 중 하나를 선택할 수 있습니다:

note
git push 및 GitLab 프로젝트 가져오기는 한 요청 당 5 GiB로 Cloudflare를 통해 제한됩니다. 파일 업로드 이외의 가져오기에는 이 한도가 적용되지 않습니다. 리포지터리 제한은 공개 및 비공개 프로젝트에 모두 적용됩니다.

기본 가져오기 소스

기본 설정에 의해 사용 가능한 가져오기 소스는 사용 중인 GitLab에 따라 다릅니다.

  • GitLab.com: 모든 가능한 가져오기 소스가 기본적으로 활성화됩니다.
  • GitLab Self-managed: 기본적으로 가져오기 소스가 활성화되지 않으며 활성화해야 합니다.

IP 범위

GitLab.com은 웹/API에서의 트래픽을 위해 34.74.90.64/2834.74.226.0/24 IP 범위를 사용합니다. 이 범위 전체가 GitLab에 할당됩니다. 웹훅이나 리포지터리 미러링으로부터의 연결은 이러한 IP에서 발생할 수 있으므로 이에 대해 허용할 수 있습니다.

GitLab.com은 Cloudflare로 프론트 엔드가 되어 있습니다. GitLab.com으로부터의 들어오는 연결의 경우, Cloudflare의 CIDR 블록을 허용해야 할 수 있습니다(IPv4IPv6).

CI/CD 러너로부터의 아웃바운드 연결의 경우, 정적 IP 주소를 제공하지 않습니다. 모든 GitLab.com 인스턴스 러너는 us-east1의 Google Cloud Platform (GCP)에 배포됩니다. IP 기반 방화벽은 GCP의 IP 주소 범위 또는 CIDR 블록을 조회함으로써 구성할 수 있습니다.

호스트명 디렉터리

로컬 HTTP(S) 프록시에서 허용 디렉터리을 구성하거나 엔드 유저 컴퓨터를 관리하는 기타 웹 차단 소프트웨어에 이 호스트명을 추가합니다. GitLab.com의 페이지는 다음 호스트명에서 콘텐츠를 로드합니다:

  • gitlab.com
  • *.gitlab.com
  • *.gitlab-static.net
  • *.gitlab.io
  • *.gitlab.net

docs.gitlab.comabout.gitlab.com에서 제공되는 문서 및 회사 페이지는 일부 페이지 콘텐츠를 공용 CDN 호스트명에서 직접로드합니다.

웹훅

다음 제한 사항은 웹훅에 적용됩니다.

요율 제한

최상위 네임스페이스 당 분당 웹훅 호출 횟수는 요금제 및 가입자 수에 따라 다르게 제한됩니다.

요금제 GitLab.com 기본값
Free 500
Premium 99 seats 미만 : 1,600
100-399 seats: 2,800
400 seats 이상: 4,000
Ultimate 및 오픈 소스 999 seats 미만: 6,000
1,000-4,999 seats: 9,000
5,000 seats 이상: 13,000

기타 제한 사항

설정 GitLab.com 기본값
웹훅 수 프로젝트 당 100, 그룹 당 50 (하위 그룹 웹훅은 상위 그룹 제한에 포함되지 않음)
최대 페이로드 크기 25 MB
타임아웃 10 초

Self-managed되는 인스턴스의 제한 사항은 다음을 참조하십시오:

Runner SaaS

Runner SaaS는 GitLab.com 호스팅 프로젝트의 CI/CD 작업을 실행하는 데 사용할 수 있는 호스팅, 안전하고 관리되는 빌드 환경입니다.

자세한 정보는 Runner SaaS를 참조하세요.

Puma

GitLab.com은 Puma 요청 시간 제한으로 기본값으로 60초를 사용합니다.

리뷰어 및 담당자의 최대 수

Merge Request은 다음 최대값을 적용합니다:

  • 최대 담당자: 200
  • 최대 리뷰어: 200

GitLab.com 특정 속도 제한

note
관리자 문서에서 속도 제한을 확인하세요.

요청이 속도 제한을 받으면 GitLab은 429 상태 코드로 응답합니다. 클라이언트는 요청을 다시 시도하기 전에 기다려야 합니다. 또한 이 응답에는 상세한 정보 헤더도 포함되어 있습니다. 자세한 내용은 속도 제한 응답을 참조하세요.

다음 표는 GitLab.com의 속도 제한을 설명합니다:

속도 제한 설정
보호된 경로(특정 IP 주소에 대해) 분당 10회 요청
Raw 엔드포인트 트래픽 (특정 프로젝트, 커밋 및 파일 경로에 대해) 분당 300회 요청
인증되지 않은 트래픽 (특정 IP 주소에서) 분당 500회 요청
인증된 API 트래픽 (특정 사용자에 대해) 분당 2,000회 요청
인증된 API가 아닌 HTTP 트래픽 (특정 사용자에 대해) 분당 1,000회 요청
모든 트래픽 (특정 IP 주소에서) 분당 2,000회 요청
이슈 생성 분당 200회 요청
노트 생성(이슈 및 Merge Request에 대해) 분당 60회 요청
고급, 프로젝트 및 그룹 검색 API (특정 IP 주소에 대해) 분당 10회 요청
GitLab Pages 요청 (특정 IP 주소에 대해) 50초마다 1,000회 요청
GitLab Pages 요청 (특정 GitLab Pages 도메인에 대해) 10초마다 5,000회 요청
GitLab Pages TLS 연결 (특정 IP 주소에 대해) 50초마다 1,000회 요청
GitLab Pages TLS 연결 (특정 GitLab Pages 도메인에 대해) 10초마다 400회 요청
파이프라인 생성 요청(특정 프로젝트, 사용자 및 커밋에 대해) 분당 25회 요청
경고 통합 엔드포인트 요청 (특정 프로젝트에 대해) 시간당 3,600회 요청
풀 미러링 간격 5
API 요청 (/api/v4/users/:id에 대한 특정 사용자에 대해) 10분마다 300회 요청

더 많은 세부 정보는 보호된 경로raw 엔드포인트에 대한 속도 제한에 대해 확인할 수 있습니다.

GitLab은 여러 레이어에서 요청의 속도를 제한할 수 있습니다. 여기 나열된 속도 제한은 애플리케이션에서 구성됩니다. 이러한 제한은 IP 주소당 가장 제한적입니다. GitLab.com에 대한 속도 제한에 대한 자세한 정보는 개요를 참조하세요.

속도 제한 응답

속도 제한 응답에 대한 자세한 내용은 다음을 참조하세요:

보호된 경로 제한

GitLab.com은 보호된 경로에서 1분당 10회를 초과하는 POST 요청에 대해 HTTP 상태 코드 429로 응답합니다.

보호된 경로에 포함된 경로에 대한 소스는 아래를 참조하세요. 이에는 사용자 생성, 사용자 확인, 사용자 로그인 및 비밀번호 재설정이 포함됩니다.

차단된 요청에 대한 응답 헤더 디렉터리은 사용자 및 IP 속도 제한을 참조하세요.

자세한 내용은 보호된 경로를 확인하세요.

IP 차단

한 IP 주소로부터 이상한 트래픽을 받을 경우 GitLab.com은 시스템이 잠재적으로 악의적으로 보는 단일 IP 주소로부터 이상적인 트래픽을 받으면 IP 차단이 발생할 수 있습니다. 이는 속도 제한 설정을 기반으로 합니다. 이상한 트래픽이 사그라들면 IP 주소는 해당 차단 유형에 따라 자동으로 해제됩니다.

GitLab.com의 모든 요청에 대해 403 Forbidden 오류를 받을 경우 자동화된 프로세스를 확인하세요. 도움이 필요한 경우 GitLab 지원팀에 영향받은 IP 주소 등과 함께 연락하세요.

Git 및 컨테이너 레지스트리 실패된 인증 금지

GitLab.com은 3분 동안 단일 IP 주소로부터 30회의 실패 인증 요청을 받으면 1시간 동안 HTTP 상태 코드 403으로 응답합니다.

이는 Git 요청 및 컨테이너 레지스트리(/jwt/auth) 요청(통합)에만 적용됩니다.

이 제한:

  • 성공적으로 인증된 요청에 의해 재설정됩니다. 예를 들어, 29회의 실패 인증 요청 뒤에 성공적인 요청 1회가 앞에 오는 경우, 이후에 29회의 실패 인증 요청이 또 다시 발생해도 금지가 발생하지 않습니다.
  • gitlab-ci-token에 의해 인증된 JWT 요청에는 적용되지 않습니다.

응답 헤더는 제공되지 않습니다.

https를 통해 git 요청은 항상 인증되지 않은 요청을 먼저 전송하며, 이는 비공개 리포지터리의 경우에 401 오류를 결과로 반환합니다. 그 후 git은 사용자명, 비밀번호 또는 액세스 토큰(이용 가능한 경우)으로 인증된 요청을 시도합니다. 이러한 요청은 동시에 너무 많이 보내면 일시적인 IP 차단을 유발할 수 있습니다. 이 문제를 해결하려면 SSH 키를 사용하여 GitLab과 통신하세요.

페이지네이션 응답 헤더

성능상의 이유로, 쿼리가 10,000개 이상의 레코드를 반환하는 경우 GitLab은 일부 헤더를 제외할 수 있습니다.

가시성 설정

프로젝트, 그룹 및 스니펫은 내부 가시성 설정이 GitLab.com에서 비활성화되어 있습니다.

SSH 최대 연결 수

GitLab.com은 MaxStartups 설정을 사용하여 동시에 인증되지 않은 SSH 연결의 최대 수를 정의합니다. 동시에 허용된 연결 수보다 많은 연결이 발생하면 해당 연결은 삭제되고 사용자는 ssh_exchange_identification 오류를 받게 됩니다.

내보낸 파일을 사용한 그룹 및 프로젝트 가져오기

남용을 방지하기 위해 다음이 제한됩니다.

  • 프로젝트 및 그룹 가져오기
  • 파일을 사용하는 그룹 및 프로젝트 내보내기
  • 내보낸 다운로드

자세한 정보는 다음을 참조하십시오:

설정할 수 없는 제한 사항

설정할 수 없는 제한 사항에 대한 정보는 설정할 수 없는 제한 사항을 참조하십시오. 이 제한 사항은 GitLab.com에서도 사용됩니다.

GitLab.com별 특정 Gitaly RPC 동시성 제한

Gitaly RPC 동시성 및 대기열 제한은 git clone과 같은 여러 유형의 Git 작업을 위해 구성됩니다. 이러한 제한을 초과하는 경우 클라이언트에게 fatal: remote error: GitLab is currently unable to handle this request due to load 메시지가 반환됩니다.

관리자 문서에 대해서는 RPC 동시성 제한을 참조하십시오.

GitLab.com 로깅

저희는 Fluentd를 사용하여 로그를 구문 분석합니다. Fluentd는 로그를 Stackdriver LoggingCloud Pub/Sub로 전송합니다. Stackdriver는 Google Cold Storage (GCS)에 장기 저장을 위해 사용됩니다. Cloud Pub/Sub은 pubsubbeat을 사용하여 로그를 Elastic 클러스터로 전달하는 데 사용됩니다.

다음과 같이 저희의 runbook에서 더 많은 정보를 확인할 수 있습니다:

작업 로그

기본적으로 GitLab은 작업 로그를 만료시키지 않습니다. 작업 로그는 영원히 보관되며, GitLab.com에서 만료될 수는 없습니다. 작업 로그는 작업 API를 사용하거나 파이프라인 삭제를 통해 매뉴얼으로 지울 수 있습니다.

대규모 GitLab.com

GitLab Enterprise Edition Linux 패키지 설치 외에, GitLab.com은 다음 애플리케이션과 설정을 이용하여 규모를 확보합니다. 모든 설정은 Kubernetes 구성 또는 Chef 쿡북으로 공개적으로 사용 가능합니다.

Elastic 클러스터

저희는 일부 모니터링 솔루션을 위해 Elasticsearch 및 Kibana를 사용합니다:

Fluentd

저희는 GitLab 로그를 통합하기 위해 Fluentd를 사용합니다:

Prometheus

모니터링 스택을 완성하기 위해 Prometheus를 사용합니다:

Grafana

모니터링 데이터 시각화를 위해:

Sentry

오픈 소스 오류 추적:

Consul

서비스 검색:

HAProxy

고성능 TCP/HTTP 로드 밸런서:

Sidekiq

GitLab.com은 루비 작업 스케줄링을 위해 외부 프로세스Sidekiq을 실행합니다.

현재 설정은 GitLab.com Kubernetes pod 구성에 있습니다.