Google Cloud Platform で GitHub Enterprise Server をインストールする
GitHub Enterprise Server を Google Cloud Platform にインストールするには、サポートされているマシンタイプにデプロイし、永続的な標準ディスクまたは永続的な SSD を使用する必要があります。
このガイドの内容
- 必要な環境
- ハードウェアについて
- マシンタイプの決定
- GitHub Enterprise Server イメージを選択する
- ファイアウォールの設定
- スタティックIPの取得とVMへの割り当て
- GitHub Enterprise Server インスタンスを作成する
- インスタンスの設定
必要な環境
-
GitHub Enterprise のライセンスファイルを持っていなければなりません。既存のライセンスファイルをダウンロードするか、トライアルのライセンスをリクエストするには enterprise.github.com にアクセスしてください。詳細はGitHub Enterprise Serverライセンスの管理を参照してください。
-
Google Compute Engine(GCE)仮想マシン(VM)インスタンスを起動できるGoogle Cloud Platformのアカウントが必要です。 詳しい情報についてはGoogle Cloud PlatformのWebサイト及びGoogle Cloud Platformドキュメンテーションを参照してください。
-
インスタンスを起動するのに必要なアクションのほとんどは、Google Cloud Platform Consoleを使っても行えます。 とはいえ、初期セットアップのためにgcloud computeコマンドラインツールをインストールすることをお勧めします。 以下の例では、gcloud computeコマンドラインツールを使用しています。 詳しい情報についてはGoogleのドキュメンテーション中の"gcloud compute"のインストール及びセットアップガイドを参照してください。
ハードウェアについて
GitHub Enterprise Serverは、ルートのディスクとは別に永続的なデータディスクを必要とします。詳しい情報についてはシステムの概要を参照してください。
GitHub Enterprise Server インスタンスで使用するシート数に基づいたハードウェアの構成をおすすめします。
シート | vCPUs | メモリ | アタッチされたストレージ | ルートストレージ |
---|---|---|---|---|
10-500 | 2 | 16 GB | 100 GB | 200 GB |
500-3000 | 4 | 32 GB | 250 GB | 200 GB |
3000-5000 | 8 | 64 GB | 500 GB | 200 GB |
5000-8000 | 12 | 72 GB | 750 GB | 200 GB |
8000-10000+ | 16 | 128 GB | 1000 GB | 200 GB |
以上は最小限の推奨値です。ユーザのアクティビティやインテグレーションの選択など、利用状況に応じてさらにリソースが必要になることがあります。 詳しい情報についてはCPUあるいはメモリリソースの増加を参照してください。
メモ: ルートディスクは、新しいアプライアンスを構築するか、既存のアプライアンスを使うかしてリサイズできます。詳細は「ストレージ容量の増加」を参照してください。
警告: 継続的インテグレーション (CI) や類似のシステムでリポジトリの変更をフェッチするのには、webhook の利用をおすすめします。定期的な自動チェック、あるいはポーリングは、インスタンスのスケーラビリティを大きく損ないます。詳細は「webhook について」を参照してください。
マシンタイプの決定
Google Cloud PlatformdeGitHub Enterprise Server インスタンスを起動する前に、組織の要求に最も適したマシンタイプを決定する必要があります。
サポートされているマシンタイプ
GitHub Enterprise Server は、次の Google Compute Engine (GCE) マシンタイプでサポートされています。 詳しい情報についてはGoogle Cloud Platformのマシンタイプの記事を参照してください。
| | 標準 | ハイメモリ | ハイCPU | | | -------------- | ------------- | ------------- | | | n1-standard-4 | n1-highmem-4 | n1-highcpu-4 | | | n1-standard-8 | n1-highmem-8 | n1-highcpu-8 | | | n1-standard-16 | n1-highmem-16 | n1-highcpu-16 | | | n1-standard-32 | n1-highmem-32 | n1-highcpu-32 |
推奨マシンタイプ
シート数に基づいて、以下のマシンタイプをおすすめします。
シート数 | 推奨タイプ |
---|---|
10 - 500 | n1-standard-4 |
500 - 3000 | n1-standard-8 |
3000 - 5000 | n1-highmem-8 |
5000 - 8000 | n1-highmem-16 |
8000 - 10000+ | n1-highmem-32 |
メモ: インスタンスをリサイズすれば、いつでも CPU あるいはメモリをスケールアップできます。ただし、CPU あるいはメモリをリサイズするとユーザにはダウンタイムが生ずるので、スケールに備えてリソースをオーバープロビジョニングすることをおすすめします。
GitHub Enterprise Server イメージを選択する
-
gcloud computeコマンドラインツールを使用して、パブリックな GitHub Enterprise Server イメージを一覧表示します。
$ gcloud compute images list --project github-enterprise-public --no-standard-images
-
GitHub Enterprise Server の最新の GCE イメージのイメージ名をメモしておきます。
ファイアウォールの設定
GCE 仮想マシンは、ファイアウォールが存在するネットワークのメンバーとして作成されます。 GitHub Enterprise Server VMに関連付けられているネットワークの場合、下記の表に一覧表示されている必要なポートを許可するようにファイアウォールを設定する必要があります。 Google Cloud Platform でのファイアウォールルールに関する詳しい情報については、Google ガイドの「ファイアウォールルールの概要」を参照してください。
-
gcloud compute コマンドラインツールを使用して、ネットワークを作成します。 詳しい情報については、Google ドキュメンテーションの「gcloud compute networks create」を参照してください。
$ gcloud compute networks create NETWORK-NAME --subnet-mode auto
-
下記の表にある各ポートに関するファイアウォールルールを作成します。 詳しい情報については、Googleドキュメンテーションの「gcloud compute firewall-rules」を参照してください。
$ 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
次の表に、必要なポートと各ポートの使用目的を示します。
ポート | サービス | 説明 |
---|---|---|
22 | SSH | Git over SSH のアクセス。パブリック/プライベートリポジトリのクローン、フェッチ、プッシュ操作がサポートされています。 |
25 | SMTP | 暗号化 (STARTTLS) をサポートした SMTP。 |
80 | HTTP | Web アプリケーションへのアクセス。 SSL が有効化されている場合、すべてのリクエストは HTTPS ポートへリダイレクトされます。 |
122 | SSH | インスタンスへのシェルでのアクセス。 デフォルトの SSH ポート (22) は、アプリケーションの git+ssh ネットワークトラフィック専用です。 |
161/UDP | SNMP | ネットワークモニタリングプロトコルの操作に必要です。 |
443 | HTTPS | HTTPS アクセス経由での Web アプリケーションおよび Git へのアクセス。 |
1194/UDP | VPN | 高可用性構成でのセキュアなレプリケーションネットワークトンネル。 |
8080 | HTTP | 平文の Web ベースの Management Console。 SSL が手動で無効化されていない限り不要。 |
8443 | HTTPS | セキュアな Web ベースの Management Console。 基本的なインストールと設定に必要。 |
9418 | Git | シンプル Git プロトコルポート。パブリックリポジトリへのクローンおよびフェッチ操作のみ。 暗号化されていないネットワーク通信。 |
スタティックIPの取得とVMへの割り当て
これが稼働状態のアプライアンスである場合は、静的な外部 IP アドレスを予約し、それを GitHub Enterprise Server VM に割り当てることを強くおすすめします。 そうしなければ、VM のパブリックな IP アドレスは再起動後に保持されません。 詳しい情報については、Google ガイドの「静的外部 IP アドレスを予約する」を参照してください。
稼働状態の High Availability 設定では、プライマリアプライアンスとレプリカアプライアンスの両方に別々の静的 IP アドレスを割り当ててください。
GitHub Enterprise Server インスタンスを作成する
GitHub Enterprise Server インスタンスを作成するには、GitHub Enterprise Server イメージを使用して GCE インスタンスを作成し、インスタンスデータ用の追加のストレージボリュームをアタッチする必要があります。 詳細は「ハードウェアについて」を参照してください。
-
gcloud computeコマンドラインツールを使い、インスタンスデータのためのストレージボリュームとしてアタッチして使うデータディスクを作成し、そのサイズをシート数に基づいて設定してください。 詳しい情報については、Google ドキュメンテーションの「gcloud compute disks create」を参照してください。
$ gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE
-
次に、選択した GitHub Enterprise Server イメージの名前を使用してインスタンスを作成し、データディスクをアタッチします。 詳しい情報については、Googleドキュメンテーションの「gcloud compute instances create」を参照してください。
$ 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
インスタンスの設定
-
VM のパブリック DNS 名をコピーし、Web ブラウザに貼り付けてください。
-
プロンプトでライセンスファイルをアップロードし、Management Console のパスワードを設定してください。詳しい情報についてはGitHub Enterprise Serverのライセンスの管理を参照してください。
-
Management Console で、任意の設定を行って保存してください。 詳細は「GitHub Enterprise Server アプライアンスを設定する」を参照してください。
-
インスタンスは自動的に再起動します。
-
[Visit your instance] (インスタンスにアクセスする) をクリックしてください。
参考リンク
- "システムの概要"