デフォルトでは、Alibaba Cloud Elasticsearch (ES) インスタンス間のネットワークはセキュリティ上の理由から分離されています。クラスター間検索機能を使用するには、まず 2 つのインスタンス間にネットワーク接続を確立する必要があります。このトピックでは、インスタンス間のネットワーク接続を構成してクラスター間検索を有効にする方法について説明します。
適用範囲
2 つの ES クラスター間でクラスター間検索を有効にするには、まずネットワーク接続を確立する必要があります。クラスターは次の条件を満たす必要があります:
両方のクラスターが v2 基本制御アーキテクチャを使用し、同じ Virtual Private Cloud (VPC) 内に存在する必要があります。
ES クラスターは、基本制御 (v1 アーキテクチャ)、基本制御 (v2 アーキテクチャ)、およびクラウドネイティブ制御 (v3 アーキテクチャ) の 3 つの制御アーキテクチャデプロイメントモードをサポートしています。クラスターのアーキテクチャは、その 基本情報 ページで表示できます。

クラスターはバージョン 6.7.0 以降である必要があります。
OpenStore と IndexingService の両方が有効になっているクラスターと他のタイプのクラスター間では、クラスター間検索はサポートされていません。
相互接続されるクラスターの数は、次の数式に基づいて制限されます:
sum(number of roles in a cluster * number of zones for a cluster) ≤ 20。例: クラスター A は、クラスター B とクラスター C に同時に接続する必要があります。各クラスターには 3 つのロール (Master、coordinating、data) があり、3 つのゾーンにデプロイされています。
計算:
(3 ロール × 3 ゾーン) × 3 クラスター = 27。これは 20 より大きいため、上限を超えています。クラスター A は、クラスター B とクラスター C の両方に同時に接続できません。
手順
ステップ 1: インスタンス間のネットワーク接続を構成する
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[Elasticsearch クラスター] ページで、クラスターを見つけてその ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
クラスターネットワーク設定 セクションで、インスタンス相互接続 の横にある 変更 をクリックします。
設定の変更 ページで、インスタンスの追加 をクリックします。
インスタンスの追加 ダイアログボックスで、接続するリモートインスタンスを選択します。
重要Resource Access Management (RAM) ユーザーは、対応する Alibaba Cloud アカウント内のすべてのインスタンスを取得するために `ListInstance` 権限を持っている必要があります。詳細については、「Elasticsearch インスタンスに権限を付与する」をご参照ください。
インスタンス間のネットワーク接続を構成すると、現在のインスタンスはリモートインスタンスの インスタンス相互接続 ページにも表示されます。ネットワーク接続は双方向です。たとえば、インスタンス A からインスタンス B への接続を構成すると、インスタンス B からインスタンス A への接続も確立されます。
OK をクリックします。
インスタンスを追加した後、設定の編集 ページで接続されているインスタンスのリストを表示できます。
説明接続が不要になった場合は、削除 をクリックして相互接続されたインスタンスを削除できます。
ステップ 2: クラスター間検索を構成する
インスタンスのネットワーク接続を構成した後、クラスター間検索も構成する必要があります。これにより、現在のインスタンスからリモートインスタンスのデータを検索できます。
リモート Elasticsearch インスタンスでテストデータを準備します。
説明このステップは、クラスター間検索機能を確認するのに役立ちます。リモートインスタンスにテスト用のデータが既にある場合は、このステップをスキップできます。
リモート Elasticsearch インスタンスの Kibana コンソールにログインし、Kibana ホームページに移動します。
Kibana コンソールへのログイン方法の詳細については、「Kibana コンソールにログインする」をご参照ください。
説明この例では、Elasticsearch V6.7.0 クラスターを使用しています。他のバージョンのクラスターでの操作は異なる場合があります。コンソールでの実際の操作が優先されます。
左側のナビゲーションウィンドウで、[Dev Tools] をクリックします。
[コンソール] で、次のコマンドを実行してインデックスを作成し、ドキュメントをリモートインスタンスに挿入します。
次のサンプルコマンドが使用されます:
インデックスの作成
PUT /twitter { "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }ドキュメントの作成とデータの挿入
POST twitter/_doc/ { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }
現在の Elasticsearch インスタンスで、クラスター間検索を構成し、構成を確認します。
ステップ 1 で説明されているように Elasticsearch インスタンスの Kibana コンソールにログインし、次のコマンドを実行してクラスター間検索を構成します。
次の例は、Elasticsearch 6.7 の構成を示しています。他のバージョンの構成も同様です。詳細については、「Elasticsearch 7.x のクラスター間検索」、「Elasticsearch 6.3 のクラスター間検索」、および「Elasticsearch 5.5 のクラスター間検索」をご参照ください。
次の例は、ノード IP アドレスを使用してクラスター間検索を構成する方法を示しています:
PUT _cluster/settings { "persistent": { "cluster": { "remote": { "cluster_one": { "seeds": [ "10.8.xx.xx:9300", "10.8.xx.xx:9300", "10.8.xx.xx:9300" ] } } } } }ノードの IP アドレスは、インスタンスの 基本情報 ページの ノード可視化 セクションで表示できます。詳細については、「クラスターのステータスとノード情報を表示する」をご参照ください。
重要ドメイン名を使用したクラスター間検索の構成はサポートされていません。
現在の Elasticsearch インスタンスでクラスター間検索のためにリモート Elasticsearch インスタンスのノード IP アドレスを構成した場合、現在のインスタンスからのみリモートインスタンスのインデックスデータをクエリできます。逆方向のアクセスのためにリモートインスタンスで同様のコマンドを実行することはできません。逆方向のアクセスを有効にするには、リモートインスタンスで現在のインスタンスのノード IP アドレスを構成する必要があります。
次のコマンドを実行して、クラスター間検索の構成を確認します。
POST /cluster_one:twitter/_doc/_search { "query": { "match_all": {} } }検証が成功すると、次の結果が返されます。
{ "took" : 78, "timed_out" : false, "_shards" : { "total" : 3, "successful" : 3, "skipped" : 0, "failed" : 0 }, "_clusters" : { "total" : 1, "successful" : 1, "skipped" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "cluster_one:twitter", "_type" : "_doc", "_id" : "qudxxxxxxxxxx_7ie6J", "_score" : 1.0, "_source" : { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" } } ] } }