Skip to main content

Установка GitHub Enterprise Server на AWS

Чтобы установить GitHub Enterprise Server в Amazon Web Services (AWS), необходимо запустить экземпляр Amazon Elastic Compute Cloud (EC2), а затем создать и подключить отдельный том данных Amazon Elastic Block Store (EBS).

Необходимые компоненты

  • Необходим файл лицензии GitHub Enterprise. Дополнительные сведения см. в разделе [AUTOTITLE и Настройка пробной версии GitHub Enterprise Server](/billing/concepts/enterprise-billing/ghes-license-files).
  • У вас должна быть учетная запись AWS, способная запускать экземпляры EC2 и создавать тома EBS. Дополнительные сведения см. на веб-сайте Amazon Web Services.
  • Большинство действий, необходимых для запуска ваш экземпляр GitHub Enterprise Server, также могут выполняться с помощью консоль управления AWS. Однако для начальной настройки рекомендуется установить интерфейс командной строки (CLI) AWS. Ниже приведены примеры использования интерфейса командной строки AWS. Дополнительные сведения см. в руководствах Amazon, работающих с консолью управления AWS и интерфейсом командной строки AWS.

Содержимое этого руководства предполагает, что пользователь уже знаком со следующими понятиями AWS:

Для диаграммы с архитектурным обзором см. AWS Architecture Diagram for Deploying GitHub Enterprise Server.

В этом руководстве рекомендуется использовать принцип наименьших привилегий при настройке ваш экземпляр GitHub Enterprise Server в AWS. Дополнительные сведения см. в документации по управлению идентификацией и доступом (IAM) AWS.

Рекомендации по оборудованию

Минимальные рекомендуемые требования

Рекомендуется использовать разные конфигурации оборудования в зависимости от количества пользовательских лицензий для ваш экземпляр GitHub Enterprise Server. Если вы подготавливаете больше ресурсов, чем минимальные рекомендуемые требования, экземпляр будет работать и масштабироваться лучше.

Лицензии пользователейВиртуальные ЦП x86-64ПамятьКорневое хранилищеПодключенное хранилище (данные)ОПЕРАЦИЙ ВВОДА-ВЫВОДА
Пробная версия, демонстрационная версия или 10 облегченных пользователей432 Гб400 ГБ500 ГБ600
До 1000848 ГБ400 ГБ500 ГБ3000
1000 до 30001664 ГБ400 ГБ1000 ГБ6000
От 3000 до 500032128 ГБ400 ГБ1500 ГБ9000
5 000 до 8 00048256 ГБ400 ГБ3000 ГБ12 000
от 8000 до 10000 и выше64512 ГБ400 ГБ5000 ГБ15000

Если вы планируете включить GitHub Actions или GitHub Code Security для пользователей экземпляра, требуются дополнительные ресурсы.

  • GitHub Actions — увеличьте объем ЦП и памяти по крайней мере на 25 %
  • GitHub Code Security — увеличьте объем ЦП и памяти по крайней мере на 25 %

Эти корректировки должны применяться к базовым требованиям для каждого уровня пользователей. Рекомендуется отслеживать все изменения ресурсов, так как может потребоваться дальнейшее увеличение.

Дополнительные сведения об этих требованиях см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.

Если вы планируете включить Container registry для пользователей экземпляра, потребуется больше ресурсов. Дополнительные сведения об этих требованиях см. в разделе Начало работы с пакетами GitHub для вашего предприятия.

Дополнительные сведения о настройке ресурсов для существующего экземпляра см. в разделе [AUTOTITLE и Увеличение емкости хранилища](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources).

Хранилище

Рекомендуется использовать высокопроизводительный SSD с высокой скоростью операций ввода-вывода в секунду (IOPS) и низкой задержкой для GitHub Enterprise Server. Рабочие нагрузки интенсивно используют ввод-вывод. Если используется гипервизор без операционной системы, рекомендуется напрямую подключить диск или использовать диск из сети хранения данных (SAN).

Для экземпляра требуется постоянный диск данных, отделенный от корневого диска. Дополнительные сведения см. в разделе Обзор системы.

Предупреждение

Корневое хранилище ссылается на общий размер корневого диска экземпляра. При загрузке экземпляра на корневая файловая система появится 200 ГБ. Оставшийся 200 ГБ зарезервирован для обновлений. Дополнительные сведения см. в разделе Обзор системы.

Чтобы настроить GitHub Actions, необходимо предоставить внешнее хранилище BLOB-объектов. Дополнительные сведения см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.

Доступное пространство в корневой файловой системе будет составлять 50 % от общего размера диска. Можно изменить размер корневого диска экземпляра, создав новый экземпляр или используя существующий. Дополнительные сведения см. в разделе [AUTOTITLE и Обзор системы](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity).

ЦП и память

Ресурсы ЦП и памяти, необходимые GitHub Enterprise Server, зависят от уровней действий пользователей, автоматизации и интеграции.

Все виртуальные машины, подготовленные для ваш экземпляр GitHub Enterprise Server, должны использовать архитектуру ЦП x86-64. Другие архитектуры не поддерживаются, например AArch64 или arm64.

Если планируется включить GitHub Actions для пользователей экземпляра GitHub Enterprise Server, может потребоваться подготовка дополнительных ресурсов ЦП и памяти для экземпляра. Дополнительные сведения см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.

При увеличении ресурсов ЦП GitHub рекомендует добавлять не менее 6,5 ГБ памяти для каждого виртуального ЦП (до 16 виртуальных ЦП), которые вы подготавливаете для экземпляра. Если используется более 16 виртуальных ЦП, вам не нужно добавлять 6,5 ГБ памяти для каждого виртуального ЦП, но необходимо отслеживать экземпляр, чтобы обеспечить достаточный объем памяти.

Предупреждение

Мы рекомендуем пользователям настраивать события веб-перехватчика для уведомления внешних систем о действиях на GitHub Enterprise Server. Автоматические проверки изменений или опрос будут негативно влиять на производительность и масштабируемость экземпляра. Дополнительные сведения см. в разделе Сведения о веб-перехватчиках.

Дополнительные сведения о мониторинге емкости и производительности GitHub Enterprise Serverсм. в разделе Мониторинг экземпляра.

Ресурсы ЦП или памяти экземпляра можно увеличить. Дополнительные сведения см. в разделе Увеличение ресурсов ЦП или памяти.

Рекомендации по производительности тома хранилища для AWS

GitHub Enterprise Server является большим объемом ввода-вывода и требует высокопроизводительного хранилища для корневого тома и тома данных, чтобы обеспечить оптимальную производительность. Оба тома нуждаются в высокой задержке операций ввода-вывода и низкой задержке, так как недостаточно операций ввода-вывода диска является причиной снижения производительности и сбоев служб.

При выборе типов томов Amazon EBS рассмотрите следующее руководство.

  • Для большинства развертываний gp3 тома обеспечивают хорошую отправную точку с настраиваемыми операций ввода-вывода в секунду и пропускной способностью.
  • Для более крупных или высокопроизводительных развертываний или io1 томов может быть более подходящим из-за их согласованных io2 характеристик производительности.
  • Очень крупные или критически важные развертывания могут воспользоваться io2 Block Express самыми высокими уровнями производительности.

Внимание

Оптимальная конфигурация хранилища для вашего экземпляра значительно зависит от конкретных шаблонов использования. Факторы, повышающие требования ввода-вывода, включают:

  • Количество активных пользователей и репозиториев
  • Объем и частота рабочей нагрузки CI/CD
  • Шаблоны использования API и автоматизация
  • Частота операций Git и размеры репозитория

Настоятельно рекомендуется постоянно отслеживать производительность диска экземпляра на панели мониторинга метрик консоли управления. Обратите особое внимание на:

          **Длина** очереди диска: должна оставаться около нуля.
          **Использование** операций ввода-вывода: устойчивые периоды выше 80 % указывают на необходимость больше операций ввода-вывода.
          **Задержка** диска: должно оставаться ниже 1–2 мс.

Подготовьтесь к настройке конфигурации хранилища по мере развития шаблонов использования. Горизонтальное масштабирование распределения операций ввода-вывода в секунду при наблюдении за узкими местами производительности, чтобы предотвратить снижение производительности.

Дополнительные сведения о типах томов Amazon EBS см . в документации aws по типам томов Amazon EBS.

Определение типа экземпляра

Перед запуском ваш экземпляр GitHub Enterprise Server в AWS необходимо определить тип компьютера, который лучше всего соответствует потребностям вашей организации. Чтобы просмотреть минимальные рекомендуемые требования для GitHub Enterprise Server, см . минимальные рекомендуемые требования.

Вы всегда можете масштабировать ЦП или память, изменив размер экземпляра. Для изменения ресурсов, доступных для экземпляра, требуется простой для пользователей, поэтому GitHub рекомендует перенаборить ресурсы для учета масштабирования.

GitHub рекомендует оптимизированный для памяти экземпляр для GitHub Enterprise Server. Дополнительные сведения см. в разделе "Типы экземпляров Amazon EC2" на веб-сайте Amazon EC2.

Выбор образа AMI GitHub Enterprise Server

Образ компьютера Amazon (AMI) можно выбрать для GitHub Enterprise Server с помощью портала GitHub Enterprise Server или интерфейса командной строки AWS.

Образы AMI для GitHub Enterprise Server доступны в регионе AWS GovCloud (восточная часть США и западная часть США). Это позволяет клиентам из США с определенными нормативными требованиями запускать GitHub Enterprise Server в облачной среде, соответствующей федеральным стандартам. Дополнительные сведения о соответствии AWS федеральным и другим стандартам см. на странице AWS GovCloud (США) и на странице соответствия требованиям AWS.

Использование портала GitHub Enterprise Server для выбора AMI

  1. Перейдите к образу, который вы хотите использовать для нового экземпляра.

    • Перейдите к заметкам о выпуске.
    • На правой боковой панели щелкните версию, которую вы хотите скачать.
    • Щелкните Скачать GitHub Enterprise Server X.X.X.
  2. В разделе "GitHub в облаке" выберите раскрывающееся меню "Выбор платформы" и щелкните Amazon Web Services.

  3. Выберите раскрывающееся меню "Выберите регион AWS" и щелкните нужный регион.

  4. Запишите отображаемый идентификатор AMI.

Выбор AMI с помощью интерфейса командной строки AWS

  1. С помощью интерфейса командной строки AWS получите список идентификаторов образов GitHub Enterprise Server, опубликованных владельцем AWS GitHub (025577942450 для GovCloud и 895557238572 для других регионов). Дополнительные сведения см. в документации по AWS.

    aws ec2 describe-images \
    --owners OWNER_ID \
    --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \
    --output=text
    
  2. Запишите идентификатор AMI для последнего образа GitHub Enterprise Server.

Создание группы безопасности

Если вы настраиваете AMI в первый раз, необходимо создать группу безопасности и добавить новое правило группы безопасности для каждого порта в таблице ниже. Дополнительные сведения см. в руководстве ПО AWS с помощью групп безопасности.

  1. С помощью интерфейса командной строки AWS создайте новую группу безопасности. Дополнительные сведения см . в документации AWS по созданию группы безопасности .

    aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
    
  2. Запишите идентификатор созданной группы безопасности (sg-xxxxxxxx).

  3. Создайте правило группы безопасности для каждого порта в таблице ниже. Рекомендуется выборочно открывать сетевые порты на основе сетевых служб, которые необходимо предоставить для административных и пользовательских целей. Дополнительные сведения см. в статье Сетевые порты и авторизовать входящий трафик группы безопасности в документации AWS.

    aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE
    

    Эта таблица определяет, для чего используется каждый порт.

    ПортСлужбаDescription
    22SSHДоступ к Git по протоколу SSH. Клонирование, получение и отправка операций в поддерживаемые общедоступные и частные репозитории.
    25SMTPПоддержка SMTP с шифрованием (STARTTLS).
    80HTTPДоступ к веб-приложениям. Все запросы перенаправляются на HTTPS-порт при включении SSL.
    122SSHДоступ к оболочке экземпляра. Порт SSH по умолчанию (22) предназначен для сетевого трафика Git+SSH приложения.
    161/UDPSNMPТребуется для работы протокола мониторинга сети.
    443HTTPSДоступ к веб-приложению и Git по протоколу HTTPS.
    1194/UDPVPNБезопасный туннель сети репликации в конфигурации высокого уровня доступности. Зашифровано с помощью WireGuard.
    8080HTTPВеб-сайт на основе обычного текста Консоль управления. Не требуется, если только SSL не отключен вручную.
    8443HTTPSБезопасный веб-доступ Консоль управления. Требуется для базовой установки и настройки.
    9418GitПростой порт протокола Git. Клонирование и получение операций только в общедоступные репозитории. Взаимодействие по сети без шифрования Если в вашем экземпляре включен частный режим, то открытие этого порта требуется только в том случае, если вы также включили анонимный доступ для чтения Git. Дополнительные сведения см. в разделе Применение политик управления репозиториями в организации.

Создание экземпляра GitHub Enterprise Server

Чтобы создать экземпляр, необходимо запустить экземпляр EC2 с AMI GitHub Enterprise Server и подключить дополнительный том хранилища для данных экземпляра. Дополнительные сведения см. в разделе "Рекомендации по оборудованию".

Примечание.

Вы можете зашифровать диск данных, чтобы получить дополнительный уровень безопасности и убедиться, что все данные, записываемые в экземпляр, защищены. При использовании зашифрованных дисков наблюдается небольшое снижение производительности. Если вы решили зашифровать том, мы настоятельно рекомендуем сделать это перед первым запуском экземпляра. Дополнительные сведения см. в руководстве Amazon по шифрованию EBS.

Предупреждение

Если вы решите включить шифрование после настройки экземпляра, вам потребуется перенести данные в зашифрованный том, что приведет к простою для пользователей.

Запуск экземпляра EC2

В интерфейсе командной строки AWS запустите экземпляр EC2 с помощью AMI и созданной группы безопасности. Подключите новое блочное устройство для использования в качестве тома хранилища для данных экземпляра и настройте размер в соответствии с количеством лицензий пользователей. Дополнительные сведения см. в документации по 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

Выделение эластичного IP-адреса и связывание его с экземпляром

Если экземпляр рабочий, мы настоятельно рекомендуем выделить эластичный IP-адрес (EIP) и связать его с экземпляром, прежде чем переходить к конфигурации GitHub Enterprise Server. В противном случае общедоступный IP-адрес экземпляра не будет сохранен после перезапуска экземпляра. Дополнительные сведения см. в разделе ["Выделение эластичного IP-адреса" и связывание эластичного IP-адреса с запущенным экземпляром](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating) в документации Amazon.

В конфигурациях высокого уровня доступности в рабочей среде основной экземпляр и экземпляр-реплика должны назначаться отдельным эластичным IP-адресам. Дополнительные сведения см. в разделе Настройка высокого уровня доступности.

Настройка экземпляра GitHub Enterprise Server

Чтобы настроить экземпляр, необходимо отправить файл лицензии, задать корневой пароль Консоль управления, настроить параметры экземпляра и перезапустить экземпляр.

Предупреждение

Чтобы предотвратить компрометации нового экземпляра злоумышленником, убедитесь, что вы лично задали корневой пароль Консоль управления и создадите первого пользователя как можно скорее.

  1. Скопируйте общедоступное DNS-имя виртуальной машины и вставьте его в адресную строку веб-браузера.
  2. В командной строке отправьте файл лицензии и задайте пароль консоли управления. Дополнительные сведения см. в разделе Скачивание лицензии для GitHub Enterprise.
  3. В Консоль управления настройте и сохраните нужные параметры. Дополнительные сведения см. в разделе Configuring GitHub Enterprise.
  4. Экземпляр будет перезапущен автоматически.
  5. Нажмите Перейти к экземпляру.

Дополнительные материалы