Alibaba Cloud Elasticsearch (ES) インスタンスの自動バックアップ機能を有効にすると、指定されたバックアップサイクルと時間に基づいてシステムが自動的にデータをバックアップします。誤ったデータ削除やアプリケーションの論理エラーなどの問題が発生した場合、特定の時点のデータを元の ES インスタンスに復元して、データのセキュリティを確保できます。このトピックでは、自動バックアップ機能の有効化と無効化の方法、およびバックアップからデータを復元する方法について説明します。
背景情報
ES インスタンスのデータバックアップと復元は、elasticsearch-repository-oss プラグインに依存しています。このプラグインは、Alibaba Cloud ES インスタンスにデフォルトでインストールされており、アンインストールすることはできません。詳細については、「elasticsearch-repository-oss」をご参照ください。
注意事項
自動バックアップのインデックスメタデータのサイズは
100 MBを超えることはできません。この制限を超えると、自動バックアップタスクが失敗する可能性があります。この場合、手動バックアップを実行してください。クラスターの最初のスナップショットは、クラスターデータの完全なコピーです。後続のスナップショットは、前のスナップショットからの増分データのみを同期します。最初のスナップショットは通常サイズが大きく、作成に時間がかかります。同期の失敗を防ぐために、最初のスナップショットは手動バックアップを実行してください。
スナップショットはインデックスデータのみを保存します。.monitoring や .security_audit のようなプレフィックスを持つインデックスなど、ES インスタンスのモニタリングデータは保存されません。また、メタデータ、Translog、インスタンス構成、ES ソフトウェアパッケージ、組み込みおよびカスタムプラグイン、または ES ログも保存されません。
自動バックアップは、過去 7 日間のスナップショットデータのみを保持します。スナップショットには完全データが含まれています。
自動バックアップのデータは、元のクラスターにのみ復元できます。クラスター間でデータを復元するには、「手動バックアップと復元」または「クラスター間 OSS リポジトリの設定」をご参照ください。
自動バックアップを無効にすると、システムは最後のデータバックアップを 1 回実行します。自動バックアップの開始時刻を更新しても、データバックアップはトリガーされません。
OpenStore Indexing Service インスタンスの場合、基盤となるストレージサービスがクラスターデータの高可用性 (HA) を保証します。そのため、自動バックアップ機能はサポートされていません。
自動バックアップとモニタリングアラームの有効化
自動バックアップの有効化
左側のナビゲーションウィンドウで、[データバックアップ] をクリックします。
[スナップショット (無料トライアル)] セクションで、[自動スナップショット] をオンにします。
[自動バックアップ開始時刻] の右側にある [設定] をクリックします。
[自動バックアップサイクル設定] パネルで、自動バックアップのトリガー時間である [バックアップサイクル] を選択します。

バックアップサイクル
説明
30 分ごと
30 分ごとに自動バックアップが実行されます。
毎日
毎日自動バックアップが実行されます。バックアップ時間をカスタマイズできます。
カスタム
バックアップサイクルと時間をカスタマイズします。
重要バックアップ時間は、インスタンスが存在するリージョンのローカル時間です。
[OK] をクリックします。
モニタリングアラームの有効化
自動バックアップを有効にした後、ワンクリックアラートを有効にする必要もあります。これにより、スナップショットバックアップのステータスをモニターし、例外を迅速に特定して処理できます。モニタリングページで、スナップショットステータス (値) メトリックが 2 の場合、スナップショットタスクが失敗したことを示します。

最新のスナップショットのステータスの詳細を表示するには /_cat/snapshots/aliyun_auto_snapshot?format=json コマンドを実行し、関連データを手動でバックアップできます。
スナップショットのステータスには次のものがあります:
SUCCESS: すべてのシャードが正常にバックアップされました。
PARTIAL: 一部のシャードのバックアップに失敗しました。
FAILED: バックアップタスクが失敗しました。
最近のスナップショットが存在しない場合、バックアップタスクがトリガーされず、レコードが作成されなかったことを意味します。たとえば、クラスターまたはノードの例外のために、システムが自動バックアップを実行しない場合があります。
次の図は、スナップショットの詳細の例を示しています。

バックアップスナップショットの表示
自動バックアップ機能を有効にした後、Kibana コンソールにログインできます。対応する Alibaba Cloud Elasticsearch インスタンスの Kibana コンソールで、_snapshot API を使用して自動バックアップスナップショットに関する情報を表示します:
スナップショットリポジトリを表示します。
GET _snapshotリクエストが成功すると、次の例のような応答が返されます。
{ "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 に固定されています。
説明リポジトリには複数のスナップショットを保存できます。各スナップショットには、すべて、一部、または単一のインデックスのバックアップデータを含めることができます。
type
スナップショットの記憶媒体。oss は、記憶媒体が Object Storage Service (OSS) であることを示します。
compress
スナップショットファイルの圧縮を有効にするかどうかを指定します:
true: 圧縮を有効にします。これは、インデックスマッピングと設定を含むメタデータファイルにのみ適用されます。
false (デフォルト): 圧縮を無効にします。データファイルは圧縮されません。
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) です。2 つの間にはタイムゾーンの差があります。この差に基づいて時間を変換できます。たとえば、UTC+8 のタイムゾーンの差は 8 時間です。したがって、UTC+8 = UTC + 0800 です。
state パラメーターはスナップショットのステータスを示します。Alibaba Cloud Elasticsearch インスタンスのスナップショットは、次の 5 つのステータスのいずれかになります。
スナップショットのステータス
説明
IN_PROGRESS
スナップショットは進行中です。
SUCCESS
スナップショットプロセスは完了し、すべてのシャードのすべてのデータが正常に保存されました。
FAILED
スナップショットプロセスは完了しましたが、一部のインデックスのデータは正常に保存されませんでした。
PARTIAL
一部のデータは正常に保存されましたが、少なくとも 1 つのシャードのデータは保存されませんでした。
INCOMPATIBLE
スナップショットは、Alibaba Cloud Elasticsearch インスタンスのバージョンと互換性がありません。
自動バックアップスナップショットには、表示されない次のデフォルトパラメーターもあります。
パラメーター
説明
max_snapshot_bytes_per_sec
単一ノードでのデータバックアップの最大速度。デフォルト値は毎秒 40mb です。
max_restore_bytes_per_sec
単一ノードでのデータ復元の最大速度。デフォルト値は毎秒 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 を使用して元の Elasticsearch インスタンスにデータを復元できます。
ピリオド (.) で始まるシステムインデックスを復元すると、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 をクリックします。
左側のナビゲーションウィンドウで、[データバックアップ] をクリックします。
[スナップショット (無料トライアル)] セクションで、[自動スナップショット] をオフにします。