외부 PostgreSQL 서비스를 이용하여 GitLab 구성하기
클라우드 공급업체에서 GitLab을 호스팅하는 경우 PostgreSQL을 위한 관리형 서비스를 추가로 사용할 수 있습니다. 예를 들어 AWS는 PostgreSQL을 실행하는 관리형 관계형 데이터베이스 서비스(RDS)를 제공합니다.
또는 Linux 패키지와 별도로 본인이 소유한 PostgreSQL 인스턴스나 클러스터를 관리할 수도 있습니다.
클라우드에서 관리형 서비스를 사용하거나 본인이 PostgreSQL 인스턴스를 제공하는 경우 다음 단계를 따릅니다:
- 데이터베이스 요구 사항 문서에 따라 PostgreSQL을 설정합니다.
- 선택한 비밀번호로
gitlab
사용자를 설정하고gitlabhq_production
데이터베이스를 생성하고, 해당 사용자를 데이터베이스의 소유자로 설정합니다. 이에 대한 예시는 자체 컴파일 설치 설명서에서 확인할 수 있습니다. - 클라우드에서 관리형 서비스를 사용하는 경우
gitlab
사용자에 추가적인 역할을 부여해야 할 수 있습니다:- Amazon RDS는
rds_superuser
역할을 요구합니다. - Azure Database for PostgreSQL은
azure_pg_admin
역할을 요구합니다. Azure Database for PostgreSQL - Flexible Server는 설치되기 전에 화이트리스트 확장을 허용해야 합니다. - Google Cloud SQL은
cloudsqlsuperuser
역할을 요구합니다.
이는 설치하는 동안과 업그레이드하는 동안 확장 기능이 필요합니다. 대안으로, 확장 기능을 매뉴얼으로 설치하고, 향후 GitLab 업그레이드 중 발생할 수 있는 문제에 대해 읽으세요.
- Amazon RDS는
-
/etc/gitlab/gitlab.rb
파일에 외부 PostgreSQL 서비스의 적절한 연결 세부 정보로 GitLab 애플리케이션 서버를 구성합니다:# 번들 제공되는 Omnibus PostgreSQL 비활성화 postgresql['enable'] = false # PostgreSQL 연결 세부 정보 gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_encoding'] = 'unicode' gitlab_rails['db_host'] = '10.1.0.5' # 데이터베이스 서버의 IP/호스트 명 gitlab_rails['db_password'] = 'DB 비밀번호'
자세한 내용은 GitLab 다중 노드 설정을 위해 참조 아키텍처(reference architectures)를 참조하세요.
-
변경 사항이 적용되도록 다시 구성합니다:
sudo gitlab-ctl reconfigure
-
TCP 포트를 활성화하려면 PostgreSQL을 다시 시작합니다:
sudo gitlab-ctl restart
문제 해결
SSL SYSCALL 오류: EOF 감지
오류 해결
외부 PostgreSQL 인스턴스를 사용하는 경우 다음과 같은 오류가 발생할 수 있습니다:
pg_dump: error: Error message from server: SSL SYSCALL error: EOF detected
이 오류를 해결하려면 최소한의 PostgreSQL 요구 사항을 충족하는지 확인하세요. RDS 인스턴스를 지원되는 버전으로 업그레이드한 후에는 이 오류 없이 백업을 수행할 수 있어야 합니다. 자세한 내용은 이슈 64763를 참조하세요.