新しいネットワークアーキテクチャの制限により、Alibaba Cloud Elasticsearch (ES) インスタンスの一部の機能は利用できません。PrivateLink と Server Load Balancer (SLB) を使用して、Alibaba Cloud ES インスタンスと他のクラウドリソースとの間にプライベート接続を確立できます。これらのリソースには、Elastic Compute Service (ECS) インスタンス、Elastic Network Interface (ENI)、Elastic Container Instance (ECI)、または特定の IP アドレスのネットワークリソースが含まれます。このトピックでは、Classic Load Balancer (CLB) と PrivateLink を使用して、Alibaba Cloud ES インスタンスと他の Alibaba Cloud サーバーリソースとの間にプライベート接続を確立する方法について説明します。このトピックでは、Network Load Balancer (NLB) と PrivateLink を使用して Alibaba Cloud ES クラスター間にプライベート接続を確立する方法についても説明します。これらのソリューションは、PrivateLink と SLB でサポートされている他のシナリオにも適用できます。
プライベート接続の設定は、X-Pack Watcher、reindex、Lightweight Directory Access Protocol (LDAP) 認証、Active Directory (AD) ユーザー認証などの機能に新しいネットワークアーキテクチャが課す制限を克服する唯一の方法です。
2020 年 10 月以降に作成されたインスタンスは、新しいネットワークアーキテクチャにデプロイされ、プライベート接続をサポートします。2020 年 10 月より前に作成されたインスタンスは、元のネットワークアーキテクチャを使用し、プライベート接続をサポートしません。これには、Alibaba Finance Cloud および Alibaba Gov Cloud のインスタンスが含まれます。
Alibaba Cloud ES PrivateLink のアプリケーションシナリオ
ES インスタンスは、Watcher アラート、LDAP、Active Directory などの機能のために、外部ネットワークのサービスリソースにアクセスする必要があります。
Alibaba Cloud ES インスタンスと Alibaba Cloud ECS インスタンスの間にプライベート接続を設定できます。ECS インスタンスは、ネットワークトラフィックを転送するためのビジネスサーバーまたはプロキシサーバーとして機能します。次の図にその仕組みを示します。
次の表に、シナリオと機能を示します。
機能
シナリオの説明
リファレンス
Watcher
Alibaba Cloud ES の X-Pack 機能は、クエリ条件に基づいてシステム情報をモニターし、外部アラートサービスを提供します。
Alibaba Cloud ES セキュリティ機能
Alibaba Cloud ES の X-Pack 機能は、LDAP や AD ユーザー認証など、さまざまなクラスターレベルのセキュリティ設定をサポートしています。
外部辞書にアクセスするカスタムプラグイン
カスタムプラグインは、外部ネットワーク上の辞書に動的にアクセスします。
クラスター間のインデックス再作成
クラスター間のインデックス再作成を使用して、セルフマネージド ES クラスターから Alibaba Cloud ES クラスターにデータを書き込むことができます。
プライベート接続を使用してセルフマネージド Elasticsearch クラスターから Alibaba Cloud にデータを移行する
クラスター間のインデックス再作成を使用して、2 つの Alibaba Cloud ES クラスター間でデータを移行できます。このシナリオでは、2 つの ES インスタンスが VPC_1 と VPC_2 にデプロイされます。VPC_1 の ES_1 インスタンスにプライベート接続を設定できます。これにより、VPC_1 のエンドポイントが VPC_2 のエンドポイントサービスに接続され、2 つの ES インスタンス間にプライベート接続が確立されます。次の図にその仕組みを示します。
次の表に、シナリオと機能を示します。
機能
シナリオの説明
リファレンス
reindex
クラスター間のインデックス再作成を使用して、ある Alibaba Cloud ES クラスターから別のクラスターにデータを書き込みます。
NLB と PrivateLink を使用して Alibaba Cloud ES インスタンス間にプライベート接続を確立する
用語
PrivateLink をプライベートアクセスに使用するには、エンドポイントとエンドポイントサービスを作成する必要があります。
用語 | 説明 |
エンドポイントサービス | エンドポイントサービスは、エンドポイントを作成することで他の VPC から接続できるサービスです。関連するサービスリソースは手動で作成する必要があります。 |
エンドポイント | エンドポイントはエンドポイントサービスに関連付けられており、VPC プライベートネットワークを介して外部サービスにアクセスするためのネットワーク接続を確立できます。Alibaba Cloud ES インスタンスのプライベート接続を設定すると、ES インスタンスのネットワーク環境にエンドポイントが自動的に作成されます。 |
CLB と PrivateLink を使用して Alibaba Cloud ES クラスターと ECS インスタンスの間にプライベート接続を確立する
前提条件
2020 年 10 月以降に VPC_1 に Alibaba Cloud ES インスタンスが作成されていること。詳細については、「Alibaba Cloud ES インスタンスの作成」をご参照ください。
VPC_2 に ECS インスタンスが作成され、関連するアプリケーションがデプロイされていること。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
説明ECS インスタンスは、SLB インスタンスによって転送されたリクエストを受信するバックエンドサーバーとして機能します。ECS インスタンスを作成するときは、PrivateLink をサポートするリージョンとゾーンを選択する必要があります。PrivateLink をサポートするリージョンについては、「PrivateLink をサポートするリージョンとゾーン」をご参照ください。
Alibaba Cloud ES、ECS、および SLB インスタンスは、同じリージョンの同じゾーンにデプロイする必要があります。
ステップ 1: SLB インスタンスの作成と設定
CLB コンソールにログインします。
PrivateLink をサポートする SLB インスタンスを作成します。
[インスタンス] ページで、[Classic Load Balancer の作成] をクリックします。
[Classic Load Balancer (従量課金)] 購入ページで、Alibaba Cloud ES インスタンスと同じリージョンを選択し、[インスタンスタイプ] を [プライベート] に設定し、[今すぐ購入] をクリックして CLB インスタンスを購入します。
詳細については、「CLB インスタンスの作成と管理」をご参照ください。
SLB インスタンスを設定します。
[インスタンス] ページで、宛先インスタンスを見つけます。[操作] 列で、[リスナー設定ウィザード] をクリックします。
[ロードバランサービジネス設定ウィザード] ページで、リスナーとバックエンドサーバーを設定し、ヘルスチェックを実行して、構成を確認します。
詳細については、「SLB インスタンスの設定」および「CLB リスナー」をご参照ください。
ステップ 2: エンドポイントサービスの作成
プライベート接続機能は、ES インスタンスのネットワーク環境にエンドポイントを自動的に作成します。ECS インスタンスの環境では、エンドポイントサービスを手動で作成するだけで済みます。
上部のナビゲーションバーで、エンドポイントサービスを作成するリージョンを選択します。
エンドポイントサービスは、SLB インスタンスと同じリージョンにある必要があります。
[エンドポイントサービスの作成] をクリックします。
[エンドポイントサービスの作成] ページで、サービスリソースとして SLB インスタンスを選択し、必要に応じて他のパラメーターを設定して、[作成] をクリックします。
詳細については、「エンドポイントサービスの作成」をご参照ください。
ステップ 3: Alibaba Cloud ES クラスターのプライベート接続を設定する
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[Elasticsearch クラスター] ページで、クラスターを見つけてその ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
クラスターネットワーク設定 セクションで、プライベート接続の設定 の右側にある 変更 をクリックします。
プライベート接続の設定 パネルで、プライベート接続の追加 をクリックします。
表示される 関連付けられたエンドポイントサービス ダイアログボックスで、ゾーン を選択し、確認チェックボックスをオンにして、OK をクリックします。
エンドポイントの 操作 列で、接続を許可 をクリックします。
エンドポイントとエンドポイントサービスが接続されると、エンドポイントの接続ステータス が 接続済み に変わります。これは、VPC_1 と VPC_2 の ES クラスター間の通信が有効になったことを示します。
(任意) エンドポイントのドメイン名を表示します。
エンドポイントのドメイン名は、Watcher、シングルサインオン (SSO)、LDAP などの他のサービス設定に使用できます。
プライベート接続の設定 パネルで、宛先の エンドポイント ID の ID をクリックします。
[エンドポイント接続] タブで、宛先のエンドポイント ID の横にある
アイコンをクリックして、エンドポイントに対応するドメイン名を表示します。
NLB と PrivateLink を使用して Alibaba Cloud ES インスタンス間にプライベート接続を確立する
このセクションでは、Network Load Balancer (NLB) インスタンスを使用して Alibaba Cloud ES_1 インスタンスを Alibaba Cloud ES_2 インスタンスに接続する方法について説明します。ES_2 インスタンスの IP アドレスを NLB インスタンスにマウントできます。この方法は、ネットワークアーキテクチャの制限により 2 つの Alibaba Cloud ES インスタンスが相互に通信できない場合によく使用されます。
ES_1 インスタンスと ES_2 インスタンスの間にプライベート接続が確立された後、ES_2 インスタンスから ES_1 インスタンスにデータを移行できます。
Alibaba Cloud NLB は IP アドレスのマウントをサポートしています。詳細については、「特徴」をご参照ください。
前提条件
同じリージョンとゾーンに 2 つの Alibaba Cloud ES インスタンスが作成されていること。
ES インスタンスを作成するときは、PrivateLink をサポートするリージョンとゾーンを選択する必要があります。PrivateLink をサポートするリージョンについては、「PrivateLink をサポートするリージョンとゾーン」をご参照ください。
ステップ 1: NLB インスタンスの作成
NLB インスタンスは、クライアントからのリクエストを受信し、リスニングルールに基づいてバックエンドサーバーにリクエストを転送します。NLB サービスを使用するには、NLB インスタンスを作成し、そのインスタンスにリスナーとバックエンドサーバーを追加する必要があります。
NLB インスタンスを作成します。
NLB コンソールにログインします。
[インスタンス] ページで、[NLB の作成] をクリックします。
購入ページで、インスタンスのパラメーターを設定します。
ES_2 インスタンスのリージョンを選択し、ネットワークタイプを [プライベート] に設定して、ゾーンを選択します。
詳細については、「NLB インスタンスの作成と管理」をご参照ください。
NLB サーバーグループを作成します。
サーバーグループは、クライアントからのリクエストを 1 つ以上のバックエンドサーバーにルーティングするために使用されます。NLB は、ヘルスチェックを実行してバックエンドサーバーのサービスの可用性を判断します。NLB インスタンスにリスナーを追加するときは、サーバーグループを指定する必要があります。リスナーは、設定されたプロトコルとポートを使用してクライアントの接続リクエストをチェックし、対応するサーバーグループにトラフィックを転送します。
[サーバーグループ] ページで、[サーバーグループの作成] をクリックします。
表示されるダイアログボックスで、サーバーグループを設定します。
サーバーグループタイプを [IP] に設定し、カスタム名を入力して、ES_2 インスタンスに関連付けられている VPC を選択します。
ES_2 インスタンスをバックエンドサーバーとして NLB インスタンスに追加します。
作成したサーバーグループに ES_2 インスタンスのプライベート IP アドレスとポートを追加します。
ping コマンドを実行して、ES_2 インスタンスのプライベート IP アドレスを取得します。

宛先サーバーグループの [操作] 列で、[バックエンドサーバーの編集] をクリックします。
[バックエンドサーバー] タブで、[IP の追加] をクリックします。
ES_2 インスタンスのプライベート IP アドレスをバックエンドサーバーに追加し、[次へ] をクリックします。
操作に使用される ES ポートを追加します。たとえば、reindex には通信用にポート 9200 が必要です。
[OK] をクリックします。
リスナーを追加します。
NLB コンソールにログインします。
インスタンスページで、ターゲット NLB インスタンスの [操作] 列にある [リスナーの作成] をクリックします。
リスナープロトコルを TCP に、リスナーポートを 9200 に設定し、[次へ] をクリックします。
サーバーグループタイプを [IP] に設定し、バックエンドサーバーグループを選択して、[次へ] をクリックします。
[送信] をクリックします。
ステップ 2: エンドポイントサービスの作成
プライベート接続機能は、ES インスタンスのネットワーク環境にエンドポイントを自動的に作成します。他の ES インスタンスの環境では、エンドポイントサービスを手動で作成するだけで済みます。
[エンドポイントサービスの作成] をクリックします。
[エンドポイントサービスの作成] ページで、サービスを設定できます。
次の表に、いくつかのパラメーターを示します。詳細については、「エンドポイントサービスの作成と管理」をご参照ください。
構成
説明
リージョン
ES インスタンスと同じリージョンを選択します。
EPS リソースタイプ
Network Load Balancer (NLB) を選択します。
サービスリソースの選択
作成した NLB インスタンス。
サービス支払者
どちらのオプションも選択できます。
[作成] をクリックします。
エンドポイントサービスが作成されると、NLB インスタンスにアタッチされ、[サービスリソース] セクションに表示されます。

ステップ 3: Alibaba Cloud ES インスタンスでプライベート接続を設定する
Alibaba Cloud ES_1 インスタンスでプライベート接続を設定します。システムは、ES_1 インスタンスのネットワーク環境にエンドポイントを自動的に作成し、エンドポイントサービスに接続します。
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[Elasticsearch クラスター] ページで、クラスターを見つけてその ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
クラスターネットワーク設定 セクションで、プライベート接続の設定 の右側にある 編集 をクリックします。
プライベート接続の設定 パネルで、プライベート接続の追加 をクリックします。
表示されるダイアログボックスで、作成したエンドポイントサービスを選択し、他の設定を完了して、OK をクリックします。
エンドポイントの [操作] 列で、[接続を許可] をクリックします。
エンドポイントとエンドポイントサービスが接続されると、エンドポイントの接続ステータス が 接続済み に変わります。これは、ES_1 インスタンスと ES_2 インスタンスが接続されたことを示します。
(任意) エンドポイントのドメイン名を表示します。
エンドポイントのドメイン名を使用して、Watcher、SSO、LDAP などの他のサービス設定のホワイトリストに追加できます。
プライベート接続の設定 パネルで、宛先の エンドポイント ID の ID をクリックします。
[エンドポイント接続] タブで、宛先のエンドポイント ID の横にある
アイコンをクリックして、エンドポイントに対応するドメイン名を表示します。
(任意) ステップ 4: reindex を使用して ES インスタンス間の接続性をテストする
reindex を使用して、Alibaba Cloud ES_2 インスタンスから Alibaba Cloud ES_1 インスタンスにインデックスを移行し、ES_1 インスタンスと ES_2 インスタンス間のネットワーク接続性を確認できます。
ES_1 インスタンスの YML ファイルに reindex ホワイトリストを設定します。
ES_1 インスタンスの詳細ページの左側のナビゲーションウィンドウで、 を選択します。
YML 設定 セクションの右上隅にある 設定の更新 をクリックします。
reindex.remote.whitelist: ["エンドポイントのドメイン名:9200"]
ES_2 インスタンスで移行するデータを準備します。次に、ES_1 インスタンスにインデックスを作成し、reindex 移行を実行します。
POST _reindex { "source": { "remote": { "host": "http://ep-bp1i4db71e6adaa29718-cn-hangzhou-i.epsrv-bp1fm3v8kc2qr2td6lrm.cn-hangzhou.privatelink.aliyuncs.com:9200", "username": "ユーザー名", "password": "パスワード" }, "index": "myindex" }, "dest": { "index": "myindex2" } }カテゴリ
パラメーター
説明
source
host
PrivateLink エンドポイントサービスのアクセスアドレス。アドレスには、プロトコル、エンドポイントのドメイン名、ポート番号を含める必要があります。例:
https://<エンドポイントのドメイン名>:9200。username
任意。Alibaba Cloud Elasticsearch インスタンスのデフォルトのユーザー名は elastic です。
password
ユーザー名に対応するパスワード。Alibaba Cloud Elasticsearch インスタンスの elastic ユーザーのパスワードは、インスタンスの作成時に設定されます。パスワードを忘れた場合は、リセットできます。パスワードのリセット方法については、「インスタンスのアクセスパスワードをリセットする」をご参照ください。
index
リモートクラスターのソースインデックス。
query
クエリを使用して、移行するデータを指定します。詳細については、「Reindex API」をご参照ください。
dest
index
ローカルクラスターの宛先インデックス。
ES_1 インスタンスで、ES_2 インスタンスのデータが正常に移行されたかどうかを確認します。