Elastic Cloud on Kubernetes から Google Cloud 上の Elastic Cloud へのデプロイと移行

Last reviewed 2021-01-15 UTC

このチュートリアルでは、さまざまな環境での Elastic Stack プラットフォームの設定方法と、Elastic Cloud on Kubernetes(ECK)から Google Cloud 上の Elastic Cloud にデータを移行する基本的な方法について説明します。

組織が Google Cloud に移行する際、移行戦略が重要になります。別のクラウド環境からの移行でもオンプレミス環境からの移行でも、中断を最小限に抑えてビジネス プロセスを継続する必要があります。分析データを処理、保存、提供するデータ プラットフォームは、多くの場合、ビジネスおよびアプリケーション インフラストラクチャの稼働状況に関する重要な分析情報を提供できます。多くの組織にとって、Elastic Stack がそのような分析情報を提供する重要なコンポーネントとなります。

このチュートリアルは、システムとアプリケーションの Google Cloud への移行に関係するデータ アーキテクト、エンタープライズ アーキテクト、システム管理者を対象としています。このチュートリアルでは、Google Cloud のさまざまな環境で Elastic Stack をインスタンス化する方法を紹介します。

このチュートリアルは、ECK バージョン 1.0.1 で開発およびテストされています。

主要コンポーネント

このチュートリアルでは、次のテクノロジーを使用します。

  • Elastic Stack。次の主要コンポーネントで構成されるプラットフォームです。
    • Elasticsearch。JSON ベースの分散型の検索および分析エンジンで、水平方向のスケーラビリティ、最大限の信頼性、シンプルな管理を目的として設計されています。
    • Kibana。データの形状を示します。Elastic Stack を全面的に構成および管理するための拡張可能なユーザー インターフェースです。
    • Beats。エッジマシンから Logstash や Elasticsearch にデータを軽量配送で送信します。
    • Logstash。拡張可能なプラグインのエコシステムと、強力な Elasticsearch との相乗効果を備えた、動的データ収集パイプラインです。
  • Elastic Cloud。Google Cloud で実行できるホストされたマネージド Elasticsearch サービスと Kibana サービスを提供します。
  • ECK。基本的な Kubernetes オーケストレーション機能を拡張することで、Kubernetes で Elasticsearch、Kibana、APM Server の設定と管理をサポートします。
  • Google Kubernetes Engine(GKE)。Google のインフラストラクチャを使用して、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを行うマネージド環境を提供します。GKE 環境は、クラスタを形成するためにグループ化された複数のマシン(Compute Engine インスタンス)で構成されています。

目標

  • GKE に ECK をデプロイする。
  • ECK クラスタにサンプルデータを読み込む。
  • Elastic Cloud をデプロイする。
  • スナップショットを作成して、データを Cloud Storage に読み込む。
  • 保存されたスナップショットを含む ECK インスタンスを復元する。

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  4. Cloud Shell で、Compute Engine API と GKE API を有効にします。

    gcloud services enable compute.googleapis.com \
        container.googleapis.com
    

    これらの API は、このチュートリアルで必須となる GKE リソースのデプロイに必要なコンピューティング リソースをプロビジョニングするために使用されます。このプロセスには数分かかる場合があります。完了したら、次の手順に進みます。

  5. データベースとコンピューティング リソースをデプロイするデフォルトのコンピューティング ゾーンを設定します。

    gcloud config set compute/zone us-central1-a
    export COMPUTE_ZONE=us-central1-a
    

    このチュートリアルでは、ゾーンに us-central1-a を使用します。任意のゾーンにデプロイすることもできます。詳細については、地域とリージョンをご覧ください。

GKE クラスタへの ECK のデプロイ

次のセクションでは、Google Cloud で Elastic Cloud を実行するために必要なインフラストラクチャとソフトウェアを設定します。

GKE クラスタを作成して管理するためのサービス アカウントをプロビジョニングする

このセクションでは、このチュートリアルの GKE クラスタの作成と管理に使用するサービス アカウントを作成します。デフォルトでは、このクラスタはデフォルトの Compute Engine サービス アカウントを継承する Compute Engine の仮想マシン(VM)インスタンスです。このサービス アカウントには、チュートリアルで必要なものより多くの権限が付与されます。ベスト プラクティスとして、サービス アカウントの作成時に最小権限の原則に従うようにします。

次の手順では、モニタリング閲覧者(roles/monitoring.viewer)、モニタリング指標の書き込み(roles/monitoring.metricWriter)、ログ書き込み(roles/logging.logWriter)の IAM ロールをサービス アカウントに付与します。また、サービス アカウントに Compute 管理者のロールroles/compute.admin)を付与します。このロールは、すべての Compute Engine リソースを完全に管理できます。このチュートリアルでは、このロールは不要です。ただし、クラスタでこのサービス アカウントを引き続き使用して、コンピューティング ノードを追加する必要がある場合は、Compute 管理者のロールにより、追加のコンピューティング リソースをプロビジョニングできます。

  1. Cloud Shell で、Google Cloud プロジェクト ID を変数として設定し、サービス アカウント名を設定します。

    export PROJECT_ID=$(gcloud config get-value project 2> /dev/null)
    export SA_ID=eck-sa
    
  2. そのサービス アカウントと、サービス アカウントのメールアドレスが指定された新しい変数を作成します。

    gcloud iam service-accounts create $SA_ID --display-name=$SA_ID
    export GKE_SA_EMAIL=$(gcloud iam service-accounts list \
        --filter=displayName:"$SA_ID" --format='value(email)')
    

    メタデータが同期されるまで少し時間がかかる場合があります。同期すると、メールアドレスが変数に表示されます。それまでは、この変数は空になります。

  3. ローカル環境変数がサービス アカウントの ID で設定されていることを確認します。

    echo $GKE_SA_EMAIL
    

    出力が空白の場合、変数が代入されるまで以前の export コマンドを再実行します。環境変数が設定されている場合、メールアドレスのようなサービス アカウント ID が表示されます。

  4. メタデータが同期されたら、ポリシー バインディングをサービス アカウントに接続します。

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/logging.logWriter
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/monitoring.metricWriter
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/monitoring.viewer
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/storage.admin
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/compute.admin
    

GKE クラスタを作成する

次の手順では、クラスタをデプロイします。次のコマンドにより、256 GB の永続ディスク(SSD)を持つ n1-standard-4 マシンタイプを使用した 3 ノードクラスタが作成されます。これらのリソースは変更できます。

  1. Cloud Shell でクラスタをデプロイします。

    gcloud container clusters create "eck-tutorial" \
        --project $PROJECT_ID --zone $COMPUTE_ZONE \
        --service-account $GKE_SA_EMAIL \
        --no-enable-basic-auth --machine-type "n1-standard-4" \
        --image-type "COS" --disk-type "pd-standard" \
        --disk-size "256" --metadata disable-legacy-endpoints=true \
        --num-nodes "3" \
        --enable-ip-alias --no-issue-client-certificate
    
  2. kubectl が新しいクラスタとやり取りできるように認証情報を取得します。

    gcloud container clusters get-credentials eck-tutorial
    

ECK を使ってみる

次の手順では、プロビジョニングされたインフラストラクチャで実行するように ECK を設定します。

Elasticsearch Operator をデプロイする

Kubernetes Operator パターンにより、Kubernetes でカスタム リソースを使用できます。Elasticsearch Operator は、このパターンを使用して、Kubernetes に Elastic Stack のコンポーネントをデプロイします。

  1. Cloud Shell でカスタム リソース定義(CRD)をインストールします。

    kubectl apply -f https://download.elastic.co/downloads/eck/1.0.1/all-in-one.yaml
    
  2. (省略可)オペレータログをモニタリングします。

    watch kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
    

    通常、ECK は CRD をインストールしてから 1 分未満で準備が完了します。

Cloud Storage にアクセスするための Secret を生成する

次の手順では、新しい Elasticsearch クラスタで Cloud Storage バケットに対するスナップショットの読み取りと書き込みを行えるようにします。

  1. Cloud Shell で、サービス アカウント キーと Kubernetes Secret を生成します。

    gcloud iam service-accounts keys create ~/gcs.client.default.credentials_file \
        --iam-account=$GKE_SA_EMAIL
    
    kubectl create secret generic gcs-credentials \
        --from-file=gcs.client.default.credentials_file
    
  2. スナップショット用の Cloud Storage バケットを作成し、バケット名を表示します。

    export GCSBUCKET=$RANDOM-eck-gcs-snapshot && gsutil mb gs://$GCSBUCKET
    

    バケット名は、後の手順で必要になるのでコピーします。

Elastic Stack をデプロイする

  1. Cloud Shell で、サンプル クラスタの仕様を適用します。これにより、Elasticsearch、Kibana、APM Server のサーバーがクラスタにデプロイされます。

    cat << 'EOF' > ~/eck.yaml
    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: quickstart
    spec:
      version: 7.6.1
      secureSettings:
      - secretName: gcs-credentials
      nodeSets:
      - name: default
        count: 3
        config:
          node.master: true
          node.data: true
          node.ingest: true
          node.store.allow_mmap: false
        podTemplate:
          spec:
            initContainers:
            - name: install-plugins
              command:
              - sh
              - -c
              - |
                bin/elasticsearch-plugin install --batch repository-gcs
    ---
    apiVersion: kibana.k8s.elastic.co/v1
    kind: Kibana
    metadata:
      name: kibana-sample
    spec:
      version: 7.6.1
      count: 1
      elasticsearchRef:
        name: quickstart
    ---
    apiVersion: apm.k8s.elastic.co/v1
    kind: ApmServer
    metadata:
      name: apm-server-sample
    spec:
      version: 7.6.1
      count: 1
      elasticsearchRef:
        name: quickstart
    EOF
    
    kubectl apply -f eck.yaml
    
  2. (省略可)デプロイのステータスを確認します。

    watch kubectl get elasticsearch,kibana,apmserver
    

    3 つのサービスの状態インジケーターが緑色の場合、クラスタは稼働しています。

ロードバランサを作成し、Kibana にログインする

デフォルトでは、クラスタ内のサービスは内部 IP アドレスのみを持ち、公共のインターネット経由でのアクセスはできません。kubectl get services コマンドを実行すると、すべてのサービスが内部 IP アドレスを持ち、外部 IP アドレスを持っていないことがわかります。ウェブブラウザを通じて Kibana に接続するには、アプリケーションを公開する必要があります。これはさまざまな方法で可能ですが、それぞれに独自の長所と短所があります。このチュートリアルでは、ロードバランサを作成します。

  1. Cloud Shell でロードバランサを作成します。

    kubectl expose deployment kibana-sample-kb \
        --type=LoadBalancer \
        --port 5601 \
        --target-port 5601
    

    このロードバランサは、Kibana サービスのデフォルト ポートであるポート 5601 でリクエストを受け取ります。

  2. kibana-sample-kb という新しいロードバランサ サービスを確認します。

    watch kubectl get services
    

    外部 IP アドレスがプロビジョニングされるまで待ちます。

  3. アドレスが表示されたら、URL を EXTERNAL_IP 変数にコピーし、URL 全体をブラウザに貼り付けて Kibana ポータルを読み込みます。

    https://EXTERNAL_IP:5601

    Google Chrome を使用している場合は、[詳細設定] をクリックしてから、[このまま続行] をクリックします。

  4. elastic ユーザー名を使用してポータルにログインします。パスワードを調べて変数に設定するには、Cloud Shell で次のコマンドを実行します。

    PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode) && echo $PASSWORD
    

    このパスワードを後で変更する場合は、安全な場所に保管しておくことをおすすめします。

サンプルデータの読み込みと準備

Kibana に初めてログインすると、サンプルデータの使用を開始するように求めるメッセージが表示されます。

  1. Kibana ポータルで、[Try our sample data] をクリックします。

    Kibana のログイン ウィンドウに表示される、サンプルデータを試用するためのメッセージとボタン。

  2. [Sample Flight Data] カードで、[Add data] をクリックしてサンプル フライトデータを追加します。

    サンプルの理解を深めるには、ダッシュボードとマップを探求します。

Elasticsearch データのクエリ

次の手順では、Elasticsearch データをクエリできることを確認します。まず、ポート 9200(Elasticsearch サービスがリッスンするポート)を ECK クラスタからローカルマシンに転送します。次に、データに対してテストクエリを実行します。

  1. Cloud Shell でポート転送を有効にします。

    kubectl port-forward service/quickstart-es-http 9200
    
  2. Cloud Shell のメニューバーで、「 新しいタブを開く」をクリックします。2 つ目の Cloud Shell セッションが開始されます。

  3. Elastic ユーザーのパスワードをローカル変数として保存します。

    PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode)
    
  4. 接続をテストします。

    curl -u "elastic:$PASSWORD" -k "https://localhost:9200"
    

    出力は次のようになります。

    {
      "name" : "quickstart-es-default-0",
      "cluster_name" : "quickstart",
      "cluster_uuid" : "ifdFjTixQ9q7sVc7uUpSnA",
      "version" : {
        "number" : "7.6.1",
        "build_flavor" : "default",
        "build_type" : "docker",
        "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
        "build_date" : "2020-02-29T00:15:25.529771Z",
        "build_snapshot" : false,
        "lucene_version" : "8.4.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
  5. サンプル データセット内のドキュメント数をカウントします。

    curl -u "elastic:$PASSWORD" -k
    "https://localhost:9200/kibana_sample_data_flights/_count"
    

    出力は次のようになります。

    {"count":13059,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}
    

    この出力では、インデックスに 13,059 個のドキュメントが含まれていることを示します。

  6. 2 つ目の Cloud Shell ターミナル セッションを閉じますが、元のセッションは開いたままにしてください。

  7. 元の Cloud Shell セッションで、Control+C キーを押して、不要になったポート転送を停止します。

スナップショット レジストリを登録する

スナップショットを作成して復元するには、スナップショット リポジトリを登録する必要があります。

  1. Kibana ポータルで、[Elasticsearch] メニューの [Snapshot and Restore]、[Register a repository] の順にクリックします。

    [Snapshot and Restore] をクリックすると開くリポジトリ登録のページ。

  2. [Register repository] ページで、[Name] フィールドに「examplerepo」と入力し、リポジトリの種類として [Google Cloud Storage] を選択してから、[Next] をクリックします。

    [Register repository] ページに表示されるリポジトリの種類のオプション。

  3. 次の構成の詳細を入力します。

    • [Client] に「default」と入力します。
    • [Bucket] に、以前 Cloud Storage へのアクセス用 Secret の生成で作成したバケット名を入力します。

      バケット名を忘れた場合は、次の操作を行います。

      1. Cloud Shell で、すべてのバケットを一覧表示します。

        gsutil ls
        

        対象のバケットを見つけるには、リストを確認します。

      2. ポータルでは、前の手順で使用した gs:// 命名規則のないバケット名を入力します。たとえば、バケットの URI が gs://1234-eck-gcs-snapshot の場合、「1234-eck-gcs-snapshot」を入力します。

    • 残りのフィールドは空白のままにします。

  4. [Register] をクリックします。

  5. リポジトリの詳細ペインで、[Verify Repository] をクリックして接続していることを確認します。次の図は、正常な接続を示しています。

    登録されたリポジトリの詳細ペインに含まれる、リポジトリ名、スナップショット数、設定(バケット名やクライアント名など)。

Elastic Cloud を使ってみる

この時点で、Elastic Cloud でホストされているクラスタを設定し、この新しいクラスタにデータを移行する準備ができました。

クラスタを起動する

  1. Cloud Marketplace の [Elastic Cloud] ページに移動します。

    [Elastic Cloud] に移動

  2. ページに表示された料金を了承する場合は、[Purchase] をクリックしてから、[Subscribe] をクリックします。

  3. [Enable] をクリックして API を有効にします。Elastic Cloud サービスの [API & Services] ページにリダイレクトされます。

  4. [Manage via Elastic] をクリックします。

    Elastic Cloud の [Overview] ページに表示される、サービスの詳細と管理オプション。

  5. Elastic Cloud のウェブサイトにリダイレクトされることを確定するには [Confirm] をクリックします。

  6. Elastic Cloud アカウントを登録するには、フォームに記入します。メール アカウントが検証されます。

  7. プロンプトが表示されたら、パスワードを作成してログインします。

  8. Elastic Cloud のメインポータルで、[Create deployment] をクリックします。

  9. 次の手順で進めます。

    • クラスタに example-ec という名前を付けます。
    • クラウドのプラットフォームとして [Google Cloud] を選択します。
    • リージョンとして [us-central1] を選択します。
    • 他のオプションはすべてデフォルト値のままにします。
  10. [Create deployment] をクリックします。

数分後、Elastic Cloud で稼働するクラスタがプロビジョニングされ、インスタンスのデプロイ ダッシュボードに自動的に移動します。

ECK からスナップショットを準備する

次の手順では、ECK インスタンスのスナップショットを作成し、それを Elastic Cloud インスタンスに移行します。

ECK スナップショットの作成

スナップショットを作成するには、ECK クラスタにスナップショット ポリシーを設定する必要があります。ポリシーが必要になるのは、この 1 回限りの移行時だけなので、スナップショットを 1 つ作成するとこのポリシーは削除されます。

  1. ECK クラスタのウェブブラウザで、GKE クラスタで以前に作成したロードバランサの外部 IP アドレスをコピーして、Kibana にログインします。

  2. [Elasticsearch] メニューで [Snapshot and Restore] をクリックします。

    [Snapshot and Restore] ページに表示される、スナップショットが設定されていないことを示すメッセージ。

  3. [Create a policy] をクリックします。

  4. [Policy name] フィールドに「onetime-migration」と入力します。

  5. [Snapshot name] フィールドに「<onetime-migration-{now/d}>」と入力します。

  6. その他の設定はデフォルト値のままにして、[Next] をクリックします。

    [Create policy] ページに表示される、ロジスティクス、設定、保持、レビューの 4 つの手順。

  7. [Snapshot settings] ページで、設定をデフォルト値のままにして、[Next] をクリックします。

  8. スナップショット保持ポリシーの入力を求められたら、すべてのフィールドを空白のままにして [Next] をクリックします。1 回限りのスナップショットを作成しているため、保持ポリシーは不要です。

  9. [Review policy] ページで、[Create Policy] をクリックします。

  10. ポリシーの概要ペインで、[Close] をクリックします。

  11. [Snapshot and Restore] の概要ページの [Actions] セクションで、 今すぐ実行をクリックしてから、新しいウィンドウで [Run policy] をクリックします。

    [Policies] タブに含まれる、ポリシーを実行するための再生ボタン。

    新しいスナップショットを確認するには、[Snapshots] タブで、onetime-migration で始まるタイムスタンプ付きのスナップショットをクリックします。スナップショットの詳細が表示されます。

    [Snapshot] タブに一覧表示される、詳細(スナップショットの状態やインデックスなど)を確認するためにクリック可能なスナップショット。

スナップショット ポリシーの削除

ECK インスタンスのスナップショットが Cloud Storage に格納されたので、スナップショット ポリシーを削除できます。

  1. Kibana ポータルで、[Management]、[Snapshot and Restore]、[Policies] タブの順にクリックします。
  2. 1 回限りの移行ポリシーの [Actions] セクションで、 削除をクリックします。
  3. ポリシーの削除を確定するには、[Delete policy] をクリックします。

ポリシーを削除しても、ポリシーを使用して作成したスナップショットには影響しませんが、削除するとそのポリシーに基づいたスナップショットを追加できなくなります。

スナップショットを Elastic Cloud に移動する

次の手順では、新しく作成したデータ スナップショットを取得して、Elastic Cloud 上のインスタンスに復元します。

新しいサービス アカウントを作成して構成する

最初の手順では、Elastic Cloud が Cloud Storage へのアクセスに使用するサービス アカウントを作成します。次にアクセスを有効にします。

  1. Cloud Shell でサービス アカウントを作成します。

    gcloud iam service-accounts create ecloud-sa \
        --display-name "Elasticcloud Service Account"
    
    export ec_sa=$(gcloud iam service-accounts list \
        --filter=displayName:"Elasticcloud Service Account" \
        --format='value(email)')
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member serviceAccount:$ec_sa --role roles/storage.admin
    
    gsutil iam ch serviceAccount:$ec_sa:roles/storage.admin gs://$GCSBUCKET
    
  2. このサービス アカウント用のキーを作成し、ローカル クライアント マシンにダウンロードします。

    gcloud iam service-accounts keys create ~/ec-sa.json --iam-account $ec_sa
    

    出力は次のようになります。

    created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as
    [/usr/home/username/ec-sa.json] for
    [ecloud-sa@project-id.iam.gserviceaccount.com]
    

    出力から絶対パスとファイル名をコピーします。これらはファイルのダウンロードに必要です。

  3. その他をクリックしてから、[Download File] をクリックします。

    その他ボタンをクリックして表示される、[Upload File] や [Download File] などの複数のオプション。

  4. 前の手順でコピーしたキーの絶対パスとファイル名を入力し、[Download] をクリックします。JSON キーがローカルマシンにダウンロードされます。

  5. Elastic Cloud のデプロイの [Elasticsearch Service] ページで、[Security] をクリックしてから、[Add settings] をクリックします。

    機密データ設定を構成するときに、Secret の代わりにキーの使用が可能であることを示すキーストア メッセージ。

  6. [Setting name] に「gcs.client.default.credentials_file」と入力し、[JSON block / file] を選択します。

  7. ローカルマシンのテキスト エディタを使用して、ダウンロードした JSON キーを開き、[Secret] フィールドにテキストをコピーして、[Save] をクリックします。キーストアに新しいエントリが表示されます。

  8. [Reset password] をクリックして、elastic ユーザーの新しいパスワードを取得し、メモします。

  9. [Make security changes in Kibana] の手順で、[Kibana] をクリックします。

  10. これらの認証情報を使用して、Kibana にログインします。

  11. プロンプトが表示されたら、[Explore on my own] をクリックして、サンプルデータを読み込まないようにします。

リポジトリを作成する

  1. Kibana ポータルで、メニュー アイコン()をクリックしてから、[Stack Management] をクリックします。

    [Management] の下に表示される [Stack Management]。

  2. Elasticsearch で [Snapshot and Restore] をクリックします。

  3. [Repositories] タブをクリックしてから、[Register a repository] をクリックします。

    [Repositories] タブに含まれる、リポジトリを登録するためのボタン。

  4. リポジトリ名として「examplerepo」と入力します。

  5. [Google Cloud Storage] を選択します。

  6. [次へ] をクリックします。

  7. [Bucket] フィールドに、以前 Cloud Storage へのアクセス用 Secret の生成で作成したバケット名を入力します。

    gs:// 命名規則のないバケット名を入力します。たとえば、バケットの URI が gs://1234-eck-gcs-snapshot の場合、「1234-eck-gcs-snapshot」を入力します。

  8. その他のフィールドは空白のままにして、[Register] をクリックします。

    接続を確認するには、[Verify repository] をクリックします。

  9. [閉じる] をクリックします。

スナップショットを復元する

  1. Kibana ポータルで、[Snapshots] タブをクリックし、[Repository] プルダウン メニューから [examplerepo] を選択します。

    リポジトリのプルダウン メニュー。

    以前 ECK で作成したスナップショットが表示されます。

  2. [Actions] で、 復元をクリックします。

  3. [All indices, including system indices] の切り替えをオフにします。

    切り替えがオフの位置(x)であることを示す [Restore details] ページ。

  4. [Deselect all] をクリックして、[kibana_sample_data_flights]、[ilm-history-1-000001] と、接頭辞 apm- の付くすべてのインデックスを再選択します。インデックス名の前にピリオドが付くものはシステム インデックスであるため、選択しないでください。

    デフォルトの設定を使用して復元しようとすると、次のようなエラー メッセージが表示されます。

    [snapshot_restore_exception] [examplerepo:onetime-migration2020.07.07-mt2pg1p7sb2sci9fs-yxlw/7OdEOWYVRQyIh9S2NaPypQ] cannot restore index [.security-7] because an open index with same name already exists in the cluster. Either close or delete the existing index or restore the index under a different name by providing a rename pattern and replacement name
    

    このエラーは、システム インデックスを復元できないか復元すべきでないため、発生します。メッセージの手順に沿って操作を行うと、Kibana が正常に動作しなくなる可能性があります。既存の開いたインデックスを閉じる、または削除するこの手順は、システム以外のインデックスのみに適用されます。

  5. その他の設定はデフォルト値のままにして、[Next] をクリックします。

  6. [Index settings] メニューで、すべての設定をデフォルトのままにして、[Next] をクリックします。

  7. [Restore details] ページで、[Restore snapshot] をクリックします。

    復元プロセスが完了すると、[Restore Status] ダッシュボードが表示され、データが復元されたことがわかります。

  8. [Kibana] で、[Index Patterns] をクリックしてインデックスを復元します。

  9. [Create index pattern] をクリックします。

    利用可能なインデックスがいくつか表示されます。ECK によって自動的に作成された [kibana_sample_data_flights] インデックスを探します。

  10. [Index pattern] フィールドに「kib」と入力します。kibana_sample_data_flights がパターンと一致することに注目します。

  11. [次のステップ] をクリックします。

  12. [Time Filter field name] プルダウン メニューで [timestamp] を選択します。

  13. [Create index pattern] をクリックします。

  14. (省略可)[Discover] をクリックすると、以前 ECK 環境で表示されていた元データを表示します。

  15. メインメニューで、メニューの末尾までスクロールし、[Management] セクションで [Dev Tools] をクリックします。

  16. 左側で「GET /kibana_sample_data_flights/_count」と入力し、リクエストの送信ボタンをクリックします。出力は、13,059 個のドキュメントがカウントされたことを示しています。これは、ECK のインデックスで見つかったドキュメントの数と一致します。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、このチュートリアルで作成した Google Cloud プロジェクトを削除します。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

次のステップ