Bitbucket を AWS で、手動で起動する
このページでは、Bitbucket の Amazon Machine Image (AMI) を手動で起動する方法について説明します。AMI で有効化されるコンポーネント、AWS 固有の構成、ネットワークおよびセキュリティ設定を完全に制御できます。Bitbucket を自動的に起動するための自動化された方法をお探しの場合、「AWS クイックスタート ガイド」を使用して複数ノードの Bitbucket Data Center インスタンスをデプロイすることをおすすめします。
Atlassian Bitbucket Server AMI を AWS コンソールで直接起動することも、EC2 起動ウィザードを実行して起動することもできます。詳細な手順については「EC2 インスタンスの起動」をご参照ください。
Bitbucket AMI
Atlassian Bitbucket Server AMI は、AWS での Bitbucket Server の一般的なデプロイメントを提供します。一般的な Bitbucket Server デプロイメントで使用されるすべてのコンポーネント (リバース プロキシ、外部データベース、バックアップ ツール、データ ボリューム、一時ストレージ) が事前に構成された状態でバンドルされ、すぐに起動することができます。
Atlassian Bitbucket Server AMI は、AWS で Bitbucket Server インスタンスの "ターンキー" デプロイメントとして使用することも、自身のより複雑な Bitbucket Server デプロイメントに向けてカスタマイズするための出発点として使用することもできます。
Atlassian Bitbucket Server AMI を見つける
Atlassian Bitbucket Server AMI は、[Community AMIs] をクリックして「Atlassian Bitbucket」を検索することで見つけることができます。
ご利用のリージョンに適切な AMI ID を使用するようにします。
Amazon CLI で最新の AMI を見つけるには、次のコマンドを使用できます。
aws ec2 describe-images --owners 098706035825 --filters "Name=name,Values=Atlassian Bitbucket*" --query 'sort_by(Images, &CreationDate)[-1].{ID:ImageId, "AMI Name":Name}' --output table
Bitbucket AMI は現在、govcloud-us
(AWS GovCloud (米国)) や cn-north-1
(中国 (北京)) などの一部のリージョンでは使用できません。
Bitbucket Server AMI のコンポーネント
Atlassian Bitbucket Server AMI から起動したインスタンスには、次のコンポーネントが含まれます。
- Bitbucket Server (最新バージョンまたは選択したバージョン)。
- 外部 PostgreSQL データベース
- リバース プロキシとしての nginx
- ネイティブの AWS スナップショット用に設定済みの Bitbucket Server DIY Backup ユーティリティ
- データを格納する EBS ボリュームおよびインスタンス ストア
OS | Amazon Linux 64 ビット、2016.09.0 |
---|---|
Bitbucket Server | Bitbucket Server (最新の公開バージョンまたは任意のバージョン) が起動時にダウンロードおよびインストールされます。 |
管理ツール | AWS のネイティブ バックアップ用に構成された atlassian-bitbucket-diy-backup がインストール済みです。これには SSH 経由でアクセスできます。 |
リバース プロキシ | 次のように設定された nginx。
|
データベース | PostgreSQL 9.3 |
ブロック デバイス |
|
インスタンス タイプの選択
EC2 インスタンス タイプを選択する際は、推奨されるインスタンス サイズについて「AWS でのエンタープライズ Bitbucket インスタンスの推奨インフラストラクチャ」をご参照ください。
ハードウェアの最小要件
既定の t2.micro (無料利用枠)、small、および medium インスタンス タイプは、Bitbucket Server の最小ハードウェア要件に適合しておらず、本番環境での使用はサポートされません。Bitbucket Server でサポートされる EC2 インスタンス タイプについては「AWS でのエンタープライズ Bitbucket インスタンスの推奨インフラストラクチャ」をご参照ください。
インスタンスの詳細情報の構成
EC2 インスタンスの構成時には、いくつかの重要な詳細設定を考慮する必要があります。
Identity and Access Management (IAM) ロール
IAM ロールは起動時に構成されている必要があります
IAM ロールは、EC2 インスタンスの初回起動時にのみ構成されます。起動後に IAM ロールを実行中の EC2 インスタンスに関連付けることはできません。詳細については「IAM ロール」をご参照ください。
明示的な資格情報を必要とせずにネイティブな AWS DIY Backup を実行できる IAM ロールでインスタンスを起動することをおすすめします。詳細については「Amazon EC2 の IAM ロール」をご参照ください。
EC2 起動ウィザードでインスタンスの詳細情報を構成する際に [Create new IAM role] をクリックして新しい IAM ロールを作成できます。このロールには少なくとも次のポリシーが含まれます。
{
"Statement": [
{
"Resource": [
"*"
],
"Action": [
"ec2:AttachVolume",
"ec2:CreateSnapshot",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:DescribeSnapshots",
"ec2:DescribeVolumes",
"ec2:DetachVolume"
],
"Effect": "Allow"
}
],
"Version": "2012-10-17"
}
高度な設定
Atlassian Bitbucket Server AMI は起動時にさまざまなな方法で構成できます。
- 組み込みの PostgreSQL および Nginx コンポーネント (既定で有効) を無効化できます
- 自己署名の SSL 証明書の生成 (既定で無効) を有効化できます
これらのオプションは、EC2 起動ウィザードの [Step 3: Configure Instance Details] の [Advanced Details] でインスタンスにユーザー データを提供することで制御できます。Atlassian Bitbucket Server AMI で構成可能なすべての挙動を、シェル変数の定義を含むファイル /etc/atl
を作成することで制御できます。初回起動時に、Atlassian Bitbucket Server AMI はファイル /etc/atl
を確認します (存在する場合)、これにより、組み込みの既定の変数定義をオーバーライドできます。
たとえば、自己署名の SSL 証明書の生成を有効化し、Bitbucket Server へのすべての web アクセスで HTTPS を使用するように強制したい場合、ユーザー データ (テキスト形式) を次のように追加できます。
#!/bin/bash
echo "ATL_SSL_SELF_CERT_ENABLED=true" >>/etc/atl
起動時にユーザー データでオーバーライド可能な変数の完全な一覧については、「AWS での Bitbucket の管理」を参照してください。
ユーザー データは柔軟であり、ユーザーは /etc/atl
での変数のオーバーライドに加えて、起動時にインスタンスで任意の BASH コマンドを実行できます。詳細については「Linux インスタンスで起動時にコマンドを実行する」をご参照ください。
セキュリティに関する考慮事項
Atlassian Bitbucket Server AMI での HTTPS および自己署名証明書の有効化の詳細については「AWS での Bitbucket の保護」をご参照ください。
ストレージの追加
EBS ボリュームを追加する際、インスタンスで次のストレージ デバイス設定を使用できます。
タイプ | デバイス | 目的 | サイズ (GiB) | ボリューム タイプ | IOPS | 終了時の削除有無 |
---|---|---|---|---|---|---|
ルート | /dev/xvda | Linux のルート ボリューム | 50 | 汎用 (SSD) | N/A | はい |
EBS | /dev/xvdf | Bitbucket Server データ: リポジトリ、添付ファイル、アバターなど | 100+ | 汎用 (SSD) / プロビジョンド IOPS * | 300+ * | はい |
インスタンス ストア | /dev/xvdb | Bitbucket Server の一時ファイルおよびキャッシュ | N/A | N/A | N/A | N/A |
* 最小 500 ~ 1000 の IOPS を実現するプロビジョンド IOPS は、500 以上のアクティブ ユーザーを持つインスタンスで推奨されます。詳細については、「AWS でのエンタープライズ Bitbucket インスタンスの推奨インフラストラクチャ」をご参照ください。
Atlassian Bitbucket Server AMI は、インスタンスに添付されている他のブロック デバイスは使用しません。/dev/xvdf
用の EBS ボリュームは、スナップショット id が提供されている場合を除き、起動時に初期化およびフォーマットされます (上述のスクリーンショットをご参照ください)。スナップショット id が提供されている場合、未フォーマットのときにのみフォーマットが実行されます。Amazon EC2 のストレージ オプションの詳細については「EBS ボリュームの管理」をご参照ください。
既存の EBS スナップショットの添付
起動時に、スナップショットに基づいた既存の EBS ボリュームを添付することもできます。既存の EBS ボリュームを添付するには、[Device] フィールドで、EBS ボリューム デバイスを /dev/sdf
に変更し、スナップショットのスナップショット ID を入力します。
詳細については「Bitbucket Data Center を AWS で管理する - Bitbucket Server データ ボリュームをインスタンス間で移動する」をご参照ください。
セキュリティ グループの構成
セキュリティ グループを構成するときに、次のすべてのポートへの受信トラフィックを許可する必要があります。詳細については「セキュリティ グループの使用」をご参照ください。
タイプ | プロトコル | ポート | 説明 |
---|---|---|---|
ssh | TCP | 22 | SSH ポート、管理機能へのアクセスを許可 |
http | TCP | 80 | |
HTTPS | TCP | 443 | |
Custom TCP Rule | TCP | 7999 | Git ホスティング操作のための Bitbucket Server の SSH ポート |
次のステップ
これで、Bitbucket Server で AWS バージョンの構成を行う準備ができました。
新しいインスタンスの確認
新しい EC2 インスタンスが起動したら、それを EC2 コンソールで見つけて提供された URL に移動し、Bitbucket Server の以降の構成を行います。
新しい EC2 インスタンスの URL を見つける方法
- EC2 コンソールの新しいインスタンスの [Description] タブで、Public DNS をコピーします。
- URL をブラウザ ウィンドウにコピーして Bitbucket Server の使用を開始します。
Bitbucket Server の AWS デプロイメントのセットアップ
EC2 インスタンスの URL にアクセスすると、Bitbucket Server Setup Wizard が表示されます。セットアップを完了したら、他の Bitbucket Server インスタンスと同じようにインスタンスの使用を開始できます。「Bitbucket Server の使用を開始する」の残りのドキュメントをぜひご確認ください。