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. 왼쪽 사이드 바에서 도움말을 선택합니다 ().
  3. 도움말 페이지에서 현재 인스턴스 구성 확인을 선택합니다.

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

알고리즘 MD5 (deprecated) 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일의 지연 기간 후 영구적으로 삭제됩니다.

무료 티어에서는 그룹이 즉시 삭제되며 복구할 수 없습니다.

지연된 프로젝트 삭제

Tier: Premium, Ultimate Offering: GitLab.com

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

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

무료 티어에서는 프로젝트가 즉시 삭제되며 복구할 수 없습니다.

비활성 프로젝트 삭제

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

대체 SSH 포트

GitLab.com은 git+ssh에 대해 다른 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
사용자 정의 도메인 지원 Yes
TLS 인증서 지원 Yes
최대 사이트 크기 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)
아티팩트 최대 크기(압축) 1 GB 최대 아티팩트 크기 참조
아티팩트 만료 시간 2020년 6월 22일부터 명시하지 않는 한 30일 후에 삭제됨(해당 날짜 이전에 생성된 아티팩트에는 만료 기간이 없음) 기본 아티팩트 만료 설정 참조
예약된 파이프라인 크론 */5 * * * * 파이프라인 스케줄 고급 구성 변경 참조
활성 파이프라인의 최대 작업 수 Free 티어: 500, 모든 체험 티어: 1000, 프리미엄: 20000, 얼티메이트: 100000 활성 파이프라인의 작업 수 참조
프로젝트당 최대 CI/CD 구독 수 2 프로젝트당 CI/CD 구독 수 참조
프로젝트당 파이프라인 트리거 최대 수 Free 및 체험 티어: 25000, 유료 티어: 무제한 파이프라인 트리거 수 제한 참조
프로젝트당 최대 파이프라인 스케줄 Free 티어: 10, 모든 유료 티어: 50 파이프라인 스케줄 수 참조
일정별 파이프라인당 최대 파이프라인 수 Free 티어: 24, 모든 유료 티어: 288 파이프라인 스케줄별 하루에 생성되는 파이프라인 수 제한 참조
보안 정책 프로젝트 당 정의된 일정 규칙의 최대 수 모든 유료 티어: 무제한 보안 정책 프로젝트 당 정의된 일정 규칙 수 제한 참조
예약된 작업 아카이빙 2020년 6월 22일부터 3개월. 해당 날짜 이전에 생성된 작업은 2020년 9월 22일 이후에 아카이빙됨 없음
단위 테스트 보고서당 최대 테스트 케이스 수 500000 무제한
최대 등록 러너 수 Free 티어: 그룹당 50 / 프로젝트당 50, 모든 유료 티어: 그룹당 1000 / 프로젝트당 1000 범위별 등록 러너 수 참조
dotenv 변수 제한 Free 티어: 50 / 프리미엄 티어: 100 / 얼티메이트 티어: 150 dotenv 변수 제한 참조
권한 토큰 유효 기간(분) 15 사용자 지정 값 설정: 레일스 콘솔에서 ApplicationSetting.last.update(container_registry_token_expire_delay: <정수>) 실행. 여기서 <정수>는 원하는 분 단위 값임.
하향 파이프라인 트리거 속도 최대치 (특정 프로젝트, 사용자, 및 커밋 당) 분당 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
외부 오브젝트 저장소에서 가져오기용 최대 원격 파일 크기 10 GiB
직접 전송에 의한 소스 GitLab 인스턴스로부터 가져올 때 최대 다운로드 파일 크기 5 GiB
최대 첨부 파일 크기 100 MiB
가져온 아카이브를 위한 최대 압축 해제 파일 크기 25 GiB
푸시 크기 최대값 5 GiB

저장소 크기 제한에 근접하거나 초과하는 경우 다음을 수행할 수 있습니다:

참고: git push 및 GitLab 프로젝트 가져오기는 클라우드플레어를 통해 요청당 5 GiB로 제한됩니다. 파일 업로드 이외의 가져오기에는 이 제한이 적용되지 않습니다. 저장소 제한은 공개 및 비공개 프로젝트 모두에 적용됩니다.

기본 가져오기 소스

기본으로 사용할 수 있는 가져오기 소스는 사용 중인 GitLab에 따라 다릅니다.

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

IP 범위

GitLab.com은 Web/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 인스턴스 러너는 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의 기본값
무료 500
프리미엄 99 좌석 이하: 1,600
100-399 좌석: 2,800
400 좌석 이상: 4,000
얼티메이트 및 오픈 소스 999 좌석 이하: 6,000
1,000-4,999 좌석: 9,000<br5,000 좌석 이상: 13,000

기타 제한

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

자체 관리형 인스턴스 제한에 대해서는 다음을 참조하세요:

러너 SaaS

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

자세한 내용은 러너 SaaS를 참조하십시오.

Puma

GitLab.com은 Puma 요청 시간 제한에 대해 기본값인 60초를 사용합니다.

최대 리뷰어 및 담당자 수

  • 최대 담당자 도입: GitLab 15.6에서 도입되었습니다.
  • 최대 리뷰어 도입: GitLab 15.9에서 도입되었습니다.

병합 요청에서는 다음의 최대값을 적용합니다:

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

GitLab.com 특정 요율 제한

참고: 관리자 문서에 대한 요율 제한을 참조하십시오.

요청이 요율 제한을 받으면 GitLab은 429 상태 코드로 응답합니다. 클라이언트는 요청을 다시 시도하기 전에 기다려야 합니다. 또한 이 응답에는 자세한 정보가 포함된 정보 헤더가 있습니다. 요율 제한 응답을 자세히 살펴보세요.

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

요율 제한 설정
보호된 경로 (특정 IP 주소에 대한) 분당 10 요청
원시 엔드포인트 트래픽 (특정 프로젝트, 커밋 및 파일 경로에 대한) 분당 300 요청
인증되지 않은 트래픽 (특정 IP 주소로부터) 분당 500 요청
인증된 API 트래픽 (사용자별) 분당 2,000 요청
인증된 비-API HTTP 트래픽 (사용자별) 분당 1,000 요청
모든 트래픽 (특정 IP 주소로부터) 분당 2,000 요청
이슈 생성 분당 200 요청
노트 생성 (이슈 및 병합 요청에 대한) 분당 60 요청
고급, 프로젝트 및 그룹 검색 API (특정 IP 주소에 대한) 분당 10 요청
GitLab Pages 요청 (특정 IP 주소에 대한) 50초당 1000 요청
GitLab Pages 요청 (특정 GitLab Pages 도메인에 대한) 10초당 5000 요청
GitLab Pages TLS 연결 (특정 IP 주소에 대한) 50초당 1000 요청
GitLab Pages TLS 연결 (특정 GitLab Pages 도메인에 대한) 10초당 400 요청
파이프라인 생성 요청 (특정 프로젝트, 사용자 및 커밋에 대한) 분당 25 요청
경보 통합 엔드포인트 요청 (특정 프로젝트에 대한) 시간당 3600 요청
풀 미러링 간격 5
API 요청 (사용자별) /api/v4/users/:id에 대한 10분당 300 요청

자세한 내용은 보호된 경로원시 엔드포인트의 요율 제한에 대해 확인할 수 있습니다.

GitLab은 여러 레이어에서 요청을 요율 제한할 수 있습니다. 여기에 나열된 요율 제한은 응용프로그램에서 구성됩니다. 이러한 제한은 IP 주소당 가장 제한적입니다. GitLab.com에 대한 요율 제한 자세한 정보는 개요를 참조하십시오.

요율 제한 응답

요율 제한 응답에 대한 정보는 다음을 참조하세요:

  • 차단된 요청에 대한 응답 헤더 목록
  • 사용자 및 IP 요율 제한 사용자 정의 응답 텍스트

보호된 경로 제어

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

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

차단된 요청에 대한 응답 헤더 목록을 확인하려면 사용자 및 IP 요율 제한을 참조하세요.

자세한 내용은 보호된 경로를 참조하세요.

IP 차단

GitLab.com은 단일 IP 주소에서 이상한 트래픽을 수신하면 시스템이 잠재적으로 악의적으로 간주하여 IP 차단을 할 수 있습니다. 이는 요율 제한 설정에 따라 발생할 수 있습니다. 이상한 트래픽이 멈추면 IP 주소는 차단 유형에 따라 자동으로 해제됩니다(아래 섹션에 설명되어 있음).

GitLab.com의 모든 요청에 대해 403 금지됨 오류를 받으면 차단을 유발할 수 있는 자동화된 프로세스를 확인하세요. 지원이 필요하면 영향을 받는 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 오류가 발생합니다.

그룹 및 프로젝트 가져오기(Export) 및 내보내기(Import)

남용을 피하기 위해 다음을 요율 제한합니다:

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

자세한 내용은 다음을 참조하세요:

구성할 수 없는 제한

구성할 수 없는 제한에 대한 정보는 구성할 수 없는 제한을 참조하세요. 이는 구성할 수 없는 제한이며 따라서 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 클러스터로 전달하는 데에 사용됩니다.

저희의 runbooks에서 더 많은 정보를 확인하실 수 있습니다:

작업 로그

기본적으로 GitLab은 작업 로그를 만료시키지 않습니다. 작업 로그는 영구적으로 보관되며, GitLab.com에서 만료되도록 구성할 수 없습니다. Job 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은 Ruby 작업 스케줄링을 위해 외부 프로세스Sidekiq를 실행합니다.

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