データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

ElasticsearchのスナップショットをS3に保存する方法|リポジトリ設定と復元手順を解説

2017年3月2日に ObjectRocket.com/blog で公開された記事の翻訳です。

はじめに

データプラットフォームは拡大と変化を続けていますが、変わらないものがひとつあります。それは、誰もがデータのバックアップコピーを必要としているという点です。ローカルの開発環境への復元、保管やコンプライアンス対応のためのコピーなど、テクノロジーが進化してもバックアップへのアクセスは不可欠です。この記事では、Rackspace® ObjectRocket® for Elasticsearch インスタンスでS3リポジトリプラグインを活用し、バックアップをAWS S3へ保存する方法を詳しく解説します。

スナップショットの構成要素

Elasticsearch のスナップショットは、主に次の3つの要素で構成されます。

  • リポジトリ: スナップショットをどこに・どのように保存するかの詳細情報
  • スナップショット本体
  • 一意なスナップショット名

ObjectRocket のデフォルトの夜間バックアップはタイプ fs、S3バックアップはタイプ s3 となり、それぞれ設定構造が少し異なります。以下はリポジトリの例です。

GET /_snapshot?pretty
...
{
  "s3_repository" : {
    "type" : "s3",
    "settings" : {
      "bucket" : "MYBUCKETNAME",
      "server_side_encryption" : "false",
      "region" : "us-east-1",
      "compress" : "false"
    }
  }
}
...

表示される各リポジトリには、配列形式で1つ以上のスナップショットが含まれます。

GET /_snapshot/s3_repository/_all?pretty
[... 
  {
    "snapshot" : "20170208225601",
    "uuid" : "t6R6jxLJTIueQizv9clJYg",
    "version_id" : 5010499,
    "version" : "5.1.1",
    "indices" : [ ".triggered_watches", ".watch_history-2016.10.26", "elastalert_status", "coffee-2016.10.301", ".kibana", "coffee-2016.10.305", "coffee-2016.10.304", "coffee-2016.10.303", "coffee-2016.10.302", ".watches" 
    ],
    "state" : "SUCCESS",
    "start_time" : "2017-02-09T06:56:01.191Z",
    "start_time_in_millis" : 1486623361191,
    "end_time" : "2017-02-09T06:56:12.179Z",
    "end_time_in_millis" : 1486623372179,
    "duration_in_millis" : 10988,
    "failures" : [ ],
    "shards" : {
      "total" : 57,
      "failed" : 0,
      "successful" : 57
    }
  }]

_snapshot 関連のすべての操作では、正しいリポジトリ名、スナップショット名、およびスナップショット識別子を指定する必要があります。上記の例では snapshot : 20170208225601 が一意の識別子として使用できます。

S3へのバックアップ送信

Elasticsearch でS3リポジトリをセットアップするのは比較的簡単な作業です。バックアップをS3バケットへ送信するための前提条件は以下の3つだけです。

  1. repository-s3 プラグインをインストールする
  2. クラスタから外部のS3に到達できることを確認する
  3. S3用の適切な認証情報(バケット名、シークレットキー、アクセスキー)を用意する

ObjectRocket の Elasticsearch インスタンスをご利用の場合、最初の2つのステップはデフォルトで対応済みのため、3つ目の認証情報だけご準備ください。

IAMカスタムポリシーによる権限制限

Elasticsearch のスナップショット処理の権限を制限したい場合は、AWS® IAMコンソールでカスタムポリシーを作成します。ポリシードキュメントは以下の例(MYBUCKETNAME を実際のバケット名に置き換えてください)のような形式になります。

{
  "Statement": [
    {
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::MYBUCKETNAME"
      ]
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::MYBUCKETNAME/*"
      ]
    }
  ],
  "Version": "2012-10-17"
}

S3リポジトリの作成とスナップショットの取得

前提条件が整ったら、まず最初にS3リポジトリを作成します。

PUT /_snapshot/s3_repository
{
  "type": "s3",
  "settings": {
    "bucket": "MYBUCKETNAME",
    "region": "us-east-1",
    "access_key": "KEY",
    "secret_key": "SECRET"
  }
}

リポジトリを作成すると、標準の _snapshot 操作をすべて実行できるようになります。新しいスナップショットを取得するには、以下のエンドポイントにアクセスして SNAPSHOT_NAME を定義します。

PUT /_snapshot/s3_repository/SNAPSHOT_NAME?wait_for_completion=false

スナップショットの処理には時間がかかることがあるため、実行中(in-flight)のスナップショットの状態を確認したくなるでしょう。以下のエンドポイントを使用すると、現在実行中のスナップショットやリストア操作の詳細を確認できます。

GET /_snapshot/_status

S3スナップショットからのインデックス復元

たとえば、最後のスナップショット完了直後にすべてのインデックスを削除してしまい、すぐに後悔したとしましょう。S3のスナップショットからすべてのインデックスを復元するには、次のコマンドを実行します。

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore

特定のインデックスだけを選択的に復元したい場合は、リクエスト形式を少し変更します。

POST /_snapshot/s3_repository/SNAPSHOT_NAME/_restore
{
  "indices": "myindex_1,myindex_2",
  "ignore_unavailable": true
}

注意点

ここで重要なポイントを2つ挙げます。

  • クラスタ上で同時に実行できるスナップショットまたはリストア操作は1つだけです。
  • スナップショットはクラスタのパフォーマンスに多少の影響を与えるため、バックアップポリシーが過度に積極的にならないよう注意してください。

これらの手順でお困りの際は、いつでも support@objectrocket.com までお気軽にお問い合わせください。

フィードバックタブからコメントや質問をお寄せいただくことも可能です。また、Sales Chat をクリックして今すぐチャットで会話を始めることもできます。

  1. テレビをWindows 11 PCのモニターとして使う方法【HDMI接続・ワイヤレスキャスト完全解説】

    Netflixで映画を見ているときや、友人とゲームをしているとき、「パソコンの画面がちょっと小さいな」と感じたことはありませんか?実は、その悩みを解決してくれる答えはリビングルームにあります。テレビはパソコンのディスプレイとして活用でき、最近ではスマートTVを使う人が非常に多いため、接続も簡単になっています。この記事を最後まで読めば、Windows 11 PCでテレビをモニターとして使う方法と、Windows 11をテレビに接続する手順をマスターできます。 Windows 11 PCでテレビをモニターとして使う方法 Windows 11 PCの画面をテレビに表示する方法は主に2つあります。ひ

  2. 建築家必見!Windowsで使える人気設計ソフトウェアおすすめ10選

    建築家とは?夢を形にするクリエイター 「建築家」と聞くと、建物やインフラの計画・施工監理を行う専門職を思い浮かべる方が多いでしょう。しかし私たちは、建築家を「夢の創造者」と捉えています。予算の都合で1LDKのマンションを選ぶ方も、人生の成功を機に10部屋の豪華な別荘へ住み替える方も、住まいへの夢を現実の「我が家」へと変えてくれるのが建築家です。彼らは数え切れないほどの都市条例や工学上の制約、そしてクライアントの予算を考慮しながら、夢の実現を支えています。 あらゆる職業には、仕事を効率化するための専用ツールがあります。建築家もまた、Windows向けの人気ソフトウェアを活用することで、限られた時