Skip to main content

Installation de GitHub Enterprise Server sur AWS

Pour installer GitHub Enterprise Server sur Amazon Web Services (AWS), vous devez lancer une instance Amazon Elastic Compute Cloud (EC2), puis créer et attacher un volume de données Amazon Elastic Block Store (EBS) distinct.

Prérequis

Ce guide suppose que vous connaissez les concepts AWS suivants :

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 utilisateurProcesseurs virtuels x86-64MémoireStockage racineStockage (de données) attaché
Essai, démonstration ou 10 utilisateurs légers432 Go200 Go150 Go
10 à 3 000848 Go200 Go300 Go
3 000 à 5 0001264 Go200 Go500 Go
5 000 à 8 0001696 Go200 Go750 Go
8 000 à 10 000+20160 Go200 Go1 000 Go

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 100 Go restants disponibles sur le système de fichiers racine. Les 100 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

  1. 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.
  2. Sous « GitHub dans le cloud », sélectionnez le menu déroulant « Sélectionner votre plateforme », puis cliquez sur Amazon Web Services.

  3. Sélectionnez le menu déroulant « Sélectionner votre région AWS » et cliquez sur la région souhaitée.

  4. Notez l’ID d’AMI affiché.

Utilisation de l’interface CLI AWS pour sélectionner une AMI

  1. À 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 et 895557238572 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
    
  2. 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é.

  1. À 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"
    
  2. Notez l’ID du groupe de sécurité (sg-xxxxxxxx) de votre groupe de sécurité nouvellement créé.

  3. 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.

    PortServiceDescription
    22SSHAccè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.
    25SMTPPrise en charge de SMTP avec chiffrement (STARTTLS).
    80HTTPAccès aux applications web. Toutes les requêtes sont redirigées vers le port HTTPS lorsque SSL est activé.
    122SSHAccè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/UDPSNMPNécessaire au fonctionnement du protocole de supervision de réseau.
    443HTTPSAccès aux applications web et à Git via HTTPS.
    1194/UDPVPNTunnel de réseau de réplication sécurisé dans une configuration à haute disponibilité. Chiffré à l’aide de WireGuard.
    8080HTTPManagement Console web en texte brut. Non obligatoire, sauf si SSL est désactivé manuellement.
    8443HTTPSManagement Console web sécurisée. Requis pour l’installation et la configuration de base.
    9418GitPort 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.

  1. Copiez le nom DNS public de la machine virtuelle et collez-le dans un navigateur web.
  2. À 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 ».
  3. Dans la Management Console, configurez et enregistrez les paramètres de votre choix. Pour plus d’informations, consultez « Configuration de GitHub Enterprise ».
  4. L’instance redémarre automatiquement.
  5. Cliquez sur Accéder à votre instance.

Pour aller plus loin