필수 조건
- GitHub Enterprise 라이선스 파일이 있어야 합니다. 자세한 내용은 "GitHub Enterprise Server 평가판 설정" 및 "GitHub Enterprise 라이선스 정보"의 내용을 참조하세요.
- GCE(Google Compute Engine) VM(가상 머신) 인스턴스를 시작할 수 있는 Google Cloud Platform 계정이 있어야 합니다. 자세한 내용은 Google Cloud Platform 웹 사이트 및 Google Cloud Platform 설명서를 참조하세요.
- 인스턴스를 시작하는 데 필요한 대부분의 작업은 Google Cloud Platform 콘솔을 사용하여 수행할 수도 있습니다. 그러나 초기 설치를 위해 gcloud compute 명령줄 도구를 설치하는 것이 좋습니다. gcloud compute 명령줄 도구를 사용하는 예제는 다음과 같습니다. 자세한 내용은 Google 설명서의 gcloud compute 설치 및 설정 가이드를 참조하세요.
하드웨어 고려 사항
최소 권장 요구 사항
GitHub Enterprise Server 인스턴스에 대한 사용자 라이선스 수에 따라 다른 하드웨어 구성을 사용하는 것이 좋습니다. 최소 권장 요구 사항보다 더 많은 리소스를 프로비저닝하면 인스턴스의 성능과 스케일링이 향상됩니다.
사용자 라이선스 | x86-64 vCPUs | 메모리 | 루트 스토리지 | 연결된(데이터) 스토리지 |
---|---|---|---|---|
평가판, 데모 또는 10명의 라이트 사용자 | 4 | 32GB | 200GB | 150GB |
10~3,000 | 8 | 48GB | 200GB | 300GB |
3,000~5000 | 12 | 64GB | 200GB | 500GB |
5,000~8,000 | 16 | 96 GB | 200GB | 750GB |
8,000~10,000+ | 20 | 160GB | 200GB | 1000GB |
인스턴스 사용자에 대해 GitHub Actions 또는 GitHub Advanced Security를 사용하도록 설정하려는 경우 더 많은 리소스가 필요합니다.
- GitHub Actions - CPU 및 메모리 25% 증가
- GitHub Advanced Security - CPU 및 메모리 15% 증가
이러한 조정은 각 사용자 계층의 기본 요구 사항에 적용해야 합니다.
여러 요구 사항에 대한 자세한 내용은 "GitHub Enterprise Server용 GitHub Actions 시작"을 참조하세요.
인스턴스 사용자에 대해 Container registry를 사용하도록 설정하려는 경우 더 많은 리소스가 필요합니다. 이러한 요구 사항에 대한 자세한 내용은 "엔터프라이즈를 위한 GitHub Packages 시작" 항목을 참조하세요.
기존 인스턴스의 리소스 조정에 대한 자세한 내용은 "스토리지 용량 늘리기" 및 "CPU 또는 메모리 리소스 늘리기"를 참조하세요.
스토리지
IOPS(초당 입출력 작업 수)가 높고 GitHub Enterprise Server의 대기 시간이 짧은 고성능 SSD를 사용하는 것이 좋습니다. 워크로드는 I/O 집약적입니다. 운영 체제 미설치 하이퍼바이저를 사용하는 경우 디스크를 직접 연결하거나 SAN(스토리지 영역 네트워크)의 디스크를 사용하는 것이 좋습니다.
인스턴스에는 루트 디스크와 별도로 영구 데이터 디스크가 필요합니다. 자세한 내용은 "시스템 개요"을(를) 참조하세요.
Warning
루트 스토리지는 인스턴스 루트 디스크의 총 크기를 나타냅니다. 인스턴스가 부팅되면 루트 파일 시스템에 100GB는 루트 파일 시스템 사용할 수 있습니다. 나머지 100GB는 업그레이드를 위해 예약되어 있습니다. 자세한 내용은 "시스템 개요"을(를) 참조하세요.
GitHub Actions을 구성하려면 외부 BLOB 스토리지를 제공해야 합니다. 자세한 내용은 "GitHub Enterprise Server용 GitHub Actions 시작"을(를) 참조하세요.
루트 파일 시스템의 사용 가능한 공간은 전체 디스크 크기의 50%입니다. 새 인스턴스를 빌드하거나 기존 인스턴스를 사용하여 인스턴스의 루트 디스크 크기를 조정할 수 있습니다. 자세한 내용은 "시스템 개요" 및 "스토리지 용량 늘리기"를 참조하세요.
CPU 및 메모리
GitHub Enterprise Server에 필요한 CPU 및 메모리 리소스는 사용자, 자동화 및 통합에 대한 활동 수준에 따라 달라집니다.
GitHub Enterprise Server 인스턴스에 프로비전하는 모든 VM은 x86-64 CPU 아키텍처를 사용해야 합니다. AArch64 또는 arm64와 같은 다른 아키텍처는 지원하지 않습니다.
GitHub Enterprise Server 인스턴스의 사용자에 대해 GitHub Actions를 사용하도록 설정하려는 경우 인스턴스에 대한 추가 CPU 및 메모리 리소스를 프로비저닝해야 할 수 있습니다. 자세한 내용은 "GitHub Enterprise Server용 GitHub Actions 시작"을(를) 참조하세요.
CPU 리소스를 늘릴 때 GitHub에서는 인스턴스에 프로비저닝하는 각 vCPU(최대 16개 vCPU)에 대해 최소 6.5GB의 메모리를 추가하는 것이 좋습니다. 16개 이상의 vCPU를 사용하는 경우 각 vCPU에 대해 6.5GB의 메모리를 추가할 필요는 없지만 충분한 메모리가 있는지 확인하기 위해 인스턴스를 모니터링해야 합니다.
경고: 사용자가 외부 시스템에 GitHub Enterprise Server에 대한 활동을 알리도록 웹후크 이벤트를 구성하는 것이 좋습니다. 변경 또는 _폴링_에 대한 자동화된 검사는 인스턴스의 성능 및 스케일링 성능에 부정적인 영향을 줍니다. 자세한 내용은 "웹후크 정보"을(를) 참조하세요.
GitHub Enterprise Server의 용량 및 성능 모니터링에 대한 자세한 내용은 "인스턴스 모니터링" 항목을 참조하세요.
인스턴스의 CPU 또는 메모리 리소스를 늘릴 수 있습니다. 자세한 내용은 "CPU 또는 메모리 리소스 늘리기" 항목을 참조하세요.
머신 유형 확인
Google Cloud Platform에서 GitHub Enterprise Server 인스턴스를 시작하기 전에 조직의 요구 사항에 가장 적합한 머신 유형을 결정해야 합니다. GitHub Enterprise Server에 대한 최소 권장 요구 사항을 검토하려면 "최소 권장 요구 사항"을 참조하세요.
인스턴스 크기를 조정하여 항상 CPU 또는 메모리를 스케일 업할 수 있습니다. 인스턴스에 사용할 수 있는 리소스를 변경하려면 사용자의 가동 중지 시간이 필요하므로 GitHub에서는 규모에 맞게 리소스를 오버프로비저닝하는 것이 좋습니다.
GitHub에서는 GitHub Enterprise Server에 대해 범용 고메모리 머신을 권장합니다. 자세한 내용은 Google Compute Engine 설명서의 "머신 유형"을 참조하세요.
GitHub Enterprise Server 이미지 선택
-
gcloud compute 명령줄 도구를 사용하여 퍼블릭 GitHub Enterprise Server 이미지를 나열합니다.
gcloud compute images list --project github-enterprise-public --no-standard-images
-
GitHub Enterprise Server의 최신 GCE 이미지에 대한 이미지 이름을 기록해 둡니다.
방화벽 구성
GCE 가상 머신은 방화벽이 있는 네트워크의 멤버로 만들어집니다. GitHub Enterprise Server VM과 연결된 네트워크의 경우 아래 표에 나열된 필수 포트를 허용하도록 방화벽을 구성해야 합니다. 관리자 및 사용자 목적을 위해 노출해야 하는 네트워크 서비스에 따라 선택적으로 네트워크 포트를 여는 것이 좋습니다. 자세한 내용은 Google Cloud Platform 설명서의 "네트워크 포트" 및 방화벽 규칙 개요 를 참조하세요.
-
gcloud compute 명령줄 도구를 사용하여 네트워크를 만듭니다. 자세한 내용은 Google 설명서의 gcloud compute networks create를 참조하세요.
gcloud compute networks create NETWORK-NAME --subnet-mode auto
-
아래 표의 각 포트에 대한 방화벽 규칙을 만듭니다. 자세한 내용은 Google 설명서의 gcloud compute firewall-rules를 참조하세요.
$ gcloud compute firewall-rules create RULE-NAME \ --network NETWORK-NAME \ --allow tcp:22,tcp:25,tcp:80,tcp:122,udp:161,tcp:443,udp:1194,tcp:8080,tcp:8443,tcp:9418,icmp
이 표에서는 필요한 포트와 각 포트가 사용되는 대상을 식별합니다.
포트 서비스 설명 22 SSH SSH 액세스를 통한 Git입니다. 퍼블릭/프라이빗 리포지토리에 대한 복제, 가져오기 및 푸시 작업이 지원됩니다. 25 SMTP 암호화를 사용한 SMTP(STARTTLS) 지원입니다. 80 HTTP 웹 애플리케이션 액세스입니다. SSL을 활성화하면 모든 요청이 HTTPS 포트로 리디렉션됩니다. 122 SSH 인스턴스 셸 액세스입니다. 기본 SSH 포트(22)는 애플리케이션 git+ssh 네트워크 트래픽 전용입니다. 161/UDP SNMP 네트워크 모니터링 프로토콜 작업에 필요합니다. 443 HTTPS HTTPS 액세스를 통한 웹 애플리케이션 및 Git입니다. 1194/UDP VPN 고가용성 구성에서 복제 네트워크 터널을 보호합니다. WireGuard를 사용하여 암호화됩니다. 8080 HTTP 일반 텍스트 웹 기반 관리 콘솔입니다. SSL을 사용하지 않도록 수동으로 설정하지 않는 한 필요하지 않습니다. 8443 HTTPS 웹 기반 관리 콘솔을 보호합니다. 기본 설치 및 구성에 필요합니다. 9418 Git 간단한 Git 프로토콜 포트입니다. 공용 리포지토리에만 작업을 복제하고 페치합니다. 암호화되지 않은 네트워크 통신입니다. 인스턴스에서 프라이빗 모드를 사용하도록 설정한 경우 익명 Git 읽기 액세스를 사용하도록 설정한 경우에만 이 포트를 여는 것이 필요합니다. 자세한 내용은 "엔터프라이즈에서 리포지토리 관리 정책 적용"을(를) 참조하세요.
고정 IP 할당 및 VM에 할당
프로덕션 어플라이언스인 경우 고정 외부 IP 주소를 예약하고 GitHub Enterprise Server VM에 할당하는 것이 좋습니다. 그렇지 않으면 VM의 공용 IP 주소는 다시 시작한 후에 유지되지 않습니다. 자세한 내용은 Google 가이드 정적 외부 IP 주소 예약을 참조하세요.
프로덕션 고가용성 구성에서 기본 및 복제본 어플라이언스에는 별도의 고정 IP 주소가 할당되어야 합니다.
GitHub Enterprise Server 인스턴스 만들기
GitHub Enterprise Server 인스턴스를 만들려면 GitHub Enterprise Server 이미지를 사용하여 GCE 인스턴스를 만들고 인스턴스 데이터를 위한 추가 스토리지 볼륨을 연결해야 합니다. 자세한 내용은 “하드웨어 고려사항”을 참조하세요.
-
gcloud compute 명령줄 도구를 사용하여 인스턴스 데이터에 연결된 스토리지 볼륨으로 사용할 데이터 디스크를 만들고 사용자 라이선스 수에 따라 크기를 구성합니다. 자세한 내용은 Google 설명서의 gcloud compute disks create를 참조하세요.
gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE
-
그런 다음, 선택한 GitHub Enterprise Server 이미지의 이름을 사용하여 인스턴스를 만들고 데이터 디스크를 연결합니다. 자세한 내용은 Google 설명서의 gcloud compute instances create를 참조하세요.
$ gcloud compute instances create INSTANCE-NAME \ --machine-type n1-standard-8 \ --image GITHUB-ENTERPRISE-IMAGE-NAME \ --disk name=DATA-DISK-NAME \ --metadata serial-port-enable=1 \ --zone ZONE \ --network NETWORK-NAME \ --image-project github-enterprise-public
인스턴스 구성
인스턴스를 구성하려면 라이선스 파일을 업로드하고, root 관리 콘솔 암호를 설정하고 인스턴스 설정을 구성한 다음 인스턴스를 다시 시작해야 합니다.
경고: 공격자가 새 인스턴스를 손상시키지 않도록 하려면 루트 관리 콘솔 암호를 개인적으로 설정하고 가능한 한 빨리 첫 번째 사용자를 만들어야 합니다.
- 가상 머신의 공용 DNS 이름을 복사하여 웹 브라우저에 붙여넣습니다.
- 메시지가 표시되면 라이선스 파일을 업로드하고 관리 콘솔 암호를 설정합니다. 자세한 내용은 "GitHub Enterprise 라이선스 관리"을(를) 참조하세요.
- 관리 콘솔에서 원하는 설정을 구성하고 저장합니다. 자세한 내용은 "GitHub Enterprise 구성"을(를) 참조하세요.
- 인스턴스가 자동으로 다시 시작됩니다.
- 인스턴스 방문을 클릭합니다.