Skip to main content

Google Cloud Platform で GitHub Enterprise Server をインストールする

GitHub Enterprise Server を Google Cloud Platform にインストールするには、サポートされているマシンタイプにデプロイし、永続的な標準ディスクまたは永続的な SSD を使用する必要があります。

前提条件

ハードウェアに関する考慮事項

最小要件

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

ユーザー ライセンスvCPU 数メモリストレージの接続ルート ストレージ
トライアル、デモ、あるいは10人の軽量ユーザ432 GB150 GB200 GB
10-3000848 GB300 GB200 GB
3000-50001264 GB500 GB200 GB
5000-80001696 GB750 GB200 GB
8000-10000+20160 GB1000 GB200 GB

インスタンスのユーザーに対して GitHub Actions を有効にする予定の場合は、さらに多くのリソースが必要です。

これらの要件の詳細については、「GitHub Enterprise Server の GitHub Actions の概要」を参照してください。

既存のインスタンスのリソースの調整の詳細については、「ストレージ容量の増加」および「CPU またはメモリ リソースの増加」を参照してください。

ストレージ

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

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

GitHub Actions を構成するには、外部 BLOB ストレージを指定する必要があります。 詳細については、「GitHub Enterprise Server の GitHub Actions の概要」を参照してください。

ルート ファイルシステム上の使用可能な領域は、ディスクの合計サイズの 50% です。 新しいインスタンスを構築するか、既存のインスタンスを利用して、インスタンスのルートディスクのサイズを変更できます。 詳細については、「システムの概要」および「ストレージ容量の増加」を参照してください。

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 またはメモリ リソースの増加」を参照してください。

マシンタイプの決定

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

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

GitHub は、GitHub Enterprise Server に汎用のハイメモリマシンを推奨しています。 詳細については、Google Compute Engine ドキュメントの「マシンの種類」を参照してください。

GitHub Enterprise Server イメージを選択する

  1. gcloud コンピューティング コマンドライン ツールを使用し、パブリック GitHub Enterprise Server イメージを一覧表示します。

    $ gcloud compute images list --project github-enterprise-public --no-standard-images
  2. GitHub Enterprise Server の最新の GCE イメージのイメージ名をメモしておきます。

ファイアウォールを構成する

GCE 仮想マシンは、ファイアウォールが存在するネットワークのメンバーとして作成されます。 GitHub Enterprise Server VMに関連付けられているネットワークの場合、下記の表に一覧表示されている必要なポートを許可するようにファイアウォールを設定する必要があります。 Google Cloud Platform のファイアウォール規則の詳細については、Google ガイド「ファイアウォール規則の概要」を参照してください。

  1. gcloud compute コマンドラインツールを使用して、ネットワークを作成します。 詳細については、Google ドキュメントの「gcloud コンピューティング ネットワークの作成」を参照してください。

    $ gcloud compute networks create NETWORK-NAME --subnet-mode auto
  2. 下記の表にある各ポートに関するファイアウォールルールを作成します。 詳細については、Google ドキュメントの「gcloud コンピューティング ファイアウォール規則」を参照してください。

    $ gcloud compute firewall-rules create RULE-NAME \
       --network NETWORK-NAME \
       --allow tcp:22,tcp:25,tcp:80,tcp:122,udp:161,tcp:443,udp:1194,tcp:8080,tcp:8443,tcp:9418,icmp

    次の表に、必要なポートと各ポートの使用目的を示します。

    Portサービス説明
    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 でリポジトリ管理ポリシーを適用する」を参照してください。

スタティックIPの取得とVMへの割り当て

これが稼働状態のアプライアンスである場合は、静的な外部 IP アドレスを予約し、それを GitHub Enterprise Server VM に割り当てることを強くおすすめします。 そうしなければ、VM のパブリックな IP アドレスは再起動後に保持されません。 詳細については、Google ガイド「静的外部 IP アドレスの予約」を参照してください。

稼働状態の High Availability 設定では、プライマリアプライアンスとレプリカアプライアンスの両方に別々の静的 IP アドレスを割り当ててください。

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

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

  1. gcloud computeコマンドラインツールを使い、インスタンスデータのためのストレージボリュームとしてアタッチして使うデータディスクを作成し、そのサイズをユーザライセンス数に基づいて設定してください。 詳細については、Google ドキュメントの「gcloud コンピューティング ディスクの作成」を参照してください。

    $ gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE
  2. 次に、選択した GitHub Enterprise Server イメージの名前を使用してインスタンスを作成し、データディスクをアタッチします。 詳細については、Google ドキュメントの「gcloud インスタンス ネットワークの作成」を参照してください。

    $ gcloud compute instances create INSTANCE-NAME \
    --machine-type n1-standard-8 \
    --image GITHUB-ENTERPRISE-IMAGE-NAME \
    --disk name=DATA-DISK-NAME \
    --metadata serial-port-enable=1 \
    --zone ZONE \
    --network NETWORK-NAME \
    --image-project github-enterprise-public

インスタンスの設定

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

参考資料