必要な環境
- GitHub Enterpriseのライセンスファイルを持っていなければなりません。 既存のライセンスファイルをダウンロードするか、トライアルライセンスをリクエストするには、enterprise.github.comにアクセスしてください。 詳しい情報については「GitHub Enterpriseライセンスの管理」を参照してください。
- EC2 インスタンスを起動してEBS ボリュームを作成できる AWS アカウントを所有している必要があります。 詳細は Amazon Web Services のウェブサイトを参照してください。
- your GitHub Enterprise Server instanceの起動に必要なほとんどのアクションは、AWSマネジメントコンソールを使っても行えます。 とはいえ、初期のセットアップのためにAWSコマンドラインインターフェース(CLI)をインストールすることをおすすめします。 AWS CLIの使用例は以下にあります。 詳しい情報については、Amazonのガイド"AWSマネジメントコンソールの操作"及び"AWS Command Line Interfaceとは"を参照してください。
本ガイドは、読者が以下のAWSの概念に馴染んでいることを前提としています。
- EC2インスタンスの起動
- EBSボリュームの管理
- セキュリティグループの利用(インスタンスへのネットワークアクセスの管理用)
- Elastic IPアドレス(プロダクション環境では強く推奨)
- Amazon EC2 と Amazon Virtual Private Cloud(Virtual Private Cloud内での起動を計画しているなら)
ハードウェアについて
Minimum requirements
We recommend different hardware configurations depending on the number of user licenses for your GitHub Enterprise Server instance. If you provision more resources than the minimum requirements, your instance will perform and scale better.
ユーザライセンス | vCPUs | メモリ | アタッチされたストレージ | ルートストレージ |
---|---|---|---|---|
トライアル、デモ、あるいは10人の軽量ユーザ | 2 | 16 GB | 100 GB | 200 GB |
10-3000 | 4 | 32 GB | 250 GB | 200 GB |
3000-5000 | 8 | 64 GB | 500 GB | 200 GB |
5000-8000 | 12 | 96 GB | 750 GB | 200 GB |
8000-10000+ | 16 | 128 GB | 1000 GB | 200 GB |
For more information about adjusting resources for an existing instance, see "Increasing storage capacity" and "Increasing CPU or memory resources."
ストレージ
We recommend a high-performance SSD with high input/output operations per second (IOPS) and low latency for GitHub Enterprise Server. Workloads are I/O intensive. If you use a bare metal hypervisor, we recommend directly attaching the disk or using a disk from a storage area network (SAN).
Your instance requires a persistent data disk separate from the root disk. 詳しい情報については「システムの概要」を参照してください。
You can resize your instance's root disk by building a new instance or using an existing instance. 詳しい情報については「ストレージ容量の増加」を参照してください。
CPU and memory
GitHub Enterprise Server requires more CPU and memory resources depending on levels of activity for users, automations, and integrations.
When you increase CPU resources, we recommend adding at least 6.5 GB of memory for each vCPU (up to 16 vCPUs) that you provision for the instance. When you use more than 16 vCPUs, you don't need to add 6.5 GB of memory for each vCPU, but you should monitor your instance to ensure it has enough memory.
Warning: We recommend that users configure webhook events to notify external systems of activity on GitHub Enterprise Server. Automated checks for changes, or polling, will negatively impact the performance and scalability of your instance. For more information, see "About webhooks."
You can increase your instance's CPU or memory resources. For more information, see "Increasing CPU or memory resources.
インスタンスタイプの決定
AWSでyour GitHub Enterprise Server instanceを起動する前に、組織の要求に最も適した仮想マシンのタイプを決定しなければなりません。
サポートされているインスタンスタイプ
GitHub Enterprise Server は、次の EC2インスタンスタイプでサポートされています。 詳しい情報についてはAWS EC2インスタンスタイプの概要ページを参照してください。
EC2インスタンスタイプ | モデル |
---|---|
C3 | c3.2xlarge, c3.4xlarge, c3.8xlarge |
EC2インスタンスタイプ | モデル |
---|---|
C4 | c4.2xlarge, c4.4xlarge, c4.8xlarge |
EC2インスタンスタイプ | モデル |
---|---|
C5 | c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge |
EC2インスタンスタイプ | モデル |
---|---|
M3 | m3.xlarge, m3.2xlarge |
EC2インスタンスタイプ | モデル |
---|---|
M4 | m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge |
EC2インスタンスタイプ | モデル |
---|---|
M5 | m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge |
EC2インスタンスタイプ | モデル |
---|---|
R4 | r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge |
EC2インスタンスタイプ | モデル |
---|---|
R5 | r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.12xlarge, r5.24xlarge |
EC2インスタンスタイプ | モデル |
---|---|
X1 | x1.16xlarge, x1.32xlarge |
推奨されるインスタンスタイプ
ユーザライセンス数に応じて、以下のインスタンスタイプをおすすめします。 |
ユーザライセンス | 推奨タイプ |
---|---|
トライアル、デモ、あるいは10人の軽量ユーザ | r4.large |
10 - 3000 | r4.xlarge |
3000 - 5000 | r4.2xlarge |
5000 - 8000 | r4.4xlarge |
8000 - 10000+ | r4.8xlarge |
ノート:インスタンスをリサイズすれば、いつでもCPUやメモリをスケールアップできます。 しかし、CPUあるいはメモリのリサイズにはユーザにとってのダウンタイムが生じるので、スケールのためのリソースを前もってオーバープロビジョニングしておくことをおすすめします。
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 を選択する
- GitHub Enterprise Serverのダウンロードページにアクセスしてください。
- Get the latest release of GitHub Enterprise Server (GitHub Enterprise Server の最新リリースを入手) をクリックします。
- Select your platform(プラットフォームの選択)ドロップダウンメニューでAmazon Web Servicesをクリックしてください。
- Select your AWS region(AWSのリージョン選択)ドロップダウンメニューで、希望するリージョンを選択してください。
- 表示されたAMI IDをメモしておいてください。
AWS CLIを使ったAMIの選択
- 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
- 最新の GitHub Enterprise Server イメージ用の AMI ID をメモしておきます。
セキュリティグループの作成
AMI を初めてセットアップする場合は、セキュリティグループを作成し、下記の表にある各ポートに関する新しいセキュリティグループのルールを追加する必要があります。 詳しい情報については、AWS ガイドの「Using Security Groups」を参照してください。
-
AWS CLI を使用して、新しいセキュリティグループを作成します。 詳しい情報については、AWS ドキュメンテーションの「create-security-group」を参照してください。
$ aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION"
-
新しく作成したセキュリティグループのセキュリティグループ ID (
sg-xxxxxxxx
) をメモしておきます。 -
下記の表にある各ポートに関するセキュリティグループのルールを作成します。 詳しい情報については、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
次の表に、各ポートの使用目的を示します
ポート サービス 説明 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 Webアプリケーション及びGit over HTTPSのアクセス。 1194/UDP VPN High Availability設定でのセキュアなレプリケーションネットワークトンネル。 8080 HTTP プレーンテキストの Webベースの Management Console。 SSL を手動で無効にしない限り必要ありません。 8443 HTTPS セキュアな Webベースの Management Console。 基本的なインストールと設定に必要です。 9418 Git シンプルなGitプロトコルのポートです。 パブリックリポジトリのクローンとフェッチのみができます。 Unencrypted network communication. If you have enabled private mode on your instance, then opening this port is only required if you also enabled anonymous Git read access. For more information, see "Enforcing repository management policies in your 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 インスタンスを設定する
- 仮想マシンのパブリックDNS名をコピーして、Webブラウザに貼り付けてください。
- プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 詳しい情報については「GitHub Enterpriseライセンスの管理」を参照してください。
- Management Consoleで、希望する設定を行って保存してください。詳しい情報については、「GitHub Enterprise Server アプライアンスを設定する」を参照してください。
- インスタンスは自動的に再起動します。
- Visit your instance(インスタンスへのアクセス)をクリックしてください。
参考リンク
- "システムの概要"