Artikelversion: Enterprise Server 2.17
GitHub Enterprise Server auf AWS installieren
Zum Installieren von GitHub Enterprise Server auf Amazon Web Services (AWS) müssen Sie eine Amazon Elastic Compute Cloud (EC2) Instance starten und ein getrenntes Amazon Elastic Block Store-Datenvolume (EBS) erstellen und anhängen.
Voraussetzungen
- Du musst über eine GitHub Enterprise-Lizenzdatei verfügen. Besuche enterprise.github.com, um eine vorhandene Lizenzdatei herunterzuladen oder eine Testlizenz anzufordern. Weitere Informationen findest Du unter „Deine GitHub Enterprise Server-Lizenz verwalten).“
- Sie müssen über ein AWS-Konto verfügen, mit dem EC2 Instances gestartet und EBS-Volumes erstellt werden können. Weitere Informationen finden Sie auf der „Amazon Web Services-Website“.
- Die meisten Aktionen, die zum Starten von Ihre GitHub Enterprise Server-Instanz erforderlich sind, können auch mithilfe der AWS Management Console ausgeführt werden. Zur Ersteinrichtung sollten Sie jedoch die AWS-Befehlszeilen-Schnittstelle (CLI) installieren. Im Folgenden finden Sie Beispiele zur Verwendung der AWS-Befehlszeilen-Schnittstelle. Weitere Informationen finden Sie in den Leitfäden von Amazon unter „Arbeiten mit der AWS Management Console“ und „Was ist die AWS Command Line Interface?“.
In diesem Leitfaden wird davon ausgegangen, dass Sie mit den folgenden AWS-Konzepten vertraut sind:
- EC2 Instances starten
- EBS-Volumes verwalten
- Sicherheitsgruppen verwenden (Zum Verwalten des Netzwerkzugriffs auf Ihre Instanz)
- Elastic IP-Adressen (Wird für Produktionsumgebungen dringend empfohlen)
- EC2 und virtuelle Private Cloud (Wenn Sie planen, eine virtuelle Private Cloud zu verwenden)
Grundlegendes zur Hardware
GitHub Enterprise Server schreibt eine persistente Data-Disk vor, die von der Root-Disk getrennt ist. Weitere Informationen findest Du unter „Systemübersicht“. Wir empfehlen verschiedene Hardwarekonfigurationen basierend auf der Anzahl in Ihre GitHub Enterprise Server-Instanz verwendeten Benutzerlizenzen. |
Benutzerlizenzen | vCPUs | Arbeitsspeicher | Attached-Storage | Root-Storage |
---|---|---|---|---|
Test, Demo oder 10 Benutzer mit eingeschränkten Funktionen | 2 | 16 GB | 100 GB | 200 GB |
10–3000 | 4 | 32 GB | 250 GB | 200 GB |
3000–5000 | 8 | 64 GB | 500 GB | 200 GB |
5000–8000 | 12 | 96 GB | 750 GB | 200 GB |
8000–10000+ | 16 | 128 GB | 1000 GB | 200 GB |
Es gibt Mindestempfehlungen. Entsprechend Deiner Nutzung, beispielsweise in Bezug auf die Benutzeraktivität und die ausgewählten Integrationen, sind möglicherweise mehr Ressourcen erforderlich. Es wird empfohlen, beim Erhöhen der CPU-Ressourcen mindestens 6.5 GB Speicher für jede CPU (bis zu 16 CPUs) hinzuzufügen, die der GitHub Enterprise Server Instanz angehängt wurden. Weitere Informationen findest Du unter „CPU- und Arbeitsspeicherressourcen erhöhen.“
Hinweis: Die Größe der Root-Disk kann geändert werden, indem eine neue Appliance erstellt oder eine vorhandene Appliance verwendet wird. Weitere Informationen findest Du unter „Speicherkapazität erhöhen“.
Instanztyp bestimmen
Bevor Sie Ihre GitHub Enterprise Server-Instanz auf AWS starten, müssen Sie den Typ der virtuellen Maschine ermitteln, der den Anforderungen Ihrer Organisation am besten gerecht wird.
Unterstützte Instanztypen
GitHub Enterprise Server wird auf den folgenden EC2-Instance-Typen unterstützt. Weitere Informationen findest Du auf der Übersichtsseite zu AWS-EC2-Instance-Typen.
EC2-Instance-Typ | Modell |
---|---|
C3 | c3.2xlarge, c3.4xlarge, c3.8xlarge |
EC2-Instance-Typ | Modell |
---|---|
C4 | c4.2xlarge, c4.4xlarge, c4.8xlarge |
EC2-Instance-Typ | Modell |
---|---|
C5 | c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge |
EC2-Instance-Typ | Modell |
---|---|
M3 | m3.xlarge, m3.2xlarge |
EC2-Instance-Typ | Modell |
---|---|
M4 | m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge |
EC2-Instance-Typ | Modell |
---|---|
M5 | m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge |
EC2-Instance-Typ | Modell |
---|---|
R4 | r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge |
EC2-Instance-Typ | Modell |
---|---|
R5 | r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.12xlarge, r5.24xlarge |
EC2-Instance-Typ | Modell |
---|---|
X1 | x1.16xlarge, x1.32xlarge |
Empfohlene Instanztypen
Basierend auf der Anzahl Deiner Benutzerlizenzen empfehlen wir die folgenden Instanztypen. |
Benutzerlizenz | Empfohlener Typ |
---|---|
Test, Demo oder 10 Benutzer mit eingeschränkten Funktionen | r4.large |
10–3000 | r4.xlarge |
3000–5000 | r4.2xlarge |
5000–8000 | r4.4xlarge |
8000–10000+ | r4.8xlarge |
Hinweis: Du kannst Deine CPU oder Deinen Arbeitsspeicher jederzeit hochskalieren, indem Du die Größe Deiner Instanz anpasst. Da das Anpassen Deiner CPU- oder Arbeitsspeichergröße jedoch Ausfallzeiten für Deine Benutzer bedeutet, empfehlen wir ein Over-Provisioning der zu skalierenden Ressourcen.
AMI für GitHub Enterprise Server auswählen
Mithilfe des GitHub Enterprise Server-Portals oder der AWS CLI können Sie ein Amazon Machine Image (AMI) für GitHub Enterprise Server auswählen.
AMIs for GitHub Enterprise Server are available in the AWS GovCloud (US-East and US-West) region. Dadurch können US-Kunden mit bestimmten gesetzlichen Anforderungen GitHub Enterprise Server in einer föderal konformen Cloud-Umgebung betreiben. Weitere Informationen zur AWS-Compliance mit föderalen und anderen Standards finden Sie auf den Seiten AWS's GovCloud (US) und AWS-Compliance.
GitHub Enterprise Server-Portl zur AMI-Auswahl verwenden
- Navigiere zur GitHub Enterprise Server-Downloadseite.
- Klicke auf Get the latest release of GitHub Enterprise Server (Neuesten Release abrufen).
- Klicken Sie im Dropdownmenü „Select your platform“ (Ihre Plattform auswählen) auf Amazon Web Services.
- Wählen Sie im Dropdownmenü „Select your AWS“ (Ihren AWS auswählen) Ihre gewünschte Region aus.
- Notieren Sie sich die angezeigte AMI-ID.
AWS CLI zur AMI-Auswahl verwenden
- Rufen Sie mithilfe der AWS CLI eine Liste der GitHub Enterprise Server-Images ab, die von den AWS-Inhaber-IDs (
025577942450
für GovCloud und895557238572
für andere Regionen) von GitHub veröffentlicht wurden. Weitere Informationen finden Sie unter „describe-images“ in der AWS-Dokumentation.aws ec2 describe-images \ --owners OWNER ID \ --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \ --output=text
- Notieren Sie sich die AMI-ID für das neueste GitHub Enterprise Server-Image.
Sicherheitsgruppe erstellen
Bei der ersten AMI-Verwendung müssen Sie eine Sicherheitsgruppe erstellen und für jeden in der folgenden Tabelle angegebenen Port eine neue Sicherheitsgruppenregel hinzufügen. Weitere Informationen finden Sie im AWS-Leitfaden zur „Verwendung von Sicherheitsgruppen“.
-
Erstellen Sie an der AWS CLI eine neue Sicherheitsgruppe. Weitere Informationen finden Sie unter „create-security-group“ in der AWS-Dokumentation.
$ aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
-
Notieren Sie sich die Sicherheitsgruppen-ID (
sg-xxxxxxxx
) Ihrer neu erstellten Sicherheitsgruppe. -
Erstellen Sie eine Sicherheitsgruppenregel für jeden der Ports in der folgenden Tabelle. Weitere Informationen finden Sie unter „authorize-security-group-ingress“ in der AWS-Dokumentation.
$ aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE
Diese Tabelle zeigt, wofür jeder Port verwendet wird.
Port Dienst Beschreibung 22 SSH Git über SSH-Zugriff. Unterstützt das Klonen, Abrufen und Übertragen von Vorgängen an öffentliche/private Repositorys. 25 SMTP SMTP mit Verschlüsselung (STARTTLS) wird unterstützt. 80 HTTP Webanwendungszugriff. Alle Anforderungen werden an den HTTPS-Port weitergeleitet, wenn SSL aktiviert ist. 122 SSH Shellzugriff auf die Instanz. Der standardmäßige SSH-Port (22) ist für den Git- und SSH-Netzwerk-Traffic der Anwendung vorgesehen. 161/UDP SNMP Für Netzwerküberwachungs-Protokollvorgänge erforderlich. 443 HTTPS Webanwendung und Git über HTTPS-Zugriff. 1194/UDP VPN Sicherer Replikationsnetzwerktunnel in einer hochverfügbaren Konfiguration. 8080 HTTP Webbasierte Managementkonsole in Nur-Text. Nur erforderlich, wenn SSL manuell deaktiviert wird. 8443 HTTPS Sichere webbasierte Managementkonsole. Für die grundlegende Installation und Konfiguration erforderlich. 9418 Git Einfacher Git-Protokollport. Nur Klon- und Abrufvorgänge zu öffentlichen Repositorys. Unverschlüsselte Netzwerkkommunikation.
GitHub Enterprise Server-Instanz erstellen
Zum Erstellen der Instanz müssen Sie eine EC-Instanz mit Ihrem GitHub Enterprise Server-AMI starten und ein zusätzliches Storage-Volume für Ihre Instanzdaten anhängen. Weitere Informationen finden Sie unter „Grundlegendes zur Hardware“.
Hinweis: Sie können die Daten-Disk verschlüsseln, um eine zusätzliche Sicherheitsebene zu schaffen und sicherzustellen, dass alle Daten, die Sie auf Ihre Instanz schreiben, geschützt sind. Die Verwendung verschlüsselter Disks wirkt sich geringfügig auf die Leistung aus. Wenn Sie Ihr Volume verschlüsseln möchten, wird dringend empfohlen, dies zu erledigen, bevor Sie Ihre Instanz erstmals starten. Weitere Informationen finden Sie im Leitfaden „Amazon EBS Encryption“.
Warnung: Wenn Sie die Verschlüsselung nach der Konfiguration Ihrer Instanz aktivieren, müssen Sie Ihre Daten zum verschlüsselten Volume migrieren, was Ausfallzeiten für Ihre Benutzer zur Folge hat.
EC-Instanz starten
Starten Sie an der AWS-CLI eine EC2-Instanz mit Ihrem AMI und der von Ihnen erstellten Sicherheitsgruppe. Attach a new block device to use as a storage volume for your instance data, and configure the size based on your user license count. Weitere Informationen finden Sie unter „run-instances“ in der AWS-Dokumentation.
aws ec2 run-instances \
--security-group-ids SECURITY_GROUP_ID \
--instance-type INSTANCE_TYPE \
--image-id AMI_ID \
--block-device-mappings '[{"DeviceName":"/dev/xvdf","Ebs":{"VolumeSize":SIZE,"VolumeType":"TYPE"}}]' \
--region REGION \
--ebs-optimized
Elastic IP zuordnen und mit der Instanz verknüpfen
Wenn es sich hierbei um eine Produktionsinstanz handelt, wird dringend empfohlen, eine Elastic IP (EIP) zuzuordnen und sie mit der Instanz zu verknüpfen, bevor Sie zur GitHub Enterprise Server-Konfiguration weitergehen. Andernfalls wird die öffentliche IP-Adresse der Instanz nach dem Neustart der Instanz nicht beibehalten. Weitere Informationen finden Sie unter „Zuweisen einer Elastic IP-Adresse“ und „Zuordnen einer Elastic IP-Adresse zu einer laufenden Instance“ in der AWS-Dokumentation.
Den primären und Replikatinstanzen sollten in Hochverfügbarkeitskonfigurationen in der Produktion separate EIPs zugewiesen werden. Weitere Informationen finden Sie unter „GitHub Enterprise Server für Hochverfügbarkeit konfigurieren“.
GitHub Enterprise Server-Instanz konfigurieren
- Kopiere den Namen des öffentlichen DNS der virtuellen Maschine, und füge ihn in einen Webbrowser ein.
- Lade an der Eingabeaufforderung Deine Lizenzdatei hoch, und lege das Passwort für die Managementkonsole fest. Weitere Informationen findest Du unter „Ihre GitHub Enterprise Server-Lizenz verwalten“.
- Konfiguriere in der Managementkonsole Deine gewünschten Einstellungen, und speichere sie. Weitere Informationen finden Sie unter „GitHub Enterprise Server-Appliance konfigurieren“.
- Die Instanz wird automatisch neu gestartet.
- Klicke auf Visit your instance (Instanz aufrufen).