Cloud Enterprise Network (CEN)、Network Load Balancer (NLB)、および PrivateLink を使用して、異なるリージョンにある 2 つの Elasticsearch クラスター間にプライベートネットワーク接続を確立します。その後、クラスター間レプリケーション (CCR) を構成して、インデックスデータのニアリアルタイム同期を実現できます。この構成は、クロスリージョンディザスタリカバリや読み書き分離などのユースケースをサポートします。
前提条件
リーダークラスターおよびフォロワークラスターとして、中国 (上海) と中国 (杭州) など、異なるリージョンに 2 つの Elasticsearch インスタンスを作成済みである必要があります。詳細については、「Alibaba Cloud Elasticsearch インスタンスの作成」をご参照ください。
両方のクラスターの管理およびデプロイモードがクラウドネイティブコントロールプレーン (v3) である必要があります。クラスターが v1 または v2 アーキテクチャを使用している場合は、事前にアーキテクチャをスペックアップする必要があります。詳細については、「インスタンスのアーキテクチャのスペックアップ」をご参照ください。
両方のクラスターが Elasticsearch 7.10.0 以降を実行しており、フォロワークラスターのバージョンがリーダークラスターより古いバージョンであってはなりません。
概要
Alibaba Cloud Elasticsearch インスタンスは、お客様の VPC ではなく、専用の管理 VPC 内にデプロイされます。たとえ CEN を使用して 2 つのリージョンの VPC を接続したとしても、クラスター間はデフォルトでプライベート通信できません。クラスターの管理 VPC 同士をブリッジするために、NLB および PrivateLink も併用する必要があります。全体の手順は次のとおりです。
CEN を使用して、リーダークラスターおよびフォロワークラスターが配置されている VPC を接続します。
フォロワークラスターの VPC 内に NLB インスタンスを作成し、IP ベースのサーバーグループを使用して、トラフィックをリージョン間で転送し、リーダークラスターのプライベート IP アドレスに到達させます。
NLB インスタンスの PrivateLink エンドポイントサービスを作成します。
フォロワークラスターの Elasticsearch コンソールでプライベート接続を構成し、PrivateLink ドメイン名を取得します。
フォロワークラスターの Kibana コンソールでリモートクラスターを追加し、CCR を構成します。
操作手順
ステップ 1:クロスリージョン VPC の接続
CEN を使用して、リーダークラスターおよびフォロワークラスターが配置されている VPC を接続します。詳細な手順については、「クロスリージョンでの VPC 接続」をご参照ください。
CEN トランジットルーターを使用するには、VPC に少なくとも 2 つの異なる可用性ゾーンに VSwitch が存在している必要があります。VPC に VSwitch が 1 つしかない場合は、トランジットルーターに VPC をアタッチする前に、別の可用性ゾーンに新しい VSwitch を作成する必要があります。
ステップ 2:リーダークラスターのプライベート IP の取得
Alibaba Cloud Elasticsearch コンソールにログインします。
リーダークラスターの基本情報ページで、内部エンドポイントフィールドを見つけ、そのドメイン名をコピーします。
同一 VPC 内の ECS インスタンスで、次のコマンドを実行してリーダークラスターのプライベート IP アドレスを解決します。
ping <private_domain_of_the_leader_cluster>解決された IP アドレスを後ほど使用するために記録しておきます。
ステップ 3:NLB およびサーバーグループの作成
フォロワークラスターの VPC 内に NLB インスタンスを作成し、リーダークラスターへのトラフィックを転送します。
Network Load Balancer (NLB) コンソールにログインします。
サーバーグループを作成します。
左側のナビゲーションウィンドウで、[サーバーグループ] をクリックします。
[サーバーグループの作成] をクリックし、次のパラメーターを設定します。
パラメーター
説明
[サーバーグループタイプ]
[IP] を選択します。
ポート転送
[すべてのポートを転送] を有効にします。
ヘルスチェック
ポートを 9300 に設定します。
作成したサーバーグループで、[バックエンドサーバーの追加] をクリックし、ステップ 2 で取得したリーダークラスターのプライベート IP アドレスを追加します。ポートはデフォルト値のままにしてください。
NLB インスタンスおよびリスナーを作成します。
すでに NLB インスタンスがある場合は、直接リスナーを作成できます。そうでない場合は、NLB インスタンスを作成し、リスナーの構成はスキップしてください。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。NLB インスタンスを選択するか、新規作成します。
インスタンスの詳細ページで、[リスナー] タブをクリックし、[リスナーの作成] をクリックします。
[すべてのポート] 機能を有効にし、リスナーポート範囲を 9200-9300 に設定します。
[サーバーグループ] では、[IP] および前のステップで作成したサーバーグループを選択します。
ステップ 4:PrivateLink の構成
PrivateLink を使用して、フォロワークラスターの管理 VPC からリーダークラスターへのネットワーク接続を確立します。
PrivateLink コンソールにログインします。
エンドポイントサービスを作成します。
左側のナビゲーションウィンドウで、[エンドポイントサービス] をクリックします。
[エンドポイントサービスの作成] をクリックし、次のパラメーターを設定します。
パラメーター
説明
サービスリソースタイプ
[NLB] を選択します。
サービス リソース
ステップ 3 で作成または使用した NLB インスタンスを選択します。
可用性ゾーン
NLB インスタンスが配置されている可用性ゾーンを選択します。
[エンドポイント接続を自動承諾]
[はい] を選択します。
フォロワークラスターのプライベート接続を追加します。
Alibaba Cloud Elasticsearch コンソールにログインし、フォロワークラスターインスタンスの詳細ページに移動します。
左側のナビゲーションウィンドウで、設定と管理 > セキュリティ設定 を選択します。
クラスターネットワーク設定 セクションで、プライベート接続の設定 をクリックします。
プライベート接続の追加 をクリックし、作成したエンドポイントサービスを選択します。
接続ステータスが 接続済み に変化するまで待ちます。
PrivateLink ドメイン名を取得します。
接続が確立されたら、PrivateLink コンソールに戻ります。エンドポイントサービスの エンドポイントの接続ステータス タブで、自動的に作成されたエンドポイント接続を見つけます。この接続のドメイン名が、後ほどリモートクラスターを構成する際に使用する PrivateLink ドメイン名です。
ステップ 5:クラスター間レプリケーション (CCR) の構成
フォロワークラスターの Kibana コンソールにアクセスします。詳細については、「インターネット経由での Kibana コンソールへのログイン (v2 または v3 アーキテクチャのインスタンス向け)」をご参照ください。
フォロワークラスターのインスタンス詳細ページで、左側のナビゲーションウィンドウの [可視化コントロール] をクリックし、[Kibana にアクセス] をクリックします。
リモートクラスターを追加します。
Kibana の左側のナビゲーションウィンドウで、[スタック管理] をクリックします。
[データ] セクションで、[リモートクラスター] をクリックします。
[リモートクラスターの追加] をクリックし、以下のパラメーターを設定します。
パラメーター
説明
[名前]
リーダークラスターのインスタンス ID を入力します。
プロキシモード
プロキシモードを有効にします。
[プロキシアドレス]
ステップ 4 で取得した PrivateLink ドメイン名を入力します。形式は
<domain_name>:9300です。[保存] をクリックし、接続ステータスが [接続済み] であることを確認します。
CCR レプリケーションモードを構成します。
CCR は次の 2 種類のレプリケーションモードをサポートしています。
モード
説明
フォロワーインデックス
指定された単一のインデックスをレプリケートします。
オートフォローパターン
指定されたインデックス名パターンに一致するインデックスを自動的にレプリケートします。このモードはバッチ同期に適しています。
オートフォローパターンを作成すると、リーダークラスター内の新しいインデックスが自動的にフォロワークラスターにレプリケートされます。既存のインデックスは自動的にレプリケートされません。既存のインデックスをレプリケートするには、手動でそのインデックスのフォロワーインデックスを作成する必要があります。
以下の手順では、オートフォローパターンの構成方法を示します。
[スタック管理] で、[クラスター間レプリケーション] をクリックします。
[オートフォローパターン] タブをクリックし、[オートフォローパターンの作成] をクリックします。
[リモートクラスター] では、直前に追加したリモートクラスターを選択します。[インデックスパターン] には、すべてのインデックスをレプリケートする場合は
*を入力します。特定のインデックスをレプリケートする場合は、logs-*のような名前パターンを入力します。[作成] をクリックします。
ステップ 6:データレプリケーションの検証
既存データのレプリケーションを検証します。
フォロワークラスターの Kibana コンソールで、次のコマンドを実行してレプリケートされたインデックスをクエリします。
GET /<index_name>/_search返された結果がリーダークラスターのデータと一致する場合、既存データのレプリケーションは成功しています。
増分データのレプリケーションを検証します。
リーダークラスターの Kibana コンソールで、新しいインデックスを作成し、ドキュメントを書き込みます。
PUT /test-increment-index POST /test-increment-index/_doc { "title": "increment test", "content": "This is a test document for CCR incremental sync." }フォロワークラスターの Kibana コンソールで、新しいインデックスをクエリします。
GET /test-increment-index/_search返されたドキュメントの内容が書き込んだドキュメントと同じである場合、増分データがニアリアルタイムでレプリケートされています。
よくある質問
リモートクラスターの接続ステータスが「接続済み」にならないのはなぜですか?
次の項目を確認してください。
NLB インスタンスが配置されている VPC の CIDR ブロックが、リーダークラスターのプライベートアクセスホワイトリストに含まれていることを確認してください。クロスリージョン構成では、NLB が CEN を介してヘルスチェックプローブを含むトラフィックをリーダークラスターに転送します。このトラフィックの送信元 IP アドレスは NLB の VPC に属します。この CIDR ブロックがホワイトリストに含まれていない場合、NLB のヘルスチェックが失敗し、接続を確立できません。
CEN にクロスリージョン帯域幅が割り当てられており、2 つの VPC 間のネットワーク接続が確立されていることを確認してください。
NLB リスナーのポート範囲に 9200-9300 が含まれていることを確認してください。
サーバーグループ内のリーダークラスターのプライベート IP アドレスが正しいことを確認してください。
サーバーグループのヘルスチェックポートが 9300 であることを確認してください。
PrivateLink エンドポイント接続のステータスが「接続済み」であることを確認してください。
クロスリージョン CCR の遅延は、同一リージョンよりも高くなりますか?
クロスリージョン CCR の同期遅延はネットワーク遅延の影響を受け、通常は同一リージョンのシナリオよりもわずかに高くなりますが、それでも秒単位に抑えることができます。実際の遅延は、CEN 帯域幅の構成、データ量、ネットワーク状況に依存します。ビジネス要件に基づいて CEN のクロスリージョン帯域幅を構成することを推奨します。
CCR のバージョン要件は何ですか?
フォロワークラスターのバージョンはリーダークラスターより古いバージョンであってはなりません。両方のクラスターはバージョン 7.10.0 以降であり、かつクラウドネイティブコントロールプレーン (v3) の管理およびデプロイモードを使用している必要があります。