Requisitos previos
- Debes tener un archivo de licencia de GitHub Enterprise. Para obtener más información, vea «Configurar una prueba del servidor de GitHub Enterprise» y «Acerca de las licencias para GitHub Enterprise».
- Debes tener una cuenta AWS capaz de iniciar instancias EC2 y crear volúmenes EBS. Par más información, vea el sitio web de Amazon Web Services.
- La mayoría de las acciones necesarias para iniciar tu instancia de GitHub Enterprise Server también se pueden realizar con la consola de administración de AWS. Sin embargo, recomendamos instalar la interfaz de línea de comando de AWS (CLI) para la configuración inicial. Abajo se incluyen ejemplos que utilizan AWS CLI. Para más información, consulta las guías de Amazon Trabajo con la consola de administración de AWS y ¿Qué es la interfaz de línea de comandos de AWS?
Nota: En este momento GitHub Enterprise Server no admite el uso de la Amazon IDMDSv2 Metadata.
Esta guía supone que estás familiarizado con los siguientes conceptos de AWS:
- Inicio de instancias de EC2
- Administración de volúmenes de EBS
- Uso de grupos de seguridad (para administrar el acceso de red a la instancia)
- Direcciones IP elásticas (EIP) (Se recomienda encarecidamente para entornos de producción)
- EC2 y la nube privada virtual (Si tiene previsto iniciar en una nube privada virtual)
- Precios de AWS (Para calcular y administrar los costos)
Para obtener un diagrama que ofrece información general sobre la arquitectura, consulta Diagrama de arquitectura de AWS para implementar el servidor de GitHub Enterprise.
En esta guía se recomienda usar el principio de privilegios mínimos al configurar tu instancia de GitHub Enterprise Server en AWS. Para más información, vea la documentación de la administración de identidad y acceso (IAM) de AWS.
Consideraciones de hardware
Requisitos mínimos
Te recomendamos usar otras configuraciones de hardware en función de la cantidad de licencias de usuario que tengas para tu instancia de GitHub Enterprise Server. Si aprovisionaste más recursos que los de los requisitos mínimos, tu instancia funcionrá y escalará mejor.
Licencias de usuario | x86-64 vCPUs | Memoria | Almacenamiento raíz | Almacenamiento adjunto (datos) |
---|---|---|---|---|
Prueba, Demo o 10 usuarios no frecuentes | 4 | 32 GB | 200 GB | 150 GB |
10-3000 | 8 | 48 GB | 200 GB | 300 GB |
3000-5000 | 12 | 64 GB | 200 GB | 500 GB |
5000-8000 | 16 | 96 GB | 200 GB | 750 GB |
8000-10000+ | 20 | 160 GB | 200 GB | 1000 GB |
Si planeas habilitar las GitHub Actions para los usuarios de tu instancia, se necesitarán más recursos.
Para más información sobre estos requisitos, consulte "Iniciar con GitHub Actions para GitHub Enterprise Server."
Si tiene previsto habilitar Container registry para los usuarios de su instancia, necesitará más recursos. Para más información sobre estos requisitos, consulte "Iniciar con GitHub Packages para tu empresa."
Para más información sobre cómo ajustar recursos para una instancia existente, consulta "Aumentar la capacidad de almacenamiento" y "Aumentar el CPU o los recursos de memoria".
Storage
Recomendamos un SSD de alto rendimiento con operaciones de altas de entrada/salida por segundo (IOPS) y latencia baja para GitHub Enterprise Server. Las cargas de trabajo son intensivas para las I/O. Si utilizas un hipervisor de metal puro, te recomendamos adjuntar directamente el disco o utilizar un disco de una red de área de almacenamiento (SAN).
Tu instancia requiere un disco de datos persistentes independiente del disco raíz. Para obtener más información, vea «Información general del sistema».
Para configurar las GitHub Actions, debes proporcionar un almacenamiento de blobs externos. Para obtener más información, vea «Iniciar con GitHub Actions para GitHub Enterprise Server».
El espacio disponible en el sistema de archivos raíz será de 50% del tamaño total en disco. Puedes redimensionar el disco raíz de tu instancia si creas una instancia nueva o si utilizas una instancia existente. Para obtener más información, vea «Información general del sistema» y «Aumentar la capacidad de almacenamiento».
CPU y memoria
Los recursos de memoria y CPU que GitHub Enterprise Server requiere dependen de los niveles de actividad para los usuarios, automatizaciones e integraciones.
Las máquinas virtuales que aprovisiones para tu instancia de GitHub Enterprise Server deben usar la arquitectura de CPU x86-64. No se admiten otras arquitecturas, como Aarch64 o arm64.
Si planeas habilitar las GitHub Actions para los usuarios de tu instancia de GitHub Enterprise Server, podrías necesitar aprovisionar recursos de memoria y CPU adicionales para esta. Para obtener más información, vea «Iniciar con GitHub Actions para GitHub Enterprise Server».
Cuando incremente sus recursos de CPU, GitHub recomienda agregar por lo menos 6,5 GB de memoria para cada vCPU (hasta 16 vCPU) que aprovisionar para la instancia. Cuando utilizas más de 16 CPU, no necesitas agregar 6.5 GB de memoria para cada uno, pero debes monitorear tu instancia para garantizar que tenga memoria suficiente.
Advertencia: Es recomendable que los usuarios configuren eventos de webhook para notificar a los sistemas externos la actividad en GitHub Enterprise Server. Las comprobaciones automáticas de cambios, o sondeo, tendrán un impacto negativo en el rendimiento y la escalabilidad de la instancia. Para obtener más información, vea «Acerca de webhooks».
Para más información sobre la supervisión de la capacidad y el rendimiento de GitHub Enterprise Server, vea "Supervisión de la instancia".
Puedes incrementar los recursos de memoria o de CPU para tu instancia. Para obtener más información, vea «Aumentar el CPU o los recursos de memoria».
Determinar el tipo de instancia
Antes de iniciar tu instancia de GitHub Enterprise Server en AWS, deberás determinar qué tipo de máquina se adapta mejor a las necesidades de tu organización. Para revisar los requisitos mínimos de GitHub Enterprise Server, vea "Requisitos mínimos".
Siempre puedes escalar verticalmente la CPU o la memoria cambiando de tamaño la instancia. Cambiar los recursos disponibles para la instancia requiere tiempo de inactividad para los usuarios, por lo que GitHub recomienda sobreaprovisionar recursos para tener en cuenta la escala.
GitHub recomienda una instancia con memoria optimizada para GitHub Enterprise Server. Para más información, vea Tipos de instancia de Amazon EC2 en el sitio web de Amazon EC2.
Seleccionar la AMI del GitHub Enterprise Server
Puedes seleccionar una Amazon Machine Image (AMI) para el GitHub Enterprise Server utilizando el portal del GitHub Enterprise Server o la CLI de AWS.
Las AMIs para GitHub Enterprise Server se encuentran disponibles en la región de AWS GovCloud (EE.UU. Este y EE.UU. Oeste). Esto permite que los clientes de EE. UU. con requisitos reglamentarios específicos ejecuten el GitHub Enterprise Server en un entorno de nube que cumpla con los requisitos a nivel federal. Para más información sobre el cumplimiento de AWS con los estándares federales y otros, vea la página GovCloud (EE. UU.) de AWS y la página de cumplimiento de AWS.
Utilizar el portal GitHub Enterprise Server para seleccionar una AMI
-
Vaya a la imagen que quiere usar para la nueva instancia.
- Vaya a Notas de la versión.
- En la barra lateral derecha, haga clic en la versión que quiere descargar.
- Haga clic en Descargar GitHub Enterprise Server X.X.X.
-
En "GitHub en la nube", seleccione el menú desplegable "Seleccionar su plataforma" y haga clic en Amazon Web Services.
-
Seleccione el menú desplegable "Seleccionar su región de AWS" y haga clic en la región deseada.
-
Toma nota de la ID de AMI que se muestra.
Utilizar la CLI de AWS para seleccionar una AMI
-
Con la CLI de AWS, obtenga una lista de imágenes de GitHub Enterprise Server publicadas por id. de propietarios de AWS de GitHub (
025577942450
para GovCloud, y895557238572
para otras regiones). Para más información, consulta describe-images en la documentación de AWS.aws ec2 describe-images \ --owners OWNER_ID \ --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \ --output=text
-
Toma nota del ID de AMI de la última imagen del GitHub Enterprise Server.
Creación de un grupo de seguridad
Si estás configurando tu AMI por primera vez, deberás crear un grupo de seguridad y agregar una nueva regla de grupo de seguridad para cada puerto en la tabla de abajo. Para más información, consulta la guía de AWS Uso de grupos de seguridad.
-
Crea un nuevo grupo de seguridad utilizando la CLI de AWS. Para más información, consulta create-security-group en la documentación de AWS.
aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
-
Anote el id. del grupo de seguridad (
sg-xxxxxxxx
) recién creado. -
Crea una regla de grupo de seguridad para cada puerto en la tabla de abajo. Se recomienda abrir los puertos de red de forma selectiva en función de los servicios de red que necesita exponer para fines administrativos y de usuario. Para más información, consulta "Puertos de red" y authorize-security-group-ingress en la documentación de AWS.
aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE
Esta tabla identifica para qué se utiliza cada puerto.
Port Servicio Descripción 22 SSH Git a través de acceso SSH. Se admite clonar, extraer y subir operaciones a repositorios privados/públicos. 25 SMTP SMTP con soporte de encriptación (STARTTLS). 80 HTTP Acceso a aplicación web. Todas las solicitudes se redirigen al puerto HTTPS cuando se habilita SSL. 122 SSH Acceso a shell de instancia. El puerto SSH predeterminado (22) se dedica a la aplicación de Git y el tráfico de red SSH. 161/UDP SNMP Se requiere para operar el protocolo de revisión de red. 443 HTTPS Aplicación web y Git a través de acceso HTTPS. 1194/UDP VPN Túnel de red de replicación segura en la configuración de alta disponibilidad. Cifrado mediante WireGuard. 8080 HTTP Consola de administración basada en la web de texto simple. No es obligatorio a menos que SSL se deshabilite de forma manual. 8443 HTTPS Consola de administración seguro basada en la web. Necesario para la instalación y la configuración básicas. 9418 Git Puerto simple de protocolo de Git. Únicamente clonar y extraer operaciones a repositorios públicos. Comunicación de red sin cifrar. Si habilitaste el modo privado en tu instancia, entonces solo se requerirá abrir este puerto si también habilitas el acceso de lectura anónimo para Git. Para obtener más información, vea «Requerir políticas de administración de repositorios en tu empresa».
Crear la instancia de GitHub Enterprise Server
Para crear la instancia, deberás lanzar una instancia de EC2 con tu AMI GitHub Enterprise Server y adjuntarle volumen de almacenamiento adicional para los datos de tu instancia. Para más información, vea "Consideraciones de hardware".
Nota: Puede cifrar el disco de datos para obtener un nivel adicional de seguridad y asegurarse de que los datos que escriba en la instancia están protegidos. Hay un leve impacto de desempeño cuando usas discos encriptados. Si decide cifrar el volumen, se recomienda encarecidamente hacerlo antes de iniciar la instancia por primera vez. Para más información, vea la guía de Amazon sobre cifrado EBS.
Advertencia: Si decide permitir el cifrado después de haber configurado la instancia, tendrá que migrar los datos al volumen cifrado, lo que generará cierto tiempo de inactividad para los usuarios.
Lanzar una instancia de EC2
En la CLI de AWS, inicia una instancia de EC2 utilizando tu AMI y el grupo de seguridad que has creado. Adjunta un nuevo dispositivo de bloque para utilizarlo como volumen de almacenamiento para tus datos de la instancia y configura el tamaño de acuerdo con la cantidad de licencias de usuario que tengas. Para más información, consulta run-instances en la documentación de 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
Asignar una IP elástica y asociarla con la instancia
Si esta es una instancia de producción, recomendamos firmemente asignar una IP elástica (EIP) y asociarla con la instancia antes de continuar con la configuración del GitHub Enterprise Server. De lo contrario, la dirección IP pública de la instancia no se conservará después de que se reinicie la instancia. Para más información, consulta Asignación de una dirección IP elástica y Asociación de una dirección IP elástica con una instancia en ejecución en la documentación de Amazon.
Tanto en la instancia principal y en la de réplica deberían asignarse EIP separadas en las configuraciones de alta disponibilidad de producción. Para obtener más información, vea «Configuración de alta disponibilidad».
Configurar la instancia de GitHub Enterprise Server
Para configurar la instancia, debes cargar un archivo de licencia, establecer la contraseña raíz de Consola de administración, configurar la instancia y reiniciarla.
Advertencia: Para evitar que un atacante ponga en peligro la nueva instancia, asegúrese de establecer personalmente la contraseña raíz de Consola de administración y cree el primer usuario lo antes posible.
- Copie el nombre DNS público de la máquina virtual y péguelo en un explorador web.
- En el prompt, carga tu archivo de licencia y configura una contraseña de consola de administración. Para obtener más información, vea «Administrar tu licencia de GitHub Enterprise».
- En Consola de administración, configura y guarda la configuración deseada. Para obtener más información, consulta "Configurar GitHub Enterprise".
- La instancia se reiniciará automáticamente.
- Haga clic en Visitar la instancia.