Alibaba Cloud Elasticsearch は、自動スナップショット機能を提供します。Elasticsearch クラスターでこの機能を有効にすると、システムは指定したバックアップ間隔と時刻に基づいてクラスターのスナップショットを作成します。これにより、データのセキュリティが確保されます。これらのスナップショットは自動スナップショットと呼ばれます。予期しないデータの削除やアプリケーションロジックエラーなどの問題が発生した場合、特定の時点のスナップショットからクラスターにデータを復元できます。このトピックでは、自動スナップショット機能の有効化、自動スナップショット機能の無効化、および自動スナップショットからのデータの復元の方法について説明します。
背景情報
Alibaba Cloud Elasticsearch クラスターのデータのバックアップと復元は、elasticsearch-repository-oss プラグインに依存します。このプラグインは、Alibaba Cloud Elasticsearch クラスターにデフォルトでインストールされており、削除することはできません。このプラグインの詳細については、elasticsearch-repository-oss をご参照ください。
注意事項
クラスターの最初のスナップショットは、クラスター内のデータの完全コピーです。後続のスナップショットは、増分データを同期します。そのため、最初のスナップショットの作成には、後続のスナップショットよりも多くの時間がかかります。具体的な時間はデータ量によって異なります。
スナップショットにはインデックスデータのみが保存されます。Elasticsearch クラスターの次の情報はスナップショットには保存されません。監視データ(.monitoring または .security_audit で始まる名前のインデックスなど)、メタデータ、トランザクションログ、構成、ソフトウェアパッケージ、組み込みプラグインとカスタムプラグイン、およびログ。
システムは、過去 7 日間に作成された自動スナップショットのみを保存します。スナップショットには完全なデータが保存されます。
自動スナップショットからデータを復元できるのは、スナップショットが作成された Elasticsearch クラスターのみです。元のクラスター以外のクラスターにデータを復元する方法については、手動スナップショットの作成と手動スナップショットからのデータの復元 または 共有 OSS リポジトリの構成 をご参照ください。
Elasticsearch クラスターの自動スナップショット機能を無効にすると、システムはクラスター内のデータのスナップショットを作成します。クラスター内のデータのバックアップ時間を更新しても、システムはデータのスナップショットを作成しません。
自動スナップショット機能を有効にする
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションペインで、[elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[elasticsearch クラスター] ページで、クラスターを見つけて ID をクリックします。
表示されるページの左側のナビゲーションペインで、[データバックアップ] をクリックします。
[スナップショット(無料トライアル)] セクションで、自動スナップショットをオンにします。
設定[自動スナップショット期間] パラメーターの右側にある をクリックします。
[自動スナップショット構成] パネルで、[頻度] パラメーターを構成します。
頻度パラメーターの値 | 説明 |
[30 分ごと] | システムは 30 分間隔でスナップショットを作成します。 |
[毎日] | システムは毎日スナップショットを作成します。作成時刻をカスタマイズできます。 |
[カスタム] | システムは、指定した間隔と時刻に基づいてスナップショットを作成します。 |
重要
システムは、クラスターが存在するリージョンのシステム時刻を使用してスナップショットを作成します。
[OK] をクリックします。
自動スナップショットに関する情報を表示する
自動スナップショット機能を有効にした後、クラスターの Kibana コンソールにログイン し、_snapshot API を呼び出して、クラスターの自動スナップショットに関する情報を表示できます。
次のコマンドを実行して、クラスターの自動スナップショットを格納するリポジトリをクエリします。
コマンドが正常に実行されると、次の結果が返されます。
{
"aliyun_auto_snapshot" : {
"type" : "oss",
"settings" : {
"compress" : "true",
"base_path" : "cf95b9-185320276651****/es-cn-09k2053us0003****",
"endpoint" : "http://oss-cn-hangzhou-internal.aliyuncs.com"
}
}
}
パラメーター | 説明 |
aliyun_auto_snapshot | リポジトリの名前。リポジトリは、最初のスナップショットが作成されるときに作成されます。Alibaba Cloud Elasticsearch クラスターの自動スナップショットを格納するために使用されるリポジトリの名前は、aliyun_auto_snapshot に固定されています。 説明 1 つのリポジトリに複数のスナップショットを格納できます。各スナップショットには、すべてのインデックス、一部のインデックス、または単一のインデックスのデータを含めることができます。 |
type | スナップショットのストレージ。oss という値は、スナップショットがオブジェクトストレージサービス(OSS)に格納されていることを示します。 |
compress | スナップショットのデータ圧縮機能が有効になっているかどうかを指定します。有効な値: |
base_path | OSS 内のスナップショットの場所。 |
endpoint | OSS のエンドポイント。 |
次のコマンドを実行して、aliyun_auto_snapshot リポジトリに格納されているすべてのスナップショットに関する情報をクエリします。
GET _snapshot/aliyun_auto_snapshot/_all
コマンドが正常に実行されると、次の結果が返されます。
{
"snapshots": [
{
"snapshot": "es-cn-09k2053us0003****_20210117030003",
"uuid": "vIdSCkthTeGa0nSj4D****",
"version_id": 5050399,
"version": "5.5.3",
"indices": [
".kibana"
],
"state": "SUCCESS",
"start_time": "2018-06-28T01:22:39.609Z",
"start_time_in_millis": 1530148959609,
"end_time": "2018-06-28T01:22:39.923Z",
"end_time_in_millis": 1530148959923,
"duration_in_millis": 314,
"failures": [],
"shards": {
"total": 1,
"failed": 0,
"successful": 1
}
},
{
"snapshot": "es-cn-09k2053us0003****_20210118030004",
"uuid": "XKO_Uwz_Qu6mZrU3Am****",
"version_id": 5050399,
"version": "5.5.3",
"indices": [
".kibana"
],
"state": "SUCCESS",
"start_time": "2018-06-28T01:25:00.764Z",
"start_time_in_millis": 1530149100764,
"end_time": "2018-06-28T01:25:01.482Z",
"end_time_in_millis": 1530149101482,
"duration_in_millis": 718,
"failures": [],
"shards": {
"total": 1,
"failed": 0,
"successful": 1
}
}
]
}
重要
システムは現在のリージョンのシステム時刻を使用してスナップショットを作成します。ただし、返される結果の時刻は UTC です。システム時刻と UTC の間にはタイムゾーンの差があります。返される結果の時刻は、タイムゾーンの差に基づいて変換できます。たとえば、中国(北京)リージョンのシステム時刻と UTC のタイムゾーンの差は 8 時間です。この場合、中国(北京)リージョンのシステム時刻は UTC+0800 です。
返される結果で、state パラメーターはスナップショットのステータスを示します。スナップショットは、次のいずれかの状態になります。
状態 | 説明 |
IN_PROGRESS | スナップショットが作成されています。 |
SUCCESS | スナップショットが作成され、すべてのシャードが格納されています。 |
FAILED | 一部のシャードを格納できないため、スナップショットの作成に失敗しました。 |
PARTIAL | スナップショットは作成されましたが、少なくとも 1 つのシャードの格納に失敗しました。 |
INCOMPATIBLE | スナップショットのバージョンがクラスターのバージョンと互換性がありません。 |
自動スナップショットは、表示されない次のデフォルトパラメーターもサポートしています。
パラメーター | 説明 |
max_snapshot_bytes_per_sec | 1 つのノードにつき 1 秒あたりにバックアップできる最大バイト数。デフォルト値:40mb。 |
max_restore_bytes_per_sec | 1 つのノードにつき 1 秒あたりに復元できる最大バイト数。デフォルト値:40mb。 |
chunk_size | スナップショットの作成中に、大きなインデックスは複数の部分に分割されます。このパラメーターは、各部分の最大サイズを指定します。値の例:1g、10m、5k。デフォルト値:null。この値は、各部分のサイズが制限されていないことを示します。 |
次のコマンドを実行して、aliyun_auto_snapshot リポジトリに格納されている特定の自動スナップショットに関する情報をクエリします。
GET _snapshot/aliyun_auto_snapshot/<snapshot>/_status
<snapshot> を、es-cn-09k2053us0003****_20210118030004 などの自動スナップショットの名前に置き換えます。すべてのスナップショットをクエリするために使用されるコマンドを実行することで、スナップショットの名前をクエリできます。
コマンドが正常に実行されると、次の結果が返されます。
{
"snapshots": [
{
"snapshot": "es-cn-09k2053us0003****_20210118030004",
"repository": "aliyun_auto_snapshot",
"uuid": "XKO_Uwz_Qu6mZrU3Am****",
"state": "SUCCESS",
"shards_stats": {
"initializing": 0,
"started": 0,
"finalizing": 0,
"done": 1,
"failed": 0,
"total": 1
},
"stats": {
"number_of_files": 4,
"processed_files": 4,
"total_size_in_bytes": 3296,
"processed_size_in_bytes": 3296,
"start_time_in_millis": 1530148959688,
"time_in_millis": 77
},
"indices": {
".kibana": {
"shards_stats": {
"initializing": 0,
"started": 0,
"finalizing": 0,
"done": 1,
"failed": 0,
"total": 1
},
"stats": {
"number_of_files": 4,
"processed_files": 4,
"total_size_in_bytes": 3296,
"processed_size_in_bytes": 3296,
"start_time_in_millis": 1530148959688,
"time_in_millis": 77
},
"shards": {
"0": {
"stage": "DONE",
"stats": {
"number_of_files": 4,
"processed_files": 4,
"total_size_in_bytes": 3296,
"processed_size_in_bytes": 3296,
"start_time_in_millis": 1530148959688,
"time_in_millis": 77
}
}
}
}
}
}
]
}
自動スナップショットからデータを復元する
自動スナップショットが作成された後、_restore API を呼び出して、スナップショットからスナップショットが作成されたクラスターにデータを復元できます。
重要
ピリオド(.
)で始まる名前のインデックスはシステムインデックスです。これらのインデックスは復元しないことをお勧めします。これらのインデックスを復元すると、Kibana コンソールにアクセスできなくなる可能性があります。
Kibana コンソールで、次のコマンドのいずれかを実行して、特定のスナップショットからインデックスを復元します。
aliyun_auto_snapshot リポジトリに格納されている特定のスナップショットからすべてのインデックスを復元します。復元はバックグラウンドで実行されます。
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore
<snapshot> を、es-cn-abcdefghij****_20180627091600 などの特定のスナップショットの名前に置き換えます。
aliyun_auto_snapshot リポジトリに格納されている特定のスナップショットからすべてのインデックスを復元し、復元が完了するまで待ちます。
_restore API は非同期で復元タスクを実行します。システムは、データの復元を実行できることを確認した後、すぐに応答を返し、バックグラウンドで復元を実行します。コマンドで wait_for_completion パラメーターを構成して、復元が完了した後にのみシステムが応答を返すようにすることができます。
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore?wait_for_completion=true
<snapshot> を、es-cn-abcdefghij****_20180627091600 などの特定のスナップショットの名前に置き換えます。
aliyun_auto_snapshot リポジトリに格納されている特定のスナップショットから特定のインデックスを復元し、復元されたインデックスの名前を変更します。復元はバックグラウンドで実行されます。
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
パラメーター | 説明 |
<snapshot> | es-cn-abcdefghij****_20180627091600 などの特定のスナップショットの名前に置き換えます。 |
indices | 復元するインデックスの名前。 |
rename_pattern | 復元するインデックスの名前と照合するために使用される正規表現。このパラメーターはオプションです。 |
rename_replacement | 一致したインデックスの名前を変更するために使用される正規表現。このパラメーターはオプションです。 |
自動スナップショット機能を無効にする
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションペインで、[elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[elasticsearch クラスター] ページで、クラスターを見つけて ID をクリックします。
表示されるページの左側のナビゲーションペインで、[データバックアップ] をクリックします。
[スナップショット(無料トライアル)] セクションで、[自動スナップショット] をオフにします。