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. 도움말 페이지에서 현재 인스턴스 구성 확인을 선택하세요.

인스턴스 구성에서 다음을 볼 수 있습니다:

알고리즘 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 주소는 언제든지 변경될 수 있습니다.

서비스 데스크 별칭 이메일 주소

GitLab.com에는 서비스 데스크를 위해 구성된 메일함이 있으며 해당 이메일 주소는 다음과 같습니다: 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일의 지연 기간이 지난 후 영구적으로 삭제됩니다.

Free 티어에 속해있다면, 그룹은 즉시 삭제되며 복구할 수 없습니다.

삭제 대상으로 표시된 그룹을 보고 복구할 수 있습니다.

프로젝트 지연 삭제

Tier: Premium, Ultimate Offering: GitLab.com

2023년 5월 8일 이후, 모든 그룹에는 기본적으로 프로젝트 지연 삭제가 활성화됩니다.

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

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

삭제 대상으로 표시된 프로젝트를 확인하고 복원할 수 있습니다.

비활성 프로젝트 삭제

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

대체 SSH 포트

git+ssh를 사용하여 GitLab.com에는 다른 SSH 포트를 사용하여 액세스할 수 있습니다.

설정
Hostname altssh.gitlab.com
Port 443

다음은 예시로 작성한 ~/.ssh/config입니다.

Host 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

사용 가능한 Pages 사이트의 최대 크기는 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형)
아티팩트 최대 크기 (압축 후) 1 GB 최대 아티팩트 크기 참조
아티팩트 만료 기간 2020년 6월 22일부터 30일 후에 삭제됨(해당 날짜 이전에 생성된 아티팩트는 만료 기간이 없음) 기본 아티팩트 만료 참조
예약된 파이프라인 크론 */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>) 실행
최대 하향 파이프라인 트리거 속도 프로젝트, 사용자 및 커밋당 350분당 최대 하향 파이프라인 트리거 속도 참조

패키지 레지스트리 제한

GitLab 패키지 레지스트리에 업로드된 패키지의 최대 파일 크기는 형식에 따라 다를 수 있습니다:

패키지 유형 GitLab.com
Conan 5 GB
일반 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
외부 객체 리포지터리에서 가져오기를 위한 최대 원격 파일 크기 10 GiB
소스 GitLab 인스턴스로부터 직접 전송되는 경우 최대 다운로드 파일 크기 5 GiB
최대 첨부 파일 크기 100 MiB
가져온 아카이브의 최대 압축 해제 파일 크기 25 GiB
최대 푸시 크기 5 GiB

리포지터리 크기 제한을 거의 달성하거나 초과하는 경우 다음을 수행할 수 있습니다:

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

기본 가져오기 원본

가능한 가져오기 원본은 사용 중인 GitLab에 따라 달라집니다:

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

IP 범위

GitLab.com은 그 IP 범위 34.74.90.64/2834.74.226.0/24를 그 웹/API 플릿에서의 트래픽에 사용합니다. 이 전체 범위는 오직 GitLab에 할당되었습니다. Webhook이나 리포지터리 미러링에서 이 IP 주소에서 연결이 오고 허용되는 것으로 예상할 수 있습니다.

GitLab.com은 Cloudflare로 전면화되어 있습니다. GitLab.com으로부터의 들어오는 연결에 대해, Cloudflare의 CIDR 블록을 허용해야 할 수 있습니다 (IPv4IPv6).

CI/CD 러너로부터의 나가는 연결에 대해서는 정적 IP 주소를 제공하지 않습니다. 모든 GitLab.com 인스턴스 러너는 Google Cloud Platform (GCP)의 us-east1에 배포됩니다. 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 개 이하: 1,600
100-399개: 2,800<br400 개 이상: 4,000
Ultimate 및 오픈 소스 999 개 이하: 6,000
1,000-4,999개: 9,000<br5,000 개 이상: 13,000

기타 제한 사항

설정 GitLab.com의 기본값
웹훅의 개수 프로젝트당 100, 그룹당 50 (하위 그룹 웹훅은 상위 그룹 제한에 포함되지 않음 )
최대 페이로드 크기 25 MB
시간 초과 10 초
여러 페이지 배포 추가 배포 100개 (Premium 요금제), 추가 배포 500개 (Ultimate 요금제)

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개의 요청
IP 주소별 고급, 프로젝트 또는 그룹 검색 API 분당 10개의 요청
IP 주소에 대한 GitLab Pages 요청 50초당 1,000개의 요청
GitLab Pages 도메인에 대한 GitLab Pages 요청 10초당 5,000개의 요청
IP 주소별 GitLab Pages TLS 연결 50초당 1,000개의 요청
GitLab Pages 도메인에 대한 GitLab Pages TLS 연결 10초당 400개의 요청
프로젝트, 사용자 또는 커밋에 대한 파이프라인 생성 요청 분당 25개의 요청
프로젝트에 대한 알림 통합 엔드포인트 요청 시간당 3,600개의 요청
사용자로부터 /api/v4/users/:id로의 API 요청 10분당 300개의 요청
GitLab 패키지 클라우드 요청(IP 주소별) GitLab 16.11에서 도입 분당 3,000개의 요청

보호 경로Raw 엔드포인트에 대한 요금 제한의 자세한 내용은 추가로 제공됩니다.

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

요금 제한 응답

요금 제한 응답에 대한 자세한 정보는 다음을 참조하세요.

프로텍티드 경로 스로틀

GitLab.com은 보호된 경로에서 분당 10회 이상의 POST 요청에 대해 HTTP 상태 코드 429로 응답합니다.

보호된 경로에서 이는 사용자 생성, 사용자 확인, 사용자 로그인, 그리고 비밀번호 재설정을 포함합니다.

보호된 경로에 대한 자세한 내용은 아래 출처를 참조하세요.

사용자 및 IP 요금 제한는 차단된 요청에 대한 응답 헤더 디렉터리을 포함합니다.

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

IP 차단

단일 IP 주소로부터 이상한 트래픽을 받을 경우 시스템에서 잠재적으로 악의적으로 간주하여 IP 차단이 발생할 수 있습니다. 이는 요금 제한 설정에 기반할 수 있습니다. 이상한 트래픽이 중단되면 블록 유형에 따라 IP 주소가 자동으로 해제됩니다. 자세한 내용은 다음 섹션에 설명되어 있습니다.

GitLab.com로의 모든 요청에 대해 403 Forbidden 오류를 수신하면 차단을 일으킬 수 있는 자동화된 프로세스를 확인하세요. 지원이 필요한 경우 영향을 받는 IP 주소와 같은 세부 정보와 함께 GitLab 지원팀에 문의하세요.

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

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

이는 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별 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에서 만료를 구성할 수 없습니다. Jobs API를 사용하거나 파이프라인 삭제를 통해 작업 로그를 지울 수 있습니다.

규모에 따른 GitLab.com

GitLab Enterprise Edition Linux 패키지 설치에 추가로, GitLab.com은 규모를 확보하기 위해 다음 응용 프로그램과 설정을 사용합니다. 모든 설정은 Kubernetes 구성 또는 Chef cookbook으로 공개적으로 사용 가능합니다.

Elastic 클러스터

모니터링 솔루션의 일환으로 Elasticsearch와 Kibana를 사용합니다.

Fluentd

GitLab 로그를 통합하기 위해 Fluentd를 사용합니다.

Prometheus

모니터링 데이터의 시각화를 위해 사용됩니다.

Grafana

모니터링 데이터 시각화를 위해 사용됩니다.

Sentry

오픈 소스 오류 추적이 가능합니다.

Consul

서비스 검색:

HAProxy

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

Sidekiq

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

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