Amazon S3 にバックアップを保存する

お困りですか?

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

コミュニティに質問

既定では、Jira のすべてのバックアップはローカルのファイル システムに保存されます。Amazon S3 (シンプル ストレージ サービス) という独自の保存方法を設定することもできます。 チームのデータ ニーズが大きい、または増え続けていて、効率的に拡張する機能が必要な場合は、Amazon 3S を使用することをお勧めします。 機密データを含むバックアップをアプリケーションのローカル ファイル システムに保持すると、セキュリティ上のリスクが生じます。 侵害が発生した場合、攻撃者がバックアップを暗号化または削除し、データ復元を妨げる可能性があるため、このデータは漏洩または失われる可能性があります。 アトラシアン では、セキュリティ強化のために XML バックアップを S3 に転送するかネイティブ データベース バックアップを利用することを推奨しています。

On this page:

はじめる前に

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="backupBucket">
      <config>
        <bucket-name>jira-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="backups" file-store="backupBucket" />
  </associations>
</filestore-config>

すでに S3 にアバターを保存している場合は、バックアップもそこに保存するように filestore-config.xml ファイルを設定できます。 これを行うには、ターゲット backupsを持つ新しい 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="backups" 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="backupBucket">
      <config>
        <bucket-name>jira-backup-bucket</bucket-name>
        <region>us-east-1</region>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="avatars" file-store="avatarBucket" />
    <association target="backups" file-store="backupBucket" />
  </associations>
</filestore-config>

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

共有ホームを使用するように設定された 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="backupBucket">
      <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="backups" file-store="backupBucket" />
  </associations>
</filestore-config>

この設定オプションを使用して、S3 互換 API を公開しているサードパーティのオブジェクトストアにバックアップを保存することもできます。 ただし、アトラシアンでは、Amazon S3 以外のオブジェクトストアに保存されているバックアップに対する直接的なサポートは提供していません。

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="backupBucket">
          <config>
            <bucket-name>example-co-jira-backup-bucket</bucket-name>
            <region>ap-southeast-4</region>
          </config>
        </s3-filestore>
      </filestores>
      <associations>
        <association target="backups" file-store="backupBucket" />
      </associations>
    </filestore-config>


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

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

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

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

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

  2. [ インポートとエクスポート ] 設定 (左側のパネル) で、[ システムをバックアップ] を選択します。

  3. [ バックアップ ファイルはここに配置されます] の横に 、バックアップが S3 に保存されていることがわかります 。ここでは、S3 バケットの名前とリージョンを確認することもできます。\

復元プロセス

復元するには、バックアップ ファイルを S3 バケットから手動でダウンロードし、<sharedhome>/import ディレクトリに配置する必要があります。 XML バックアップからデータを復元する方法をご確認ください。

書き込み専用モード

S3 バケットへのアクセスを書き込み専用モード (アプリケーションには S3 ストレージへの新しいファイルの書き込み専用のアクセス権しかない状態) で許可することをお勧めします。 

Identity and Access Management (IAM) ポリシーが適切なアクセス許可を提供する方法の例を次に示します。

{
    "Version": "2012-10-17",
    "Id": "PolicyForS3Access",
    "Statement": [
        {
            "Sid": "StatementForS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/JiraS3"
            },
            "Action": [
                "s3:PutObject"

さらに、 バックアップ ファイルの上書きを回避するために、このバケットでバージョニングを有効にすることをお勧めします。

すべてのノードが毎時Jira、接続を確認するために小さなファイル (~60 バイト) を作成、読み取り、最後に S3 ストレージから削除します。書き込み専用モードではファイルを削除できないためJira、データが蓄積されます (ノードあたり年間 1 MiB 未満)。

これを回避するには、次の手順に従います。

  1. 次のロケーション ({backupBucket}/backups/Healtcheck) から定期的にすべてのファイルを削除します。
  2. オブジェクト ライフサイクル設定を追加します。

    <LifecycleConfiguration>
      <Rule>
        <ID>Remove Health checks files</ID>
        <Filter>
           <Prefix>backups/Healthcheck/</Prefix>
        </Filter>
        <Status>Enabled</Status>
        <Expiration>
          <Days>5</Days>
        </Expiration>
      </Rule>
    </LifecycleConfiguration>

S3 バックアップ ストレージのトラブルシューティング

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

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

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

Jira の起動の失敗

また、<localhome>/log/atlassian-jira.log でJiraログをチェックして、問題の詳細を確認することもできます。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="backups" file-store="THESE MUST MATCH" />
  </associations>
</filestore-config>

ヘルス チェックの失敗

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

問題根本原因と解決方法

バックアップ ストレージに書き込めない

PutObject 権限が存在しない。

  1. 正しいバケット権限が設定されていることを確認します。
  2. 必要に応じて権限を適用し、Jira を再起動します。

バックアップストレージからデータを読み取ることができる

セキュリティを強化するため、書き込み専用モードの使用をお勧めします。

GetObject権限が存在する場合:

  1. 正しいバケット権限が設定されていることを確認します。
  2. 必要に応じて権限を適用し、Jira を再起動します。

バックアップストレージからデータを削除できる

セキュリティを強化するため、書き込み専用モードの使用をお勧めします。

DeleteObject権限が存在する場合:

  1. 正しいバケット権限が設定されていることを確認します。
  2. 必要に応じて権限を適用し、Jira を再起動します。

低速または信頼性の低いネットワークにおける 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="backupBucket">
      <config>
        <bucket-name>dualstack-bucket</bucket-name>
        <region>us-east-1</region>
        <max-concurrency>100</max-concurrency>
      </config>
    </s3-filestore>
  </filestores>
  <associations>
    <association target="backups" file-store="backupBucket" />
  </associations>
</filestore-config>

同時接続の数が増えると、クライアントのスループットが向上する可能性があります。 これは、アプリでより多くのリソースを同時に管理しなければならないことも意味します。

S3 CRT クライアント構成の詳細についてはこちらをご確認ください。

最終更新日 2024 年 5 月 5 日

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

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