Amazon S3 にアバターを保存する
現在、この機能は機能フラグの後ろにあります。com.atlassian.jira.attachments.storage.configurable
。有効にすると、API に重大な変更が加えられ、一部の Jira アプリが機能しなくなる可能性もあります。API の変更内容をご確認ください。
本番環境で有効化する前に、必ず適切な方法でこの機能のテストを行ってください。
既定では、Jira の添付ファイルはすべてローカルのファイル システムに保存されます。Amazon S3 (シンプル ストレージ サービス) という独自の保存方法を設定することもできます。チームのデータ ニーズが大きい、または増え続けていて、効率的に拡張する機能が必要な場合は、Amazon S3 をお勧めします。
はじめる前に
Amazon S3 を使用して添付ファイルを保存することを検討している場合は、まず設定の要件と現在の制限事項を確認して、この保存方法が自社に適していることを確認してください。Amazon S3 の設定の詳細をご確認ください。
Jira で S3 添付ファイル ストレージをセットアップする方法
Amazon S3 の添付ファイル ストレージは、Jira の <localhome>
にある filestore-config.xml ファイルで設定します。
S3 を添付ファイル データの保存先として使用するには、filestore-config.xml の filestore
属性が s3-filestore
の IDと一致する必要があります。
すでに S3 にアバターを保存している場合は、添付ファイルもそこに保存するように filestore-config.xml ファイルを設定できます。これを行うには、ターゲットを attachments
とする新しい association
要素を追加します。
アバターと同じバケットに添付ファイルを保存する場合、filestore
属性は、アバターが保存されている同じバケットを指している必要があります。
添付ファイルとアバターに別々のバケットを使用するには、複数の <s3-filestore>
要素を定義し、各関連付けターゲットでそれぞれを参照します。
添付ファイルの保存に Jira の <sharedhome>
ディレクトリを使用しつつも、設定ファイルを残したい場合は、target
が attachments
である association
要素を削除するだけです。filestore-config.xml で S3 が設定されていない場合、またはこのファイルが <localhome>
ディレクトリにない場合、Jira では既定でローカルに添付ファイルが保存されます。
Amazon S3 のデュアルスタック エンドポイントに接続する
Jira インストール環境が IPv6 のみのネットワーク上にある場合は、Amazon S3 のデュアルスタック エンドポイントに接続する必要があります。Amazon S3 のデュアルスタック エンドポイントの詳細をご確認ください。
接続をセットアップするには、次のように既定のエンドポイントをデュアルスタック エンドポイントでオーバーライドする必要があります。
<?xml version="1.1" ?>
<filestore-config>
<filestores>
<s3-filestore id="attachmentBucket">
<config>
<bucket-name>dualstack-bucket</bucket-name>
<region>us-east-1</region>
<endpoint-override>https://s3.dualstack.us-east-1.amazonaws.com</endpoint-override>
</config>
</s3-filestore>
</filestores>
<associations>
<association target="attachments" file-store="attachmentBucket" />
</associations>
</filestore-config>
この設定オプションを使用して、S3 互換の API を公開しているサードパーティのオブジェクト ストアに添付ファイルを保存することもできます。ただし、アトラシアンでは、Amazon S3 以外のオブジェクト ストアに保存されている添付ファイルに対する直接的なサポートは提供していません。
添付ファイル データを Amazon S3 に移行する
ファイル システムに既存の添付ファイルがある場合に、Amazon S3 を使用するには、Jira で利用できるようにすべての添付ファイルを S3 バケットに移行する必要があります。
添付ファイルを S3 に移行しようとしており、Jira Service Management のアセットを使用する場合は、<sharedhome>/data/attachments/insight/
ディレクトリが <sharedhome>/data/attachments
ディレクトリとともに S3 バケットに移行されていることを確認してください。
Jira Software 9.13 以降および Jira Service Management 5.13 以降で、添付ファイルを Amazon S3 に保存するよう Jira を設定している場合、アセット アプリは自身のファイルを同じ S3 バケットに保存します。
アセット自動化ルールで使用される Groovy スクリプトは、常にファイルシステムからロードされます。S3 バケットからはロードされないことに注意してください。
Jira アプリはアプリ固有のデータを <sharedhome>/data/attachments
ディレクトリにインストールできます。アプリ開発者が指定している場合を除き、このデータを Amazon S3 に移動しないでください。このデータを移動すると、アプリの機能が損なわれる可能性があります。
添付ファイルを移行するには、以下を実行します。
Jira のバージョンをチェックし、Jira 9.11 以降を使用していることを確認します。
Jira 用の新しい Amazon S3 バケットを作成してセットアップします。Amazon S3 をデータ ストレージとして設定する方法をご確認ください。
添付ファイル データを
<sharedhome>/data/attachments/
内の物理的な保存場所から S3 バケットのルート プレフィックスattachments/
に移行します。添付ファイルの物理的な保存場所は、お使いの環境によって異なります。たとえば、クラスタ環境では、通常、このデータを共有マウントとしてネットワーク ファイル システム (NFS) でホストします。
現在のセットアップと移行対象データの量を検討する必要があります。一般的に、移行には Amazon DataSync を使用することをお勧めします。
移行が完了するまで待ちます。
Jira クラスタの各ノードの
<localhome>
に有効な S3 バケット情報を含む filestore-config.xml ファイルを作成して、Jira ノードを 1 つずつ設定します。適切な設定を指定したら、各ノードを再起動する必要があります。
このプロセス中に、S3 用にまだ設定されていないノードで添付ファイルが作成された場合、すでに設定済みのノードでは添付ファイルを使用できなくなります。同様に、これらのノードは、すでに S3 を使用するように設定されているノードで作成された添付ファイルにはアクセスできなくなります。機能フラグが有効になっていることを確認してください。
Jira で S3 オブジェクト ストレージが使用されていることを確認します。
画面右上で [管理 ] > [システム] の順に選択します。
[詳細] (左側のパネル) で、[添付ファイル] を選択します。ページに直接アクセスするには、
gg
ショートカットを使用するか、ピリオド (.
) を押して「添付ファイル」を検索します。[添付ファイルの場所] の横に、Amazon S3 のほか、filestore-config.xml で指定したリージョンとバケットが表示されるはずです。
すべてのノードが設定され、すべての添付ファイルが移行されていることを確認してから、元の DataSync ジョブを再実行して最終同期を行います。
これで、すべての添付ファイルの読み取り / 書き込みが Amazon S3 で行われるようになったはずです。
DataSync では、ソース ファイル システムのデータは変更または削除されません。そのファイル システムにある添付ファイルが不要になった場合は、このデータを手動で削除する必要があります。
ローカルの添付ファイル ストレージに戻す
ソース ファイル システムのデータは DataSync によって変更または削除されないため、そのファイル システムに対して添付ファイル データの読み取り / 書き込みを行うように戻すことができます。そのためには、<localhome>
ディレクトリから filestore-config.xml ファイルを削除し、Jira を再起動します。添付ファイルをターゲットとする <association>
要素を削除することもできます。
元のファイル システムに戻す場合は、S3 に書き込まれたすべてのデータについて、Jira 管理者が手動で元のファイル システムに同期させる必要があります。
Amazon S3 を添付ファイルの保存用に設定する
Amazon S3 の設定に進む準備ができたら、「Amazon S3 をデータ ストレージとして設定する」の手順に従ってください。
S3 バケットを Jira に接続する
S3 オブジェクト ストレージを設定したら、作成した S3 バケットを Jira インスタンスに接続する必要があります。
Jira インストール環境のいずれかのノードの Jira アプリケーション ホーム ディレクトリで、
filestore-config.xml
ファイルを作成します。Jira アプリケーション ホーム ディレクトリは、JIRA_HOME
環境変数の値に設定する必要があります。Jira アプリケーション ホーム ディレクトリのコンテンツをご確認ください。filestore-config.xml
ファイルで、添付ファイルとアバターを保存するために Jira が使用する S3 バケットを定義します。S3 にアバターを保存する方法をご確認ください。filestore-config.xml
ファイルの例:<?xml version="1.1" ?> <filestore-config> <filestores> <s3-filestore id="attachmentBucket"> <config> <bucket-name>example-co-jira-attachment-bucket</bucket-name> <region>ap-southeast-4</region> </config> </s3-filestore> </filestores> <associations> <association target="attachments" file-store="attachmentBucket" /> </associations> </filestore-config>
クラスタ インストールを実行している場合は、
filestore-config.xml
ファイルを他のノードの Jira アプリケーション ホーム ディレクトリにコピーします。すべての Jira ノードを起動または再起動します。
Jira が起動すると、バケット接続、名前とリージョンの有効性、バケット権限などのバケット設定がチェックされます。潜在的なエラーとその修正方法をご確認ください。
Jira で Amazon S3 オブジェクト ストレージが使用されていることを確認するには、次の手順に従います。
画面右上で [管理 ] > [システム] の順に選択します。
[詳細] 設定 (左側のパネル) で、[添付ファイル] を選択します。
添付ファイル ストレージの場所の横に、添付ファイルの保存先として S3 が表示されます。ここでは、S3 バケットの名前とリージョンを確認することもできます。
S3 添付ファイル ストレージをトラブルシューティングする
Jira が起動すると、filestore-config.xml ファイルに問題がないことを確認するために一連のチェックが実行されます。ファイルの解析中にエラーが発生した場合、Jira は起動せず、エラー メッセージが表示されます。
S3 への接続や操作で問題が発生した場合は、Jira でもその問題が検出され、添付ファイル ファイルストア インスタンスのヘルス チェックが失敗としてフラグ付けされます。
次の各セクションでは、S3 の設定中に発生する可能性のある問題と解決手順を示します。これらの問題は主に不適切な S3 設定、権限、または認証に関連するものです。
Jira の起動の失敗
問題の詳細は、Jira ログ (<localhome>/log/atlassian-jira.log
) でも確認できます。Jira ログにアクセスする方法をご確認ください。
問題 | 根本原因と解決方法 |
---|---|
|
ファイルが有効な XML で構成されていることを確認してください。 |
|
filestore-config.xml で |
| 存在しない
|
ヘルス チェックの失敗
インスタンスのヘルス チェックとその実行方法の詳細をご確認ください。インスタンスのヘルス チェックの詳細
問題 | 根本原因と解決方法 |
---|---|
添付ファイル ストレージのコンテンツをリストできない | このヘルス チェックは、次の理由で失敗する可能性があります。
チェックが失敗した詳細な理由は、ヘルス チェック結果に記載されています。問題の診断についてさらにサポートが必要な場合は、 |
添付ファイル ストレージからデータを読み取れない |
|
添付ファイル ストレージに書き込めない |
|
添付ファイル ストレージからファイルを削除できない |
|
低速または信頼性の低いネットワークにおける S3 接続の問題を軽減する
Jira では Amazon S3 CRT 非同期クライアントを使用して Amazon S3 に接続します。
Amazon S3 CRT ベースのクライアントでは、1 つの接続で複数の同時スレッドを制御して、読み取り操作と書き込み操作を行うことができます。 Jira サーバーのインターネット接続が不安定または低速な場合、Jira 管理者はアップロードとダウンロードの失敗を軽減するようにクライアント設定を構成できます。
Amazon S3 CRT ベースのクライアントではいくつかのパラメーターを調整できますが、なかでも最も重要なのが max-concurrency
です。 既定では、max-concurrency
が 100 スレッドに設定されています。 これは Jira ファイルストア設定 filestore-config
に導入されています。
<?xml version="1.1" ?>
<filestore-config>
<filestores>
<s3-filestore id="attachmentBucket">
<config>
<bucket-name>dualstack-bucket</bucket-name>
<region>us-east-1</region>
<max-concurrency>100</max-concurrency>
</config>
</s3-filestore>
</filestores>
<associations>
<association target="attachments" file-store="attachmentBucket" />
</associations>
</filestore-config>
同時接続の数が増えると、クライアントのスループットが向上する可能性があります。 これは、アプリでより多くのリソースを同時に管理しなければならないことも意味します。