Prérequis
- Vous devez disposer d’un fichier de licence GitHub Enterprise. Pour plus d’informations, consultez « Configuration d’un essai de GitHub Enterprise Server » et « À propos des licences pour GitHub Enterprise ».
- Vous devez disposer d’un compte AWS capable de lancer des instances EC2 et de créer des volumes EBS. Pour plus d’informations, consultez le site web Amazon Web Services.
- La plupart des actions nécessaires au lancement de votre instance GitHub Enterprise Server peuvent également être effectuées à l’aide d’AWS Management Console. Toutefois, nous vous recommandons d’installer l’interface de ligne de commande (CLI) AWS pour la configuration initiale. Vous trouverez ci-dessous des exemples utilisant l’interface CLI AWS. Pour plus d’informations, consultez les guides d’Amazon Utilisation de la console AWS Management Console et Présentation de l’interface de ligne de commande AWS.
Ce guide suppose que vous connaissez les concepts AWS suivants :
- Lancement d’instances EC2
- Gestion des volumes EBS
- Utilisation de groupes de sécurité (pour la gestion de l’accès réseau à votre instance)
- Adresses IP Elastic (EIP) (fortement recommandées pour les environnements de production)
- EC2 et VPC (Virtual Private Cloud) (si vous envisagez un lancement dans un cloud privé virtuel)
- Tarifs AWS (pour le calcul et la gestion des coûts)
Pour obtenir un diagramme fournissant une vue d’ensemble de l’architecture, consultez « Diagramme d’architecture AWS pour le déploiement de GitHub Enterprise Server ».
Ce guide recommande d’appliquer le principe des privilèges minimum pour la configuration de votre instance GitHub Enterprise Server sur AWS. Pour plus d’informations, reportez-vous à la documentation sur AWS Identity and Access Management (IAM).
Considérations matérielles
Exigences minimales recommandées
Nous recommandons différentes configurations matérielles en fonction du nombre de licences utilisateur pour votre instance GitHub Enterprise Server. Si vous approvisionnez plus de ressources que les exigences minimales recommandées, cela améliorera les performances et la mise à l’échelle de votre instance.
Licences utilisateur | Processeurs virtuels x86-64 | Mémoire | Stockage racine | Stockage (de données) attaché | D’OPÉRATIONS D’E/S PAR SECONDE |
---|---|---|---|---|---|
Essai, démonstration ou 10 utilisateurs légers | 4 | 32 Go | 400 Go | 500 Go | 600 |
Jusqu’à 1 000 | 8 | 48 Go | 400 Go | 500 Go | 3000 |
1 000 à 3 000 | 16 | 64 Go | 400 Go | 1 000 Go | 6000 |
3 000 à 5 000 | 32 | 128 Go | 400 Go | 1 500 Go | 9000 |
5 000 à 8 000 | 48 | 256 Go | 400 Go | 3 000 Go | 12 000 |
8 000 à 10 000+ | 64 | 512 Go | 400 Go | 5 000 Go | 15000 |
Si vous envisagez d’activer GitHub Actions ou GitHub Advanced Security pour les utilisateurs de votre instance, d’autres ressources sont requises.
- GitHub Actions – augmenter l’UC et la mémoire de 25 %
- GitHub Advanced Security – augmenter l’UC et la mémoire de 15 %
Ces ajustements doivent être appliqués aux exigences de base pour chaque niveau utilisateur.
Pour plus d’informations sur ces configurations requises, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
Si vous envisagez d’activer Container registry pour les utilisateurs de votre instance, d’autres ressources sont requises. Pour plus d’informations sur ces configurations requises, consultez « Bien démarrer avec GitHub Packages pour votre entreprise ».
Pour plus d’informations sur l’ajustement des ressources pour une instance existante, consultez « Augmentation de la capacité de stockage » et « Augmentation des ressources processeur ou mémoire ».
Stockage
Nous recommandons un disque SSD haute performance avec un nombre élevé d’IOPS et une faible latence pour GitHub Enterprise Server. Les charges de travail sont gourmandes en E/S. Si vous utilisez un hyperviseur nu, nous vous recommandons d’attacher directement le disque ou d’utiliser un disque d’un réseau de zone de stockage (SAN).
Votre instance nécessite un disque de données persistant séparé du disque racine. Pour plus d’informations, consultez « Vue d’ensemble du système ».
Warning
Le stockage racine fait référence à la taille totale du disque racine de votre instance. Lorsque l’instance est démarrée, vous verrez 200 Go disponibles sur le système de fichiers racine. Les 200 Go restants sont réservés aux mises à niveau. Pour plus d’informations, consultez « Vue d’ensemble du système ».
Pour configurer GitHub Actions, vous devez fournir un stockage d’objets blob externe. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
L’espace disponible sur le système de fichiers racine sera de 50 % de la taille totale du disque. Vous pouvez redimensionner le disque racine de votre instance en créant une nouvelle instance ou en utilisant une instance existante. Pour plus d’informations, consultez « Vue d’ensemble du système » et « Augmentation de la capacité de stockage ».
Processeur et mémoire
Les ressources processeur et mémoire que GitHub Enterprise Server requiert dépendent des niveaux d’activité pour les utilisateurs, les automatisations et les intégrations.
Toutes les machines virtuelles que vous provisionnez pour votre instance GitHub Enterprise Server doivent utiliser l’architecture de processeur x86-64. Les autres architectures ne sont pas prises en charge, telles que Aarch64 ou arm64.
Si vous envisagez d’activer GitHub Actions pour les utilisateurs de votre instance GitHub Enterprise Server, il se peut que vous deviez approvisionner des ressources processeur et mémoire supplémentaires pour celle-ci. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
Quand vous augmentez les ressources d’UC, GitHub vous recommande d’ajouter au moins 6,5 Go de mémoire par processeur virtuel (jusqu’à 16 processeurs virtuels) que vous approvisionnez pour l’instance. Lorsque vous utilisez plus de 16 processeurs virtuels, vous n’avez pas besoin d’ajouter 6,5 Go de mémoire par processeur virtuel, mais vous devez surveiller votre instance pour vous assurer qu’elle dispose de suffisamment de mémoire.
Avertissement : nous recommandons aux utilisateurs de configurer des événements de webhook pour avertir des systèmes externes de l’activité sur GitHub Enterprise Server. Les vérifications automatisées des modifications, ou l’interrogation, auront un impact négatif sur les performances et la scalabilité de votre instance. Pour plus d’informations, consultez « À propos des webhooks ».
Pour plus d’informations sur la supervision de la capacité et des performances de GitHub Enterprise Server, consultez « Surveillance de votre instance ».
Vous pouvez augmenter les ressources processeur ou mémoire de votre instance. Pour plus d’informations, consultez « Augmentation des ressources processeur ou mémoire ».
Détermination du type d’instance
Avant de lancer votre instance GitHub Enterprise Server sur AWS, vous devez déterminer le type de machine qui répond le mieux aux besoins de votre organisation. Pour voir exigences minimales recommandées pour GitHub Enterprise Server, consultez « Exigences minimales recommandées ».
Vous pouvez toujours effectuer un scale-up de votre UC ou de votre mémoire en redimensionnant votre instance. La modification des ressources disponibles pour votre instance nécessite un temps d’arrêt pour vos utilisateurs. Alors GitHub recommande de surprovisionner les ressources pour tenir compte de la mise à l’échelle.
GitHub recommande une instance à mémoire optimisée pour GitHub Enterprise Server. Pour plus d’informations, consultez Types d’instances Amazon EC2 sur le site web Amazon EC2.
Sélection de l’AMI GitHub Enterprise Server
Vous pouvez sélectionner une AMI (Amazon Machine Image) pour GitHub Enterprise Server à l’aide du portail GitHub Enterprise Server ou de l’interface CLI AWS.
Les AMI pour GitHub Enterprise Server sont disponibles dans la région AWS GovCloud (USA Est et USA Ouest). Les clients américains ayant des exigences réglementaires spécifiques peuvent ainsi exécuter GitHub Enterprise Server dans un environnement cloud conforme aux normes fédérales. Pour plus d’informations sur la conformité d’AWS aux normes (notamment fédérales), consultez les pages AWS GovCloud (US) et Conformité AWS.
Utilisation du portail GitHub Enterprise Server pour sélectionner une AMI
-
Accédez à l’image que vous souhaitez utiliser pour votre nouvelle instance.
- Accédez aux Notes de publication.
- Sur la barre latérale droite, cliquez sur la version que vous souhaitez télécharger.
- Cliquez sur Télécharger GitHub Enterprise Server X.X.X.
-
Sous « GitHub dans le cloud », sélectionnez le menu déroulant « Sélectionner votre plateforme », puis cliquez sur Amazon Web Services.
-
Sélectionnez le menu déroulant « Sélectionner votre région AWS » et cliquez sur la région souhaitée.
-
Notez l’ID d’AMI affiché.
Utilisation de l’interface CLI AWS pour sélectionner une AMI
-
À l’aide de l’interface CLI AWS, listez les images de GitHub Enterprise Server publiées par ID de propriétaire AWS de GitHub (
025577942450
pour GovCloud et895557238572
pour les autres régions). Pour plus d’informations, consultez describe-images dans la documentation AWS.aws ec2 describe-images \ --owners OWNER_ID \ --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \ --output=text
-
Notez l’ID d’AMI de l’image de GitHub Enterprise Server la plus récente.
Création d’un groupe de sécurité
Si vous configurez votre AMI pour la première fois, vous devez créer un groupe de sécurité et ajouter une nouvelle règle de groupe de sécurité pour chaque port indiqué dans le tableau ci-dessous. Pour plus d’informations, consultez le guide AWS Utilisation des groupes de sécurité.
-
À l’aide de l’interface CLI AWS, créez un groupe de sécurité. Pour plus d’informations, consultez create-security-group dans la documentation AWS.
aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
-
Notez l’ID du groupe de sécurité (
sg-xxxxxxxx
) de votre groupe de sécurité nouvellement créé. -
Créez une règle de groupe de sécurité pour chacun des ports du tableau ci-dessous. Nous vous recommandons d’ouvrir les ports réseau de manière sélective en fonction des services réseau que vous devez exposer pour l’administration et l’accès utilisateur. Pour plus d’informations, consultez « Ports réseau » et authorize-security-group-ingress dans la documentation AWS.
aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE
Ce tableau identifie le rôle de chaque port.
Port Service Description 22 SSH Accès Git via SSH Opérations de clonage, de récupération (fetch) et d’envoi (push) sur les référentiels publics et privés pris en charge. 25 SMTP Prise en charge de SMTP avec chiffrement (STARTTLS). 80 HTTP Accès aux applications web. Toutes les requêtes sont redirigées vers le port HTTPS lorsque SSL est activé. 122 SSH Accès à l’interpréteur de commandes de l’instance. Le port SSH par défaut (22) est dédié au trafic réseau des applications Git et SSH. 161/UDP SNMP Nécessaire au fonctionnement du protocole de supervision de réseau. 443 HTTPS Accès aux applications web et à Git via HTTPS. 1194/UDP VPN Tunnel de réseau de réplication sécurisé dans une configuration à haute disponibilité. Chiffré à l’aide de WireGuard. 8080 HTTP Management Console web en texte brut. Non obligatoire, sauf si SSL est désactivé manuellement. 8443 HTTPS Management Console web sécurisée. Requis pour l’installation et la configuration de base. 9418 Git Port du protocole Git simple. Opérations de clonage et de récupération (fetch) sur référentiels publics uniquement. Communication réseau non chiffrée. Si vous avez activé le mode privé sur votre instance, l’ouverture de ce port n’est nécessaire que si vous avez également activé l’accès en lecture Git anonyme. Pour plus d’informations, consultez « Application de stratégies de gestion des dépôts dans votre entreprise ».
Création de l’instance GitHub Enterprise Server
Pour créer l’instance, vous devez lancer une instance EC2 avec votre AMI GitHub Enterprise Server et attacher un volume de stockage supplémentaire pour vos données d’instance. Pour plus d’informations, consultez « Considérations matérielles ».
Remarque : Vous pouvez chiffrer le disque de données pour renforcer votre sécurité et assurer la protection de toutes les données que vous écrivez sur votre instance. L’utilisation de disques chiffrés impacte légèrement les performances. Si vous décidez de chiffrer votre volume, nous vous recommandons vivement de le faire avant le premier démarrage de votre instance. Pour plus d’informations, consultez le guide Amazon sur le chiffrement EBS.
Avertissement : Si vous décidez d’activer le chiffrement après avoir configuré votre instance, vous devez migrer vos données vers le volume chiffré, ce qui entraîne un temps d’arrêt pour vos utilisateurs.
Lancement d’une instance EC2
Dans l’interface CLI AWS, lancez une instance EC2 en utilisant votre AMI et le groupe de sécurité que vous avez créé. Attachez un nouveau périphérique de stockage en mode bloc à utiliser comme volume de stockage pour vos données d’instance et configurez la taille en fonction du nombre de licences utilisateur. Pour plus d’informations, consultez run-instances dans la documentation AWS.
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
Allocation d’une IP Elastic et association de celle-ci à l’instance
S’il s’agit d’une instance de production, nous vous recommandons vivement d’allouer une IP Elastic (EIP) et de l’associer à l’instance avant de passer à la configuration de GitHub Enterprise Server. Sinon, l’adresse IP publique de l’instance ne sera pas conservée après le redémarrage de l’instance. Pour plus d’informations, consultez Allouer une adresse IP Elastic et Associer une adresse IP Elastic à une instance ou une interface réseau dans la documentation Amazon.
Dans les configurations de production à haute disponibilité, des adresses IP Elastic distinctes doivent être affectées aux instances principales et de réplica. Pour plus d’informations, consultez « Configuration de la haute disponibilité ».
Configuration de l’instance GitHub Enterprise Server
Pour configurer l’instance, vous devez charger un fichier de licence, définir le mot de passe racine Management Console, configurer les paramètres de l’instance et redémarrer l’instance.
Avertissement : Pour empêcher un attaquant de compromettre la nouvelle instance, veillez à définir personnellement le mot de passe racine Management Console et à créer le premier utilisateur dès que possible.
- Copiez le nom DNS public de la machine virtuelle et collez-le dans un navigateur web.
- À l’invite, chargez votre fichier de licence et définissez un mot de passe pour la console de gestion. Pour plus d’informations, consultez « Gestion de votre licence pour GitHub Enterprise ».
- Dans la Management Console, configurez et enregistrez les paramètres de votre choix. Pour plus d’informations, consultez « Configuration de GitHub Enterprise ».
- L’instance redémarre automatiquement.
- Cliquez sur Accéder à votre instance.