新しいネットワークアーキテクチャの制限により、Alibaba Cloud Elasticsearch クラスターの特定の機能は使用できません。PrivateLink とサーバーロードバランサー (SLB) を使用して、Alibaba Cloud Elasticsearch クラスターのプライベート接続を設定することで、クラスターと Elastic Compute Service (ECS) インスタンス、Elastic Network Interface (ENI)、Elastic Container Instance (ECI) などのクラウド リソース間、またはクラスターと特定の IP アドレスのネットワーク リソース間の通信を有効にすることができます。このトピックでは、クラシックロードバランサー (CLB) と PrivateLink を使用して、Alibaba Cloud Elasticsearch クラスターと Alibaba Cloud ECS インスタンス間のプライベート接続を確立する方法について説明します。また、ネットワークロードバランサー (NLB) と PrivateLink を使用して、Alibaba Cloud Elasticsearch クラスター間のプライベート接続を確立する方法についても説明します。PrivateLink と SLB を使用できるシナリオに基づいてソリューションを選択できます。
説明
プライベート接続の設定は、X-Pack Watcher、再インデックス、Lightweight Directory Access Protocol (LDAP) 認証、Active Directory (AD) ユーザー認証などの機能に対する新しいネットワークアーキテクチャによる制限を解決するために使用できる唯一のソリューションです。
2020 年 10 月以降に作成された Elasticsearch クラスターは、新しいネットワークアーキテクチャにデプロイされています。これらの Elasticsearch クラスターはプライベート接続をサポートしています。2020 年 10 月より前に作成された Elasticsearch クラスターは、Alibaba Gov Cloud および Alibaba Finance Cloud のクラスターを含む、元のネットワークアーキテクチャにデプロイされています。これらの Elasticsearch クラスターはプライベート接続をサポートしていません。
PrivateLink の ユースケース
Elasticsearch クラスターが、X-Pack Watcher、LDAP 認証、AD ユーザー認証など、外部ネットワークにデプロイされたサービス リソースにアクセスする必要があるシナリオ。
これらのシナリオでは、Elasticsearch クラスターと ECS インスタンス間のプライベート接続を確立して、ECS インスタンスをビジネスサーバーまたはプロキシサーバーとして使用し、トラフィック転送を実装できます。
次の表に、プライベート接続を必要とする詳細なシナリオと機能を示します。
reindex API を使用して Alibaba Cloud Elasticsearch クラスター間でデータを移行するシナリオ。Elasticsearch Cluster 1 は VPC 1 にデプロイされ、Elasticsearch Cluster 2 は VPC 2 にデプロイされています。Elasticsearch Cluster 1 のプライベート接続が設定され、VPC 1 のエンドポイントが VPC 2 のエンドポイント サービスに接続されています。これにより、Elasticsearch Cluster 1 と Elasticsearch Cluster 2 の間にプライベート接続が確立されます。
次の表に、プライベート接続を必要とする詳細なシナリオと機能を示します。
用語
PrivateLink を使用してプライベート接続を確立するには、エンドポイント サービスとエンドポイントを作成する必要があります。
用語 | 説明 |
エンドポイント サービス | エンドポイント サービスは、プライベート接続を確立するために使用されます。VPC はエンドポイントを使用して、別の VPC のエンドポイント サービスに接続できます。プライベート接続を確立する前に、アクセスする VPC にエンドポイント サービスを手動で作成する必要があります。 |
エンドポイント | エンドポイントをエンドポイント サービスに関連付けて、プライベート接続を確立できます。プライベート接続により、VPC は外部サービスにアクセスできます。Elasticsearch クラスターのプライベート接続を設定すると、システムはクラスターがデプロイされているネットワーク環境にエンドポイントを自動的に作成します。 |
Elasticsearch クラスターと ECS インスタンス間のプライベート接続を CLB と PrivateLink を使用して確立する
前提条件
2020 年 10 月以降に VPC 1 に Elasticsearch クラスターが作成されています。Elasticsearch クラスターの作成方法については、「Alibaba Cloud Elasticsearch クラスターを作成する」をご参照ください。
VPC 2 に ECS インスタンスが作成され、アプリケーションが ECS インスタンスにデプロイされています。詳細については、「[カスタム起動] タブでインスタンスを作成する」をご参照ください。
説明
ECS インスタンスは、CLB インスタンスによって転送されるリクエストを受信するバックエンド サーバーとして使用されます。ECS インスタンスを作成するときは、PrivateLink をサポートするリージョンとゾーンを選択する必要があります。PrivateLink をサポートするリージョンとゾーンについては、「PrivateLink をサポートするリージョンとゾーン」をご参照ください。
Elasticsearch クラスター、ECS インスタンス、および CLB インスタンスは、同じリージョンの同じゾーンに存在する必要があります。
ステップ 1:CLBインスタンスの作成と構成
[CLB コンソール] にログインします。
PrivateLink をサポートする CLB インスタンスを作成します。
[インスタンス] ページで、[CLB の作成] をクリックします。
[CLB (従量課金制) 国際サイト] ページで、Elasticsearch クラスターが存在するリージョンを選択し、[SLB インスタンス] を [イントラネット] に設定して、[今すぐ購入] をクリックします。
詳細については、「CLB インスタンスを作成および管理する」をご参照ください。
CLB インスタンスを設定します。
[インスタンス] ページで、CLB インスタンスを見つけて、[アクション] 列の [リスナーの設定] をクリックします。
[サーバーロードバランサーの設定] ページで、ビジネス要件に基づいてパラメーターを設定し、ヘルスチェックと設定レビューを実行します。
詳細については、「CLB インスタンスを設定する」および「CLB リスナー」をご参照ください。
ステップ 2:エンドポイントサービスを作成する
説明
Elasticsearch クラスターのプライベート接続を設定すると、システムはクラスターがデプロイされているネットワーク環境にエンドポイントを自動的に作成します。ECS インスタンスがデプロイされているネットワーク環境にエンドポイント サービスを作成するだけで済みます。
VPC コンソールの [エンドポイント サービス] ページに移動します。
上部のナビゲーション バーで、エンドポイント サービスを作成するリージョンを選択します。
エンドポイント サービスは、CLB インスタンスと同じリージョンに存在する必要があります。
[エンドポイント サービスの作成] をクリックします。
[エンドポイント サービスの作成] ページで、[サービス リソース タイプ] を [CLB] に設定し、CLB インスタンスが存在するゾーンと [サービス リソースの選択] パラメーターの CLB インスタンスの名前を選択します。ビジネス要件に基づいて残りのパラメーターを設定し、[OK] をクリックします。
詳細については、「エンドポイント サービスを作成する」をご参照ください。
手順 3:Elasticsearch クラスターのプライベート接続を作成する
[Alibaba Cloud Elasticsearch コンソール] にログインします。
左側のナビゲーション ペインで、[elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーション バーで、クラスターが属するリソース グループとクラスターが存在するリージョンを選択します。
[elasticsearch クラスター] ページで、クラスターを見つけて、その ID をクリックします。
表示されるページの左側のナビゲーション ペインで、 を選択します。
[ネットワーク設定] セクションで、編集[プライベート接続の設定] の右側にある をクリックします。
[プライベート接続の設定] パネルで、[プライベート接続の追加] をクリックします。
[プライベート接続の作成] ダイアログ ボックスで、作成したエンドポイント サービスを選択し、目的のゾーンを選択します。次に、[OK] をクリックします。
[プライベート接続の設定] パネルで、エンドポイントの [アクション] 列の [接続を許可] をクリックします。
エンドポイントとエンドポイント サービスが接続されると、[エンドポイント接続ステータス] 列に [接続済み] と表示されます。これは、VPC 1 と VPC 2 間の通信が有効になっていることを示します。
オプション。エンドポイントのドメイン名を表示します。
エンドポイントのドメイン名を使用して、X-Pack Watcher、シングルサインオン (SSO)、LDAP 認証などの他の設定を行うことができます。
[プライベート接続の設定] パネルで、[エンドポイント ID] 列のエンドポイントの ID をクリックします。
表示されるページの [エンドポイント接続] タブで、エンドポイント ID の左側にある アイコンをクリックして、エンドポイントのドメイン名を表示します。
Alibaba Cloud Elasticsearch クラスター間のプライベート接続を NLB と PrivateLink を使用して確立する
このセクションでは、Elasticsearch Cluster 2 のプライベート IP アドレスを NLB サーバー グループに追加して、Elasticsearch Cluster 1 と Elasticsearch Cluster 2 の間にプライベート接続を確立する方法について説明します。2 つの Elasticsearch クラスターがネットワークアーキテクチャの制限により相互に通信できない場合は、この方法を使用してクラスター間のプライベート接続を確立できます。
前提条件
同じリージョンとゾーンに存在する Elasticsearch Cluster 1 と Elasticsearch Cluster 2 が作成されています。
説明
Elasticsearch クラスターを作成するときは、PrivateLink をサポートするリージョンとゾーンを選択する必要があります。PrivateLink をサポートするリージョンとゾーンについては、「PrivateLink をサポートするリージョンとゾーン」をご参照ください。
ステップ 1:NLB インスタンスの作成
NLBインスタンスは、クライアントからリクエストを受信し、リスニングルールに基づいてバックエンドサーバーにリクエストを転送します。 NLBサービスを使用するには、NLBインスタンスを作成し、インスタンスにリスナーとバックエンドサーバーを追加する必要があります。
NLBインスタンスを作成します。
NLBコンソール にログインします。
[インスタンス] ページで、[NLBの作成] をクリックします。
[NLB(従量課金制)インターナショナルサイト] ページで、パラメーターを構成します。
Elasticsearch Cluster 2 が存在するリージョンを選択し、[ネットワークタイプ] パラメーターを イントラネット に設定し、Elasticsearch Cluster 2 が存在するゾーンを選択します。
詳細については、「NLBインスタンスの作成と管理」をご参照ください。
NLBサーバーグループを作成します。
NLBサーバーグループは、クライアントからのリクエストを、サーバーグループで指定された1つ以上のバックエンドサーバーに転送します。 NLBは、ヘルスチェックを実行することにより、バックエンドサーバーの可用性をチェックします。 NLBインスタンスにリスナーを追加する場合、サーバーグループを指定する必要があります。 リスナーは、構成されたプロトコルとエンドポイントに基づいてクライアントからの接続リクエストをチェックし、トラフィックをサーバーグループに転送します。
NLBコンソールの [サーバーグループ] ページ に移動します。
[サーバーグループ] ページで、[サーバーグループの作成] をクリックします。
[サーバーグループの作成] ダイアログボックスで、サーバーグループのパラメーターを構成します。
[サーバーグループタイプ] パラメーターを IP に設定し、[サーバーグループ名] フィールドに名前を入力し、Elasticsearch Cluster 2 がデプロイされているVPCを選択します。
Elasticsearch Cluster 2 をバックエンドサービスとしてNLBインスタンスに追加します。
Elasticsearch Cluster 2 のプライベートIPアドレスとポート番号を作成したサーバーグループに追加します。
pingコマンドを使用して、Elasticsearch Cluster 2 のプライベートIPアドレスを取得します。
作成したサーバーグループの [アクション] 列で、[バックエンドサーバーの変更] をクリックします。
表示されるページの [バックエンドサーバー] タブで、[IPアドレスの追加] をクリックします。
[バックエンドサーバーの追加] パネルで、[IPアドレス] フィールドにElasticsearch Cluster 2 のプライベートIPアドレスを入力し、[次へ] をクリックします。
[ポート/重み] ステップで、[ポート] フィールドにElasticsearch Cluster 2 のポート番号を入力します。 たとえば、再インデックスに必要な 9200 を入力できます。
[OK] をクリックします。
リスナーを追加します。
NLBコンソール にログインします。
[インスタンス] ページで、作成したNLBインスタンスを見つけ、[アクション] 列の [リスナーの作成] をクリックします。
[サーバーロードバランサーの構成] ページの [リスナーの構成] ステップで、[リスナーポート] フィールドに 9200 と入力し、[次へ] をクリックします。
[サーバーロードバランサーの構成] ページの [サーバーグループの選択] ステップで、[サーバータイプ] ドロップダウンリストから IP を選択し、作成したサーバーグループを選択して、[次へ] をクリックします。
[送信] をクリックします。
ステップ 2: エンドポイントサービスを作成する
説明
Elasticsearch Cluster 1 のプライベート接続を構成すると、システムによってクラスターがデプロイされているネットワーク環境にエンドポイントが自動的に作成されます。 Elasticsearch Cluster 2 がデプロイされているネットワーク環境にエンドポイントサービスを作成するだけで済みます。
VPCコンソールの [エンドポイントサービス] ページに移動します。
[エンドポイントサービスの作成] をクリックします。
[エンドポイントサービスの作成] ページで、ビジネス要件に基づいてパラメーターを構成します。
次の表は、エンドポイントサービスを作成するときに構成する必要があるいくつかのパラメーターについて説明しています。 詳細については、「NLBインスタンスの作成」をご参照ください。
パラメーター | 説明 |
リージョン | Elasticsearchクラスターが存在するリージョンを選択します。 |
サービスリソースの種類 | NLB を選択します。 |
サービスリソースの選択 | Elasticsearchクラスターが存在するゾーンを選択し、作成した NLB インスタンスを選択します。 |
サービスの支払者 | サービスプロバイダーまたはサービスコンシューマーを選択します。 |
[OK] をクリックします。
エンドポイントサービスが作成されると、[サービスリソース] セクションでエンドポイントサービスが NLB インスタンスに関連付けられていることを確認できます。
手順 3: Elasticsearch Cluster 1 のプライベート接続を構成する
Elasticsearch Cluster 1 のプライベート接続を構成すると、Elasticsearch Cluster 1 がデプロイされているネットワーク環境にエンドポイントが自動的に作成されます。
Alibaba Cloud Elasticsearch コンソール にログオンします。
左側のナビゲーションペインで、[elasticsearch Clusters] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループと、クラスターが存在するリージョンを選択します。
[elasticsearch Clusters] ページで、クラスターを見つけ、その ID をクリックします。
表示されるページの左側のナビゲーションペインで、 を選択します。
[ネットワーク設定] セクションで、編集[プライベート接続の構成] の右側にある をクリックします。
[プライベート接続の構成] パネルで、[プライベート接続の追加] をクリックします。
[プライベート接続の作成] ダイアログボックスで、作成したエンドポイントサービスと、目的のゾーンを選択します。次に、[OK] をクリックします。
[プライベート接続の構成] パネルで、エンドポイントの [アクション] 列の [接続を許可] をクリックします。
エンドポイントとエンドポイントサービスが接続されると、[エンドポイント接続ステータス] 列に [接続済み] と表示されます。これは、Elasticsearch Cluster 1 と Elasticsearch Cluster 2 間の通信が有効になっていることを示します。
オプション。エンドポイントのドメイン名を表示します。
エンドポイントのドメイン名を取得し、X-Pack Watcher、SSO、LDAP 認証などの他の構成のホワイトリストにドメイン名を追加できます。
[プライベート接続の構成] パネルで、[エンドポイント ID] 列のエンドポイントの ID をクリックします。
表示されるページの [エンドポイント接続] タブで、エンドポイント ID の左側にある アイコンをクリックして、エンドポイントのドメイン名を表示します。
手順 4:(オプション)reindex API を使用して Elasticsearch クラスター間の接続をテストする
Elasticsearch Cluster 2 のインデックスを Elasticsearch Cluster 1 に移行するには、reindex API を使用して、クラスター間のネットワーク接続をテストします。
Elasticsearch Cluster 1 の YML 設定ファイルで、再インデックスのホワイトリストを設定します。
Elasticsearch Cluster 1 の詳細ページの左側のナビゲーションペインで、 を選択します。
表示されるページの [YML 構成] セクションで、[構成の変更] をクリックします。
reindex.remote.whitelist: ["Domain name of the endpoint:9200"]
Elasticsearch Cluster 2 で移行するデータを準備し、Elasticsearch Cluster 1 にインデックスを作成し、reindex API を使用して Elasticsearch Cluster 1 にデータを移行します。
POST _reindex
{
"source": {
"remote": {
"host": "http://ep-bp1i4db71e6adaa29718-cn-hangzhou-i.epsrv-bp1fm3v8kc2qr2td6lrm.cn-hangzhou.privatelink.aliyuncs.com:9200",
"username": "Username",
"password": "Password"
},
"index": "myindex"
},
"dest": {
"index": "myindex2"
}
}
カテゴリ | パラメータ | 説明 |
source | host | エンドポイントサービスの URL。URL には、プロトコル、エンドポイントのドメイン名、およびポート番号を含める必要があります。https://エンドポイントのドメイン名:9200 の形式でこのパラメータを設定する必要があります。 |
username | オプション。リモートクラスタへの接続に使用するユーザー名。デフォルトのユーザー名は elastic です。 |
password | リモートクラスタへの接続に使用するパスワード。パスワードは、クラスタの作成時に指定します。パスワードを忘れた場合は、リセットできます。パスワードをリセットする手順と注意事項については、Elasticsearch クラスタのアクセスパスワードをリセットする をご参照ください。 |
index | リモートクラスタのソースインデックス。 |
query | 移行するデータを指定します。詳細については、Reindex API をご参照ください。 |
dest | index | ローカルクラスタのデスティネーションインデックス。 |
Elasticsearch Cluster 2 のデータが Elasticsearch Cluster 1 に移行されたかどうかを確認します。