Elasticsearchのスナップショット復元手順:データの命を守るバックアップ戦略
今回は、Elastic CloudにおけるElasticsearchのスナップショット機能をご紹介します。
こんにちは。エンジニアの土屋です。
運用環境において「データのバックアップ」は生命線です。オンプレミスやSelf-managedな環境でElasticsearchを運用する場合、スナップショットリポジトリ(S3やGCSなど)の設計や設定、定期実行のスケジューリングを自分たちで行う必要がありますが、マネージドサービスであるElastic Cloudでは、これらが驚くほど簡単に管理されています。
今回は、Elastic Cloudが提供するElasticsearchのスナップショットおよび実際の復元手順について解説します。
スナップショットとは?
Elasticsearchにおけるスナップショットとは、インデックスやクラスターの状態を保存したバックアップのことです。
Elastic Cloudでは、デプロイメントを作成した時点で、自動的にスナップショット機能が有効になっています。バックエンドでは、クラウドプロバイダーのオブジェクトストレージ(AWS S3、 Google Cloud Storage、 Azure Blob Storage)がリポジトリとして自動構成されており、ストレージの準備をする必要はありません。デフォルトでは30分ごとに全インデックスのスナップショットが取得されます。
スナップショットの確認と復元方法
万が一データが破損したり、誤ってインデックスを削除してしまった場合、Elastic Cloudのコンソールから簡単に復旧が可能です。
スナップショットの確認
KibanaのStack Managementから、[Snapshot and Restore]を選択すると、過去取得されたスナップショットの一覧が表示されます。スナップショットはインデックスのプライマリシャードのみ対象のため、レプリカシャードを除いたシャード数が表示されています。
復元の実行(Restore)
復元したいスナップショットのActions列のRestoreを選択します。Restoreするインデックスを指定したり、復元の際にインデックス名や設定を変更することもできます。(既存の設定をそのまま引き継ぐことも可能です。)
設定を確認して[Restore]を選択すると復元が始まります。Restoreの進捗はRestore Statusのタブから確認できます。StatusがCompleteになったら復元完了です。
スナップショットはプライマリシャードのみが対象のためCompleteになった後、レプリカシャードが作成されます。各インデックスのレプリカシャードまで作成されたことを確認するには[Index Management]からインデックスのHealthがgreenになっているかを確認しましょう。
別のデプロイメントのスナップショットを復元する場合
ここまで紹介した手順では同一デプロイメント内でのスナップショットを復元する方法でしたが、デプロイメントを跨いだスナップショットの復元も可能です。その場合は、Elastic Cloudの管理画面から復元(Restore)を実行したいデプロイメントを選択して[Snapshot]の画面で[Restore from another deployment]を選択することで別のデプロイメントのスナップショットリポジトリを登録できます。その後はKibanaのStack Managementから同様の手順で復元可能です。
まとめ
今回はElastic CloudのElasticsearchにおけるスナップショット機能と、復元手順をご紹介しました。複雑なバックアップ設計をすることなく復元操作もGUI(Kibana)で完結するため、運用負荷の低減が期待できます。
Gluegent製品におけるデータ保護への取り組み
今回はElastic Cloudの便利なバックアップ機能をご紹介しましたが、私たちGluegent製品の開発・運用においても「お客様のデータを守ること」は最も優先度の高いミッションの一つです。
既に私たちは、万が一のデータ破損や消失が起きないよう細心の注意を払い、バックアップ体制を構築して運用しています。お客様の大切な資産であるデータを守るため、今後もこうした堅牢な仕組みを積極的に活用し、安心してご利用いただける製品開発に尽力していきます。
最後までお読みいただきありがとうございました。
