バックアップと復元

データ損失が心配な場合は(もちろん、心配すべきです)、壊滅的な障害が発生した場合に迅速に復旧できるように、Solr インデックスをバックアップする方法が必要です。

Solr には、Solr の実行方法に応じて、Solr コアまたはコレクションをバックアップおよび復元するための 2 つのアプローチがあります。SolrCloud クラスタを実行する場合は、コレクション API を使用します。ユーザ管理クラスタまたは単一ノードインストールを実行する場合は、レプリケーションハンドラを使用します。

バックアップ(およびスナップショット)は、ハードコミットされたデータをキャプチャします。softCommit=true を使用して変更をコミットすると、検索結果には表示されますが、後続のバックアップには含まれない変更が発生する可能性があります。

同様に、openSearcher=false を使用して変更をコミットすると、検索結果には現在表示されていなくても、ディスクにコミットされ、後続のバックアップに含まれる変更が発生する可能性があります。

SolrCloud クラスタ

SolrCloud でのバックアップのサポートは、コレクション API で提供されます。これにより、バックアップを複数のシャードにわたって生成し、元のコレクションと同じ数のシャードとレプリカに復元できます。

SolrCloud バックアップ/復元には、すべてのノードで同じパスにマウントされた共有ファイルシステム、または HDFS が必要です。

4 つの異なる API コマンドがサポートされています

  • action=BACKUP: このコマンドは、Solr インデックスと構成をバックアップします。詳細については、コレクションのバックアップ のセクションを参照してください。

  • action=RESTORE: このコマンドは、Solr インデックスと構成を復元します。詳細については、コレクションの復元 のセクションを参照してください。

  • action=LISTBACKUP: このコマンドは、指定された場所で使用可能なバックアップポイントを一覧表示し、それぞれにメタデータを表示します。詳細については、バックアップの一覧 のセクションを参照してください。

  • action=DELETEBACKUP: このコマンドを使用すると、バックアップファイルまたは全体のバックアップを削除できます。詳細については、バックアップの削除 のセクションを参照してください。

ユーザ管理クラスタと単一ノードインストール

バックアップと復元には、Solr のレプリケーションハンドラを使用します。Solr には、すぐに使用できるレプリケーションの暗黙的なサポートが含まれているため、この API を使用できます。ただし、レプリケーションハンドラの構成は、solrconfig.xml で独自のレプリケーションハンドラを定義することでカスタマイズできます。レプリケーションハンドラの設定の詳細については、ReplicationHandler の設定 のセクションを参照してください。

バックアップ API

backup API では、システムのバックアップのために、/replication ハンドラにコマンドを送信する必要があります。

次のような HTTP コマンドを使用してバックアップをトリガーできます(「gettingstarted」を操作しているコアの名前に置き換えます)。

バックアップ API の例
https://127.0.0.1:8983/solr/gettingstarted/replication?command=backup

backup コマンドは非同期呼び出しであり、最新のインデックスコミットポイントからのデータを表します。すべてのインデックス作成および検索操作は、通常どおりインデックスに対して実行され続けます。

1 つのコアに対して 1 回に 1 つのバックアップ呼び出しのみを行うことができます。進行中のバックアップ操作中に、復元のための後続の呼び出しを行うと、例外がスローされます。

バックアップリクエストは、次の追加パラメータも受け取ることができます。

場所

オプション

デフォルト:なし

バックアップが作成されるパス。パスが絶対パスでない場合、バックアップパスはSolrのインスタンスディレクトリからの相対パスになります。

name

オプション

デフォルト:なし

スナップショットはsnapshot.<name>という名前のディレクトリに作成されます。名前が指定されていない場合、ディレクトリ名はsnapshot.<_yyyyMMddHHmmssSSS_>という形式になります。

numberToKeep

オプション

デフォルト:なし

保持するバックアップの数。solrconfig.xmlのレプリケーションハンドラーでmaxNumberOfBackupsが指定されている場合、常にmaxNumberOfBackupsが使用され、numberToKeepを使用しようとするとエラーが発生します。また、バックアップ名が指定されている場合、このパラメータは考慮されません。maxNumberOfBackupsの詳細については、レプリケーションハンドラーの設定のセクションを参照してください。

repository

オプション

デフォルト:なし

バックアップに使用するリポジトリの名前。リポジトリが指定されていない場合、ローカルファイルシステムリポジトリが自動的に使用されます。

commitName

オプション

デフォルト:なし

CREATESNAPSHOTコマンドを使用してスナップショットを作成したときに使用されたコミットの名前。

バックアップステータス

backup操作が完了したかどうかを確認するには、この例のように、/replicationハンドラーにdetailsコマンドを送信することで監視できます。

ステータスAPIの例
https://127.0.0.1:8983/solr/gettingstarted/replication?command=details&wt=xml
出力スニペット
<lst name="backup">
  <str name="startTime">2022-02-11T17:19:33.271461700Z</str>
  <int name="fileCount">10</int>
  <int name="indexFileCount">10</int>
  <str name="status">success</str>
  <str name="snapshotCompletedAt">2022-02-11T17:19:34.363859100Z</str>
  <str name="endTime">2022-02-11T17:19:34.363859100Z</str>
  <str name="snapshotName">my_backup</str>
</lst>

失敗した場合、レスポンスにsnapShootExceptionが送信されます。

リストアAPI

バックアップをリストアするには、restoreコマンドを/replicationハンドラーに送信し、その後リストアするバックアップの名前を指定する必要があります。

次のようなコマンドでバックアップからリストアできます。

使用例
https://127.0.0.1:8983/solr/gettingstarted/replication?command=restore&name=backup_name

これにより、指定された名前のインデックススナップショットが現在のコアにリストアされます。リストアが完了すると、検索はスナップショットデータを反映し始めます。

restoreリクエストは、以下の追加パラメータを取ることができます。

場所

オプション

デフォルト:なし

バックアップスナップショットファイルの場所。指定されていない場合は、Solrのデータディレクトリでバックアップを探します。

name

オプション

デフォルト:なし

リストアするバックアップインデックススナップショットの名前。名前が提供されていない場合、snapshot.<タイムスタンプ>形式のバックアップが場所ディレクトリ内で検索されます。その場合は、最新のタイムスタンプのバックアップが選択されます。

repository

オプション

デフォルト:なし

バックアップに使用するリポジトリの名前。リポジトリが指定されていない場合、ローカルファイルシステムリポジトリが自動的に使用されます。

restoreコマンドは非同期呼び出しです。リストアが完了すると、反映されるデータはリストアされたバックアップインデックスのデータになります。

一度に1つのrestore呼び出しのみがコアに対して実行できます。進行中のリストア操作中に、後続のリストア呼び出しを行うと例外がスローされます。

リストアステータスAPI

restore操作のステータスを確認するには、この例のように、/replicationハンドラーにrestorestatusコマンドを送信します。

ステータスAPIの例
https://127.0.0.1:8983/solr/gettingstarted/replication?command=restorestatus&wt=xml
ステータスAPIの出力
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">0</int>
  </lst>
  <lst name="restorestatus">
    <str name="snapshotName">snapshot.<name></str>
    <str name="status">success</str>
  </lst>
</response>

ステータスの値は、"In Progress"、"success"、または "failed"になります。失敗した場合、レスポンスに "exception" も送信されます。

CREATE: スナップショットの作成

スナップショット機能は、インデックスファイルがどこにもコピーされないため、バックアップ機能とは異なります。インデックスファイルは同じインデックスディレクトリ内でスナップショットされ、バックアップの際に参照できます。

次のようなHTTPコマンドでスナップショットコマンドをトリガーできます("techproducts"を操作するコアの名前に置き換えてください)。

V1 API

curl -X POST https://127.0.0.1:8983/solr/admin/cores?action=CREATESNAPSHOT&core=techproducts&commitName=commit1

V2 API

v2 APIでは、コア名とスナップショット名はクエリパラメータではなくパスの一部になります。

curl -X POST https://127.0.0.1:8983/api/cores/techproducts/snapshots/commit1

CREATEパラメータ

CREATEアクションでは、次のパラメータが使用できます。

async

オプション

デフォルト:なし

非同期で処理されるこのアクションを追跡するためのリクエストID。

CREATEレスポンス

レスポンスには、リクエストのステータス、コア名、スナップショット名、インデックスディレクトリパス、スナップショット生成、およびファイル名のリストが含まれます。ステータスが「success」以外の場合、リクエストが失敗した理由を説明するエラーメッセージが表示されます。

リスト: 特定のコアのすべてのスナップショットのリスト

次のようなHTTPコマンドでリストスナップショットコマンドをトリガーできます("techproducts"を操作するコアの名前に置き換えてください)。

V1 API

curl https://127.0.0.1:8983/solr/admin/cores?action=LISTSNAPSHOTS&core=techproducts&commitName=commit1

V2 API

v2 APIでは、コア名はクエリパラメータとしてではなく、パスに表示されます。

curl https://127.0.0.1:8983/api/cores/techproducts/snapshots

LISTパラメータ

LISTアクションでは、次のパラメータが使用できます。

async

オプション

デフォルト:なし

非同期で処理されるこのアクションを追跡するためのリクエストID。

LISTレスポンス

レスポンスには、リクエストのステータスと、コアの既存のスナップショットがすべて含まれます。ステータスが「success」以外の場合、リクエストが失敗した理由を説明するエラーメッセージが表示されます。

DELETE: スナップショットの削除

次のようなHTTPコマンドでスナップショットの削除をトリガーできます("techproducts"を操作するコアの名前に置き換えてください)。

V1 API

curl https://127.0.0.1:8983/solr/admin/cores?action=DELETESNAPSHOT&core=techproducts&commitName=commit1

V2 API

v2 APIでは、コア名とスナップショット名はクエリパラメータではなくパスの一部になります。

curl -X DELETE https://127.0.0.1:8983/api/cores/techproducts/snapshots/commit1

DELETEパラメータ

DELETEアクションでは、次のパラメータが使用できます。

async

オプション

デフォルト:なし

非同期で処理されるこのアクションを追跡するためのリクエストID。

DELETEレスポンス

レスポンスには、リクエストのステータス、コア名、および削除されたスナップショットの名前が含まれます。ステータスが「success」以外の場合、リクエストが失敗した理由を説明するエラーメッセージが表示されます。

バックアップ/リストアストレージリポジトリ

Solrは、さまざまなストレージシステムにデータをバックアップおよびリストアできるように、リポジトリの抽象化を提供します。たとえば、ローカルファイルシステム(例:EXT3)で実行されているSolrクラスターは、同じディスク、リモートネットワークマウントドライブ、HDFS、または選択した「リポジトリ」の実装に応じて、一般的な「クラウドストレージ」プロバイダーにバックアップデータを保存できます。Solrは、すぐに使用できる複数の異なるリポジトリ実装(LocalFileSystemRepositoryHdfsBackupRepositoryGCSBackupRepository、およびS3BackupRepository)を提供しており、必要に応じてユーザーが独自のストレージシステムのプラグインを作成できるようにしています。

ユーザーは、solr.xmlファイルに任意数のリポジトリを定義できます。上記で説明したバックアップおよびリストアAPIを使用すると、ユーザーは実行時にrepositoryパラメータを介して、これらの定義のどれを使用するかを選択できます。repositoryパラメータが指定されていない場合、ローカルファイルシステムリポジトリがデフォルトとして使用されます。

リポジトリは、<backup>親タグの下にネストされた<repository>タグで定義されます。すべての<repository>タグには、name属性(ユーザーが後でこのリポジトリを選択するために参照できる識別子を定義します)とclass属性(リポジトリを実装する完全なJavaクラス名を含む)が必要です。また、ブール値のdefault属性を持つこともできます。これは、最大1つのリポジトリ定義でtrueにすることができます。<repository>タグの下の子要素はすべて、リポジトリに追加の構成として渡され、リポジトリは独自の実装固有の構成を読み取ることができます。

Solrに付属している各リポジトリ実装に関する情報は、以下に提供します。

LocalFileSystemRepository

LocalFileSystemRepositoryは、アクセス可能なファイルシステムの任意の場所にバックアップファイルを保存および取得します。ファイルは、「ローカル」ディスク、またはファイルシステムにローカルとして表示されるネットワークマウントドライブに保存できます。

ネットワークドライブと連携してLocalFileSystemRepositoryを使用しようとしているSolrCloud管理者は、各Solrノードで同じ場所でドライブを利用できるように注意する必要があります。厳密に言えば、マウントはバックアップ(またはリストア)を実行しているノードと、現在「オーバーシーアー」として機能しているノードにのみ存在する必要があります。ただし、「オーバーシーアー」の役割はクラスター内のノード間で頻繁に移動するため、バックアップドライブはすべてのノードに均一に追加することをお勧めします。

LocalFileSystemRepositoryインスタンスは、repositoryパラメータを明示的に提供しない、またはsolr.xmlにデフォルトが指定されていないバックアップおよびリストアコマンドによってデフォルトとして使用されます。

LocalFileSystemRepositoryは、次の構成オプションを受け入れます。

場所

オプション

デフォルト:なし

バックアップの保存と取得に使用する(Solrからローカルでアクセス可能な)有効なファイルパス。ユーザーがバックアップまたはリストアAPIコマンドでlocationパラメータを提供しない場合のフォールバックとして使用されます。

このプロパティを使用する構成の例を以下に示します。

<backup>
  <repository name="local_repo" class="org.apache.solr.core.backup.repository.LocalFileSystemRepository">
    <str name="location">/solr/backup_data</str>
  </repository>
</backup>

HdfsBackupRepository

HDFSディレクトリからバックアップファイルを保存および取得します。

これは、使用する前に有効にする必要があるhdfs Solrモジュールを介して提供されます。

HdfsBackupRepositoryは、次の構成オプションを受け入れます。

solr.hdfs.buffer.size

オプション

デフォルト:4096キロバイト

HDFSとの間でデータを転送するために使用されるバッファのサイズ(バイト単位)。メモリが許容される範囲で、より大きなバッファを使用すると、スループットが向上する場合があります。

solr.hdfs.home

必須

デフォルト:なし

hdfs://<ホスト>:<ポート>/<hdfsBaseFilePath>形式のHDFS URI。これにより、Solrはバックアップファイルを保存(または取得)するHDFSクラスターを指します。

solr.hdfs.permissions.umask-mode

オプション

デフォルト:なし

HDFSにファイルを作成するときに使用されるパーミッションumask。

場所

オプション

デフォルト:なし

バックアップの保存と取得に使用する、HDFSクラスター上の有効なディレクトリパス。ユーザーがバックアップまたはリストアAPIコマンドでlocationパラメータを提供しない場合のフォールバックとして使用されます。

これらのプロパティを使用する構成の例を以下に示します。

<backup>
  <repository name="hdfs" class="org.apache.solr.hdfs.backup.repository.HdfsBackupRepository" default="false">
    <str name="solr.hdfs.home">hdfs://some_hdfs_host:1234/solr/backup/data</str>
    <int name="solr.hdfs.buffer.size">8192</int>
    <str name="solr.hdfs.permissions.umask-mode">0022</str>
    <str name="location">/default/hdfs/backup/location</str>
  </repository>
</backup>

GCSBackupRepository

Google Cloud Storage(「GCS」)バケットにバックアップファイルを保存および取得します。

これは、使用する前に有効にする必要があるgcs-repository Solrモジュールを介して提供されます。

GCSBackupRepositoryは、全体的な構成に対して次のオプションを受け入れます。

gcsBucket

オプション

デフォルト:説明を参照

すべてのバックアップファイルの読み書きに使用するGCSバケット。指定されていない場合、GCSBackupRepositoryはGCS_BUCKET環境変数の値を使用します。両方の値がない場合、デフォルトとして値solrBackupsBucketが使用されます。

gcsCredentialPath

オプション

デフォルト:説明を参照

ローカルファイルシステム上のパスで、Solr からアクセス可能なGoogle Cloud サービスアカウントキーファイルへのパスです。指定しない場合、GCSBackupRepository は GCS_CREDENTIAL_PATH 環境変数の値を使用します。両方の値がなく、Solr が GCP 内で実行されている場合、GCS クライアントは GCP の「Compute Engine メタデータサーバー」またはWorkload Identity機能を使用して認証を試みます。両方の値がなく、Solr が GCP の外部で実行されている場合、認証できず、バックアップまたは復元操作は失敗します。

場所

オプション

デフォルト:なし

バックアップの保存と取得に使用する、指定された GCS バケット内の有効な「ディレクトリ」パスです。(GCS はフラットなストレージモデルを使用しますが、Solr のバックアップ機能は、階層的なディレクトリストレージを近似する方法で BLOB に名前を付けます。)ユーザーが Backup または Restore API コマンドで location パラメータを指定しない場合のフォールバックとして使用されます。

GCSBackupRepository は、全体的な構成のためのこれらのプロパティに加えて、GCS との通信に使用するクライアントを詳細に制御できます。これらのプロパティはほとんどのユーザーには関心がない可能性がありますが、パフォーマンスを細かく管理したい場合や、不安定なネットワークにさらされている場合に役立つ可能性があります。

GCSBackupRepository は、次の高度なクライアント構成オプションを受け入れます。

gcsWriteBufferSizeBytes

オプション

デフォルト: 16777216 バイト (16 MB)

GCS にデータを送信するときに使用するバッファサイズ(バイト単位)。

gcsReadBufferSizeBytes

オプション

デフォルト: 2097152 バイト (2 MB)

GCS からデータをコピーするときに使用するバッファサイズ(バイト単位)。

gcsClientHttpConnectTimeoutMillis

オプション

デフォルト: 2000 ミリ秒

GCS クライアントによって行われるすべての HTTP リクエストの接続タイムアウト(ミリ秒単位)。0 を使用して無限タイムアウトを要求できます。負の整数または値をまったく指定しない場合、デフォルト値が使用されます。

gcsClientHttpReadTimeoutMillis

オプション

デフォルト: 20000 ミリ秒

確立された接続でデータを読み取るための読み取りタイムアウト(ミリ秒単位)。0 を使用して無限タイムアウトを要求できます。負の整数または値をまったく指定しない場合、デフォルト値が使用されます。

gcsClientMaxRetries

オプション

デフォルト: 10

操作が失敗した場合に再試行する最大回数。GCS クライアントは、この値に達するか、すべてのアテンプトで費やされた時間が gcsClientMaxRequestTimeoutMillis を超えるまで操作を再試行します。0 を使用して、再試行しないように指定できます。

gcsClientMaxRequestTimeoutMillis

オプション

デフォルト: 30000 ミリ秒

失敗した操作のすべての再試行に費やす最大時間。GCS クライアントは、このタイムアウトに達するか、gcsClientMaxRetries の試行が失敗するまで操作を再試行します。

gcsClientHttpInitialRetryDelayMillis

オプション

デフォルト: 1000 ミリ秒

失敗した HTTP リクエストの最初の再試行までの遅延時間(ミリ秒単位)。この値は、後続の再試行にも影響します。詳細については、以下の gcsClientHttpRetryDelayMultiplier の説明を参照してください。gcsClientMaxRetries0 の場合、再試行は試行されないため、このプロパティは無視されます。

gcsClientHttpRetryDelayMultiplier

オプション

デフォルト: 1.0

失敗した HTTP リクエストの連続する各再試行間の遅延をスケーリングするために使用される浮動小数点乗数。この数値が大きいほど、再試行遅延がより迅速に複合化およびスケーリングされます。

Under the covers, the GSC client uses an exponential backoff strategy between retries, governed by the formula: . The first retry will have a delay of , the second a delay of , the third a delay of , and so on.

指定しない場合、デフォルトで値 1.0 が使用され、各再試行試行の間で gcsClientHttpInitialRetryDelayMillis が使用されることが保証されます。

gcsClientHttpMaxRetryDelayMillis

オプション

デフォルト: 30000 ミリ秒

失敗した HTTP リクエストの再試行試行間の最大遅延時間(ミリ秒単位)。これは、多くの場合、複数回試行すると発生する再試行遅延の指数関数的な増加を制限するために使用されます。この最大値が適用されない場合の各遅延の計算方法の詳細については、上記の gcsClientHttpRetryDelayMultiplier の説明を参照してください。

gcsClientRpcInitialTimeoutMillis

オプション

デフォルト: 10000 ミリ秒

タイムアウトする前に RPC リクエストを待機する時間(ミリ秒単位)。この値は、後続の再試行にも影響します。詳細については、以下の gcsClientRpcTimeoutMultiplier の説明を参照してください。gcsClientMaxRetries0 の場合、再試行は試行されないため、このプロパティは無視されます。

gcsClientRpcTimeoutMultiplier

オプション

デフォルト: 1.0

失敗した RPC リクエストの連続する各アテンプトでのタイムアウトをスケーリングするために使用される浮動小数点乗数。この数値が大きいほど、タイムアウトがより迅速に複合化およびスケーリングされます。

Under the covers, the GSC client uses an exponential backoff strategy for RPC timeouts, governed by the formula: . The first retry will have a delay of , the second a delay of , the third a delay of , and so on.

指定しない場合、デフォルトで値 1.0 が使用され、各 RPC アテンプトで gcsClientRpcInitialTimeoutMillis が使用されることが保証されます。

gcsClientRpcMaxTimeoutMillis

オプション

デフォルト: 30000 ミリ秒

失敗した RPC リクエストの再試行アテンプトの最大タイムアウト(ミリ秒単位)。これは、多くの場合、複数回試行すると発生するタイムアウトの指数関数的な増加を制限するために使用されます。この最大値が適用されない場合の各タイムアウトの計算方法の詳細については、上記の gcsClientRpcTimeoutMultiplier の説明を参照してください。

全体的なプロパティと GCS クライアントプロパティを使用する構成例を以下に示します。

<backup>
  <repository name="gcs_backup" class="org.apache.solr.gcs.GCSBackupRepository" default="false">
    <str name="gcsBucket">solrBackups</str>
    <str name="gcsCredentialPath">/local/path/to/credential/file</str>
    <str name="location">/default/gcs/backup/location</str>

    <int name="gcsClientMaxRetries">5</int>
    <int name="gcsClientHttpInitialRetryDelayMillis">1500</int>
    <double name="gcsClientHttpRetryDelayMultiplier">1.5</double>
    <int name="gcsClientHttpMaxRetryDelayMillis">10000</int>
  </repository>
</backup>

S3BackupRepository

Amazon S3 バケットにバックアップファイルを保存および取得します。

これは、使用前に有効にする必要がある s3-repository Solr モジュールによって提供されます。

このプラグインはデフォルトの AWS 認証情報プロバイダーチェーンを使用するため、認証情報が適切に設定されていることを確認してください(たとえば、環境変数経由、または ~/.aws/credentials など)。

S3 リポジトリで location オプションを使用するには、いくつかのニュアンスがあります。location オプションは、バックアップ情報を格納するサブディレクトリを指定します。

ロケーション形式

Backup & Restore Collections API 呼び出しを使用する場合、location オプションはさまざまな方法で表示できます。

  • dir/in/bucket

  • /dir/in/bucket

  • s3:/dir/in/bucket

  • s3://dir/in/bucket

    上記のすべてのオプションは、S3 バケット内の同じディレクトリ dir/in/bucket に解決されます。

事前作成

そのロケーションでバックアップ操作を実行する前に、ロケーションが S3 バケット内に既に存在している必要があります。

S3 で作成するディレクトリは、locations から / プレフィックスが削除されるため(Location Format に示すように)、/ で始めることはできません。

空のロケーション

バックアップを保存するバケット内のサブディレクトリを使用したくない場合は、次のいずれかのロケーションオプションを使用できます: /, s3:/, s3://。ただし、ロケーションオプションは必須であり、ロケーションなしでバックアップ操作を実行しようとするとエラーが発生します。

S3 バックアップと復元を有効にするための構成例を以下に示します。

<backup>
  <repository name="s3" class="org.apache.solr.s3.S3BackupRepository" default="false">
    <str name="s3.bucket.name">my-s3-bucket</str>
    <str name="s3.region">us-west-2</str>
  </repository>
</backup>

S3BackupRepository は、全体的な構成のために、次のオプション(solr.xml 内)を受け入れます。

s3.bucket.name

オプション

デフォルト:なし

すべてのバックアップファイルを読み書きする S3 バケット。S3_BUCKET_NAME 環境変数を設定することで上書きできます。

s3.profile

オプション

デフォルト:なし

構成ファイルから AWS 設定をロードするプロファイル。プロファイルを使用すると、複数の S3 リポジトリに対して独立した設定が可能になります。AWS_PROFILE 環境変数または -Daws.profile システムプロパティを設定することで上書きできます。プロファイルごとの構成設定の詳細については、AWS Java SDK ドキュメントを参照してください。

s3.region

オプション

デフォルト:なし

バケットがプロビジョニングされている有効な Amazon S3 リージョン文字列。このバケットに対する読み取りおよび書き込み権限が必要です。リージョンの完全なリストについては、S3 ドキュメントを参照してください。S3_REGION 環境変数を設定するか、AWS 構成ファイルでリージョンを設定することで上書きできます。

s3.endpoint

オプション

デフォルト:なし

明示的な S3 エンドポイント。AWS S3 を使用する通常の操作では必要ありません(S3 クライアントは s3.region からエンドポイントを推測できます)。このパラメータは、モック S3 フレームワークを使用し、S3Mock を使用する場合など、S3 リクエストがルーティングされる場所を明示的にオーバーライドする場合に役立ちます。S3_ENDPOINT 環境変数を設定することで上書きできます。

s3.endpoint オプションを使用して、この BackupRepository を *s3 互換*エンドポイントで使用できます。すべての *s3 互換*エンドポイントが S3BackupRepository で動作するわけではないことに注意してください。Minio は、S3BackupRepository で動作しない *s3 互換*エンドポイントの例です。S3BackupRepository は、AWS S3 および S3Mock とのみ互換性があることが保証されています。

s3.proxy.url

オプション

デフォルト:なし

必要に応じて、S3 クライアントがリクエストをルーティングするプロキシ URL。URL には <スキーム>://<ホスト名>:<ポート> を含める必要があります。ただし、ポートとスキームは、存在しない場合は*推測される可能性があります*。

使用する場合、これは設定されているシステムプロキシ設定を上書きします。s3.proxy.useSystemSettings オプションを無効にする必要はありません。プロキシの usernamepassword、または nonProxyHosts を使用する必要がある場合は、以下に示すシステムプロパティを使用してください。

s3.proxy.useSystemSettings

オプション

デフォルト: true

デフォルトでは、S3 サーバーと通信するときにシステムプロキシ設定が設定されている場合は、それを使用します。サポートされているプロキシシステムプロパティは次のとおりです。

  • http.proxyHost

  • http.proxyPort

  • http.nonProxyHosts

  • http.proxyUser

  • http.proxyPassword

s3.retries.disable

オプション

デフォルト: false

すべての S3 操作の再試行を無効にします。これは推奨されません。

S3 クライアント構成

AWS Java SDK は、S3 クライアントの構成を設定する多くの方法を提供します。Solr S3 リポジトリでは、これらの構成を次を使用して設定できます。

  • 環境変数

  • Java システムプロパティ

  • AWS 構成ファイル(プロファイルごとである可能性あり)

これらのオプションには以下が含まれます。

  • リージョン

  • アクセスキー

  • 再試行

    • RetryMode (LEGACY, STANDARD, ADAPTIVE)

    • 最大試行回数