Amazon S3 にアバターを保存する

Amazon S3 オブジェクト ストレージを設定する

このページの内容

お困りですか?

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

コミュニティに質問

現在、この機能は機能フラグの後ろにあります。com.atlassian.jira.attachments.storage.configurable。有効にすると、API に重大な変更が加えられ、一部の Jira アプリが機能しなくなる可能性もあります。API の変更内容をご確認ください。

本番環境で有効化する前に、必ず適切な方法でこの機能のテストを行ってください。

Jira でダーク機能を有効にする方法をご確認ください。

既定では、Jira の添付ファイルはすべてローカルのファイル システムに保存されます。Amazon S3 (シンプル ストレージ サービス) という独自の保存方法を設定することもできます。チームのデータ ニーズが大きい、または増え続けていて、効率的に拡張する機能が必要な場合は、Amazon S3 をお勧めします。

はじめる前に

Amazon S3 を使用して添付ファイルを保存することを検討している場合は、まず設定の要件と現在の制限事項を確認して、この保存方法が自社に適していることを確認してください。Amazon S3 の設定の詳細をご確認ください。

Jira で S3 添付ファイル ストレージをセットアップする方法

Amazon S3 の添付ファイル ストレージは、Jira の <localhome> にある filestore-config.xml ファイルで設定します。

S3 を添付ファイル データの保存先として使用するには、filestore-config.xmlfilestore 属性が s3-filestore の IDと一致する必要があります。

S3 を使用するように設定された filestore-config.xml ファイルの例
<?xml version="1.1" ?>
<filestore-config>
  <filestores>
    <s3-filestore id="attachmentBucket">
      <config>
        <bucket-name>jira-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="attachments" file-store="attachmentBucket" />
  </associations>
</filestore-config>

すでに S3 にアバターを保存している場合は、添付ファイルもそこに保存するように filestore-config.xml ファイルを設定できます。これを行うには、ターゲットを attachments とする新しい association 要素を追加します。

アバターと同じバケットに添付ファイルを保存する場合、filestore 属性は、アバターが保存されている同じバケットを指している必要があります。

アバターと添付ファイルの両方を同じバケットに保存する際の filestore-config.xml の例
<?xml version="1.1" ?>
<filestore-config>
  <filestores>
    <s3-filestore id="jiraBucket">
      <config>
        <bucket-name>jira-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="avatars" file-store="jiraBucket" />
    <association target="attachments" file-store="jiraBucket" />
  </associations>
</filestore-config>

添付ファイルとアバターに別々のバケットを使用するには、複数の <s3-filestore> 要素を定義し、各関連付けターゲットでそれぞれを参照します。

アバターと添付ファイルを別々のバケットに保存する際の filestore-config.xml の例
<?xml version="1.1" ?>
<filestore-config>
  <filestores>
    <s3-filestore id="avatarBucket">
      <config>
        <bucket-name>jira-avatar-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
    <s3-filestore id="attachmentBucket">
      <config>
        <bucket-name>jira-attachment-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="avatars" file-store="avatarBucket" />
    <association target="attachments" file-store="attachmentBucket" />
  </associations>
</filestore-config>

添付ファイルの保存に Jira の <sharedhome> ディレクトリを使用しつつも、設定ファイルを残したい場合は、targetattachments である association 要素を削除するだけです。filestore-config.xml で S3 が設定されていない場合、またはこのファイルが <localhome> ディレクトリにない場合、Jira では既定でローカルに添付ファイルが保存されます。

共有ホームを使用するように設定された filestore-config.xml ファイルの例
<?xml version="1.1" ?>
<filestore-config>
  <filestores />
  <associations />
</filestore-config>

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 に移動しないでください。このデータを移動すると、アプリの機能が損なわれる可能性があります。


添付ファイルを移行するには、以下を実行します。

  1. Jira のバージョンをチェックし、Jira 9.11 以降を使用していることを確認します。

  2. Jira 用の新しい Amazon S3 バケットを作成してセットアップします。Amazon S3 をデータ ストレージとして設定する方法をご確認ください。

  3. 添付ファイル データを <sharedhome>/data/attachments/ 内の物理的な保存場所から S3 バケットのルート プレフィックス attachments/ に移行します。

    添付ファイルの物理的な保存場所は、お使いの環境によって異なります。たとえば、クラスタ環境では、通常、このデータを共有マウントとしてネットワーク ファイル システム (NFS) でホストします。

    現在のセットアップと移行対象データの量を検討する必要があります。一般的に、移行には Amazon DataSync を使用することをお勧めします。 

    Amazon DataSync を使用してデータを移行する方法をご確認ください。


  4. 移行が完了するまで待ちます。

  5. Jira クラスタの各ノードの <localhome> に有効な S3 バケット情報を含む filestore-config.xml ファイルを作成して、Jira ノードを 1 つずつ設定します。適切な設定を指定したら、各ノードを再起動する必要があります。
    このプロセス中に、S3 用にまだ設定されていないノードで添付ファイルが作成された場合、すでに設定済みのノードでは添付ファイルを使用できなくなります。同様に、これらのノードは、すでに S3 を使用するように設定されているノードで作成された添付ファイルにはアクセスできなくなります。

  6. 機能フラグが有効になっていることを確認してください。

  7. Jira で S3 オブジェクト ストレージが使用されていることを確認します。

    1. 画面右上で [管理 ] > [システム] の順に選択します。

    2. [詳細] (左側のパネル) で、[添付ファイル] を選択します。ページに直接アクセスするには、gg ショートカットを使用するか、ピリオド (.) を押して「添付ファイル」を検索します。

    3. [添付ファイルの場所] の横に、Amazon S3 のほか、filestore-config.xml で指定したリージョンとバケットが表示されるはずです。
      S3 に保存されている添付ファイルを表示する添付ファイル設定

  8. すべてのノードが設定され、すべての添付ファイルが移行されていることを確認してから、元の DataSync ジョブを再実行して最終同期を行います。

  9. これで、すべての添付ファイルの読み取り / 書き込みが Amazon S3 で行われるようになったはずです。

DataSync では、ソース ファイル システムのデータは変更または削除されません。そのファイル システムにある添付ファイルが不要になった場合は、このデータを手動で削除する必要があります。

ローカルの添付ファイル ストレージに戻す

ソース ファイル システムのデータは DataSync によって変更または削除されないため、そのファイル システムに対して添付ファイル データの読み取り / 書き込みを行うように戻すことができます。そのためには、<localhome> ディレクトリから filestore-config.xml ファイルを削除し、Jira を再起動します。添付ファイルをターゲットとする <association> 要素を削除することもできます。

元のファイル システムに戻す場合は、S3 に書き込まれたすべてのデータについて、Jira 管理者が手動で元のファイル システムに同期させる必要があります。

Amazon S3 を添付ファイルの保存用に設定する

Amazon S3 の設定に進む準備ができたら、「Amazon S3 をデータ ストレージとして設定する」の手順に従ってください。

S3 バケットを Jira に接続する

S3 オブジェクト ストレージを設定したら、作成した S3 バケットを Jira インスタンスに接続する必要があります。

  1. 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>
    1. クラスタ インストールを実行している場合は、filestore-config.xml ファイルを他のノードの Jira アプリケーション ホーム ディレクトリにコピーします。

    2. すべての Jira ノードを起動または再起動します。

    Jira が起動すると、バケット接続、名前とリージョンの有効性、バケット権限などのバケット設定がチェックされます潜在的なエラーとその修正方法をご確認ください。

Jira で Amazon S3 オブジェクト ストレージが使用されていることを確認するには、次の手順に従います。

  1. 画面右上で [管理 ] > [システム] の順に選択します。

  2. [詳細] 設定 (左側のパネル) で、[添付ファイル] を選択します。

  3. 添付ファイル ストレージの場所の横に、添付ファイルの保存先として S3 が表示されます。ここでは、S3 バケットの名前とリージョンを確認することもできます。S3 に保存されている添付ファイルを表示する添付ファイル設定

S3 添付ファイル ストレージをトラブルシューティングする

Jira が起動すると、filestore-config.xml ファイルに問題がないことを確認するために一連のチェックが実行されます。ファイルの解析中にエラーが発生した場合、Jira は起動せず、エラー メッセージが表示されます。

S3 への接続や操作で問題が発生した場合は、Jira でもその問題が検出され、添付ファイル ファイルストア インスタンスのヘルス チェックが失敗としてフラグ付けされます。

次の各セクションでは、S3 の設定中に発生する可能性のある問題と解決手順を示します。これらの問題は主に不適切な S3 設定、権限、または認証に関連するものです。

Jira の起動の失敗

問題の詳細は、Jira ログ (<localhome>/log/atlassian-jira.log) でも確認できます。Jira ログにアクセスする方法をご確認ください。

問題

根本原因と解決方法

filestore-config.xml を解析できなかった

filestore-config.xml ファイルを解析できませんでした。

ファイルが有効な XML で構成されていることを確認してください。

<s3-filestore> の値が無効

<s3-filestore> 要素に <config><bucket-name>、または <region> 要素が含まれていません。

filestore-config.xml<s3-filestore> 要素を指定する場合、その要素には空でない値を持つ先行要素がすべて含まれている必要があります。

サンプル filestore-config.xml ファイルをチェックしてください。 

<s3-filestore> の値が欠落している

存在しない <s3-filestore> 要素をターゲットとする <association> が定義されています。
<s3-filestore> 要素が <filestores> コレクションに定義されていることを確認してください。要素が存在する場合は、<association> の file-store 属性が <s3-filestore> 要素の id 属性と一致することを確認してください。

<filestore-config>
  <filestores>
    <s3-filestore id="THESE MUST MATCH">
      ...
    </s3-filestore>
  </filestores>
  <associations>
    <association target="attachments" file-store="THESE MUST MATCH" />
  </associations>
</filestore-config>

ヘルス チェックの失敗

インスタンスのヘルス チェックとその実行方法の詳細をご確認ください。インスタンスのヘルス チェックの詳細

問題

根本原因と解決方法

添付ファイル ストレージのコンテンツをリストできない

このヘルス チェックは、次の理由で失敗する可能性があります。

  1. Jira を Amazon S3 に接続できない

  2. <bucket-name> 要素の値が無効である。

  3. ListBucket 権限が存在しない。

チェックが失敗した詳細な理由は、ヘルス チェック結果に記載されています。問題の診断についてさらにサポートが必要な場合は、<localhome>/log/atlassian-jira.log のログでスタック トレースを確認してください。

添付ファイル ストレージからデータを読み取れない

GetObject 権限がありません。

  1. 正しいバケット権限が設定されていることを確認します。

  2. 必要に応じて権限を適用し、Jira を再起動します。

添付ファイル ストレージに書き込めない

PutObject 権限が存在しない。

  1. 正しいバケット権限が設定されていることを確認します。

  2. 必要に応じて権限を適用し、Jira を再起動します。

添付ファイル ストレージからファイルを削除できない

DeleteObject 権限が存在しない。

  1. 正しいバケット権限が設定されていることを確認します。

  2. 必要に応じて権限を適用し、Jira を再起動します。

最終更新日 2023 年 11 月 20 日

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

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