AWS で GitHub Enterprise Server をインストールする

GitHub Enterprise Server をAmazon Web Services (AWS) にインストールするには、Amazon Elastic Compute Cloud (EC2) インスタンスを起動し、個別の Amazon Elastic Block Store (EBS) データボリュームを作成してアタッチする必要があります。

必要な環境

  • GitHub Enterpriseのライセンスファイルを持っていなければなりません。 既存のライセンスファイルをダウンロードするか、トライアルライセンスをリクエストするには、enterprise.github.comにアクセスしてください。 詳しい情報については「GitHub Enterpriseライセンスの管理」を参照してください。
  • EC2 インスタンスを起動してEBS ボリュームを作成できる AWS アカウントを所有している必要があります。 詳細は Amazon Web Services のウェブサイトを参照してください。
  • GitHub Enterprise Serverのインスタンスの起動に必要なほとんどのアクションは、AWSマネジメントコンソールを使っても行えます。 とはいえ、初期のセットアップのためにAWSコマンドラインインターフェース(CLI)をインストールすることをおすすめします。 AWS CLIの使用例は以下にあります。 詳しい情報については、Amazonのガイド"AWSマネジメントコンソールの操作"及び"AWS Command Line Interfaceとは"を参照してください。

本ガイドは、読者が以下のAWSの概念に馴染んでいることを前提としています。

ハードウェアについて

最小要件

GitHub Enterprise Serverのインスタンスのユーザライセンス数に応じた様々なハードウェア構成をおすすめします。 最小要件以上のリソースを提供すれば、インスタンスのパフォーマンスとスケーラビリティは向上します。

ノート: GitHub ActionsもしくはGitHub Packagesのベータに参加してこれらの機能を有効化している場合、インスタンスには追加のハードウェアリソースが必要になります。 ベータ機能を使うインスタンスの最小要件は、以下のテーブル中の太字に示されています。 詳しい情報については「GitHub Enterprise Server 2.22のベータの機能」を参照してください。

ユーザライセンスvCPUsメモリアタッチされたストレージルートストレージ
トライアル、デモ、あるいは10人の軽量ユーザ2
or 4
16 GB
or 32 GB
100 GB
or 150 GB
200 GB
10-30004
or 8
32 GB
or 48 GB
250 GB
or 300 GB
200 GB
3000-50008
or 12
64 GB500 GB200 GB
5000-800012
or 16
96 GB750 GB200 GB
8000-10000+16
or 20
128 GB
or 160 GB
1000 GB200 GB

既存のインスタンスのリソース調整に関する詳しい情報については「ストレージ容量の増加」及び「CPUあるいはメモリリソースの増加」を参照してください。

GitHub Enterprise Server 2.22のベータの機能

GitHub Enterprise Server 2.22は、GitHub Actions、GitHub Packages、code scanningといった機能をベータで提供しています。 詳しい情報については「GitHub Enterprise Server 2.22 リリースノートを参照してください。

GitHub Enterprise Server 2.22のベータの機能を有効化した場合、インスタンスには追加のハードウェアリソースが必要です。 最小要件に関する詳しい情報については「最小要件」を参照してください。

GitHub Actionsのハードウェアの要件に関する詳しい情報については「GitHub Enterprise ServerでGitHub Actionsを利用しはじめる」を参照してください。

ストレージ

GitHub Enterprise Serverには、高い秒あたりの入出力操作(IOPS)と低いレイテンシを持つ高性能なSSDをおすすめします。 ワークロードはI/O集中的です。 ベアメタルのハイパーバイザを使用するなら、直接アタッチされたディスクか、ストレージエリアネットワーク(SAN)からのディスクを利用することをおすすめします。

インスタンスには、ルートディスクとは別の永続化用のデータディスクが必要です。 詳しい情報については「システムの概要」を参照してください。

GitHub Actionsのベータを設定するには、外部のblobストレージを用意しなければなりません。 詳しい情報については、「GitHub Enterprise Server の GitHub Actions を使ってみる」を参照してください。

新しいインスタンスを構築するか、既存のインスタンスを利用して、インスタンスのルートディスクのサイズを変更できます。 詳しい情報については「ストレージ容量の増加」を参照してください。

CPU及びメモリ

GitHub Enterprise Serverが必要とするCPU及びメモリリソースは、ユーザ、自動化、インテグレーションのアクティビティのレベルによります。

GitHub Enterprise Serverインスタンスのユーザに対してGitHub Actionsのベータを有効化するなら、インスタンスに追加のCPU及びメモリリソースをプロビジョニングしなければならないことがあります。 詳しい情報については「GitHub Enterprise ServerのためのGitHub Actionsの利用開始」を参照してください。

CPUリソースを増やす場合、インスタンスにプロビジョニングする各vCPUごとに少なくとも6.5GBのメモリを追加する(最大16vCPUまで)ことをおすすめします。 16以上のvCPUを使う場合は、各vCPUごとに6.5GBのメモリを追加する必要はありませんが、インスタンスが十分なメモリを持っているかをモニターするべきです。

警告: GitHub Enterprise Server上の外部システムのアクティビティを通知するwebhookイベントを設定することを、ユーザにおすすめします。 変更の自動化されたチェック、あるいはポーリングは、インスタンスのパフォーマンスとスケーラビリティに悪影響を与えます。 詳しい情報については「webhookについて」を参照してください。

GitHub Enterprise Serverのキャパシティとパフォーマンスのモニタリングに関する詳しい情報については「アプラインアンスのモニタリング」を参照してください。

インスタンスのCPUあるいはメモリリソースは増やすことができます。 詳しい情報については、「CPU またはメモリリソースを増やす」を参照してください。

インスタンスタイプの決定

AWS でGitHub Enterprise Serverのインスタンス を起動する前に、Organization のニーズに最適なマシンタイプを決定する必要があります。 GitHub Enterprise Server の最小要件を確認するには、「最小要件」を参照してください。

ノート:インスタンスをリサイズすれば、いつでもCPUやメモリをスケールアップできます。 しかし、CPUあるいはメモリのリサイズにはユーザにとってのダウンタイムが生じるので、スケールのためのリソースを前もってオーバープロビジョニングしておくことをおすすめします。

GitHubは、GitHub Enterprise Serverにメモリ最適化されたインスタンスをおすすめします。 詳しい情報については、Amazon EC2のWebサイトのAmazon EC2インスタンスタイプを参照してください。

GitHub Enterprise Server AMI を選択する

GitHub Enterprise Server には、GitHub Enterprise Server ポータルまたは AWS CLI を使用することで、Amazon Machine Image (AMI) を選択できます。

GitHub Enterprise Server用のAMIは、AWS GovCloud (US東部およびUS西部) 地域で利用できます。 これにより、特定の規制要件を満たす米国のお客様は、連邦準拠のクラウド環境で GitHub Enterprise Server を実行できます。 AWSの連邦及びその他の標準への準拠に関する詳しい情報についてはAWS's GovCloud (US) page and AWS コンプライアンスページを参照してください。

GitHub Enterprise Server を使用して AMI を選択する

  1. GitHub Enterprise Serverのダウンロードページにアクセスしてください。
  2. Get the latest release of GitHub Enterprise Server (GitHub Enterprise Server の最新リリースを入手) をクリックします。
  3. Select your platform(プラットフォームの選択)ドロップダウンメニューでAmazon Web Servicesをクリックしてください。
  4. Select your AWS region(AWSのリージョン選択)ドロップダウンメニューで、希望するリージョンを選択してください。
  5. 表示されたAMI IDをメモしておいてください。

AWS CLIを使ったAMIの選択

  1. AWS CLI を使用して、GitHub の AWS オーナー ID (GovCloud の場合は 025577942450、その他の地域の場合は 895557238572) によって公開された GitHub Enterprise Server イメージのリストを取得します。 詳しい情報についてはAWSのドキュメンテーションの"describe-images"を参照してください。
    aws ec2 describe-images \
    --owners OWNER ID \
    --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \
    --output=text
  2. 最新の GitHub Enterprise Server イメージ用の AMI ID をメモしておきます。

セキュリティグループの作成

AMI を初めてセットアップする場合は、セキュリティグループを作成し、下記の表にある各ポートに関する新しいセキュリティグループのルールを追加する必要があります。 詳しい情報については、AWS ガイドの「Using Security Groups」を参照してください。

  1. AWS CLI を使用して、新しいセキュリティグループを作成します。 詳しい情報については、AWS ドキュメンテーションの「create-security-group」を参照してください。

    $ aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
  2. 新しく作成したセキュリティグループのセキュリティグループ ID (sg-xxxxxxxx) をメモしておきます。

  3. 下記の表にある各ポートに関するセキュリティグループのルールを作成します。 詳しい情報については、AWS ドキュメンテーションの「authorize-security-group-ingress」を参照してください。

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

    次の表に、各ポートの使用目的を示します

    ポートサービス説明
    22SSHGit over SSHのアクセス。 パブリック/プライベートリポジトリのクローン、フェッチ、プッシュ操作がサポートされています。
    25SMTP暗号化(STARTTLS)付きのSMTPサポート。
    80HTTPWebアプリケーションへのアクセス。 SSL が有効な場合、すべての要求は HTTPS ポートにリダイレクトされます。
    122SSHインスタンスのシェルへのアクセス。 デフォルトのSSHポート(22)は、アプリケーションのgit+sshネットワークトラフィック専用です。
    161/UDPSNMPネットワークモニタリングプロトコルの処理に必要。
    443HTTPSWebアプリケーション及びGit over HTTPSのアクセス。
    1194/UDPVPNHigh Availability設定でのセキュアなレプリケーションネットワークトンネル。
    8080HTTPプレーンテキストの Webベースの Management Console。 SSL を手動で無効にしない限り必要ありません。
    8443HTTPSセキュアな Webベースの Management Console。 基本的なインストールと設定に必要です。
    9418GitシンプルなGitプロトコルのポートです。 パブリックリポジトリのクローンとフェッチのみができます。 暗号化されていないネットワーク通信です。 インスタンスでプライベートモードを有効化した場合、このポートをオープンする必要があるのは、匿名Git読み取りアクセスも有効化している場合のみです。 詳しい情報については、「Enterprise でリポジトリ管理ポリシーを適用する」を参照してください。

GitHub Enterprise Server インスタンスを作成する

インスタンスを作成するには、GitHub Enterprise Server AMI を使用して EC2 インスタンスを起動し、インスタンスデータ用の追加のストレージボリュームをアタッチする必要があります。 詳細は「ハードウェアについて」を参照してください。

注釈: データディスクを暗号化してセキュリティを強化すれば、インスタンスに書き込むデータを確実に保護することができます。 暗号化ディスクを使用すると、パフォーマンスにわずかな影響が生じます。 ボリュームを暗号化することに決めた場合は、インスタンスを初めて起動する前に暗号化することを強くおすすめします。 詳しい情報については、EBS 暗号化に関する Amazon のガイドを参照してください。

警告: インスタンスを設定した後に暗号化を有効にすると決めた場合は、データを暗号化されたボリュームに移行する必要があります。これにより、ある程度のダウンタイムが生じます。

EC2 インスタンスの起動

AWS CLI で、AMI および作成したセキュリティグループを使用して EC2 インスタンスを起動します。 インスタンスデータ用にストレージボリュームとして使うための新しいブロックデバイスをアタッチし、サイズをユーザライセンス数に基づいて設定してください。 詳しい情報については、AWS ドキュメンテーションの「describe-images」を参照してください。

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 を割り当ててとインスタンスに関連付ける

これが本番インスタンスである場合は、GitHub Enterprise Server の設定に進む前に、Elastic IP (EIP) を割り当ててそれをインスタンスに関連付けることを強くおすすめします。 そうしなければ、インスタンスのパブリック IP アドレスはインスタンスの再起動後に保持されません。 詳しい情報については、Amazon ドキュメンテーションの「Elastic IP アドレスを割り当てる」および「Elastic IP アドレスを実行中のインスタンスに関連付ける」を参照してください。

稼働状態の High Availability 設定では、プライマリインスタンスとレプリカインスタンスの両方に別々の EIP を割り当ててください。 詳細は「High Availability 用に GitHub Enterprise Server を設定する」を参照してください。

GitHub Enterprise Server インスタンスを設定する

  1. 仮想マシンのパブリックDNS名をコピーして、Webブラウザに貼り付けてください。
  2. プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 詳しい情報については「GitHub Enterpriseライセンスの管理」を参照してください。
  3. Management Consoleで、希望する設定を行って保存してください。詳しい情報については、「GitHub Enterprise Server アプライアンスを設定する」を参照してください。
  4. インスタンスは自動的に再起動します。
  5. Visit your instance(インスタンスへのアクセス)をクリックしてください。

参考リンク

このドキュメントは役立ちましたか?プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡