Elasticsearch クラスターと Bitbucket Data Center の併用

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Bitbucket Data Center は、コード検索を有効化するためにリモート Elasticsearch インストールに接続する必要があります。コード検索は高可用性のために必要不可欠ではありませんが、Elasticsearch ノードのクラスタを実行しすることで、Bitbucket のコード検索インデックスでの高可用性を実現することができます。このページでは、Bitbucket のアプリケーション ノードに接続されているロード バランサの背後で Elasticsearch ノードのクラスタをデプロイする際のガイダンスを提供します。  

Bitbucket Data Center はクラスタの Elasticsearch へのリモート接続を 1 つのみ持つことができます。これは、スタンドアロンの Elasticsearch インストールまたはロード バランサの背後のクラスタ化されたインストールにすることができます。 


Bitbucket Data Center では、クラスタ化された Elasticsearch を使用できます。ただし、アトラシアン サポートはその構成に対するサポートの提供は行いません。つまり、アトラシアンではリバース プロキシに関するあらゆるサポートの提供が保証されません。構成でサポートが必要な場合、アトラシアン コミュニティに質問を登録してください。

標準的な Bitbucket Data Center のコンポーネント図

Bitbucket Data Center で使用するための Elasticsearch クラスタのデプロイを検討する前に、Bitbucket Data Center の標準的なインストールについて理解しておくことをおすすめします。「Bitbucket Data Center の要件」ページには、詳細な要件の概要が記載されています。

標準的な Bitbucket Data Center インストールの最小構成としては、次のコンポーネントがそれぞれの専用マシンで用意され、それぞれが高速 LAN で接続されている必要があります (各コンポーネントの詳細な要件を表示するにはリンクをクリックしてください)。


Bitbucket Data Center のコンポーネント図 (Elasticsearch クラスタ x 1)

このコンポーネント図は、ロード バランサの背後で Elasticsearch ノードのクラスタとデプロイした Bitbucket Data Center インストールの構成例を示します。この例では、独自のクラスタで Elasticsearch を実行していると仮定します。 


Amazon Elasticsearch サービスと Bitbucket Data Center の併用

Bitbucket Data Center の Elasticsearch クラスタを最も簡単にセットアップおよびデプロイする方法は、Amazon の Elasticsearch サービスを使用することです。アトラシアンでは、AWS Elasticsearch クラスタをセットアップするための直接的なサポートは提供していませんが、Amazon ドキュメント「Amazon Elasticsearch Service (ドキュメント)」を確認うることをおすすめします。

正しいバージョンを使用していることをご確認ください

Data Center はアップグレード予定に対応するため、Bitbucket 6.0 がリリースされるまでElasticsearch 2.3 と 5.5 の両方を引き続きサポートします。これ以降、Elasticsearch 2.3 は Data Center でサポートされません。

Bitbucket Data Center でのスタンドアロン Elasticsearch クラスタのセットアップ

AWS の Elasticsearch サービスを使用せずに Elasticsearch ノードのクラスタを自身でセットアップする場合、一般に 2 つ以上の Elasticsearch ノードを持つクラスタをセットアップします。2 つのノードを使用すると、各ノードにレプリカを持たせることができます。これにより、1 つのノードが短期間ダウンした場合、別のノードを修正 / 交換している間に引き続きすべての検索結果を確認できます。耐障害性をさらに向上させる必要がある場合は、クラスタ内のノードの数を増やします。 

Elasticsearch クラスタの保護

Elasticsearch クラスタをセットアップしたら、クラスタを保護することが重要です。さまざまな技術を使用してクラスタの Elasticsearch を保護できます。ベーシック認証から開始する場合、有効なユーザー名とパスワードなしでのクラスタへのアクセス試行をブロックするプラグインを Elasticsearch で使用する必要があります。アトラシアンではこのために Buckler という小規模なプラグインを作成しました。

Atlassian の Buckler プラグインで Elasticsearch を保護

For instructions on how to configure Buckler, see the page Install and configure a remote Elasticsearch instance - Step 3: Secure Elasticsearch. Buckler needs to be installed on every node in the cluster. In any case, if you're going to use Amazon's Elasticsearch Service, you must set the AWS region in the bitbucket.properties file to enable request signing.

プロパティを表示...
<Bitbucket ホーム ディレクトリ>/shared/bitbucket.properties
plugin.search.elasticsearch.aws.region= 


Elastic の Shield プラグインで Elasticsearch を保護

Bitbucket は、ベーシック認証を提供する他のプラグイン (Elastic の Shield プラグインなど) を通じた Elasticsearch への認証もサポートします。このプラグインは、アトラシアンでは直接サポートされませんが、ベーシック認証システムを活用して Bitbucket と相互にやり取りできます。

Amazon のリクエスト署名で Elasticsearch を保護

ベーシック認証および AWS のリクエスト署名が、Bitbucket (AWS リクエスト署名 Bitbucket 4.10+) でサポートされています。AWS のリクエスト署名では、AWS Elasticsearch サービスを Elasticsearch クラスタとして使用することができます。これにより、Elasticsearch クラスタを保護し、AWS ec2 内で Bitbucket が実行されているノードの AIM ユーザーからのリクエストのみを許可できます。

最終更新日 2021 年 4 月 6 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.