Network Load Balancer (NLB) と PrivateLink を使用して、同一リージョン内の 2 つの Elasticsearch クラスターのプライベートネットワークを接続します。その後、クロス クラスター レプリケーション (CCR) を構成することで、インデックスデータを準リアルタイムでレプリケートし、リージョン内の災害対策要件を満たすことができます。
前提条件
-
中国 (杭州) などの同じリージョンに 2 つの Elasticsearch インスタンスが作成されています。一方をリーダー クラスター、もう一方をフォロワー クラスターとします。手順については、「Alibaba Cloud Elasticsearch インスタンスを作成する」をご参照ください。
-
両方のクラスターは v3 クラウドネイティブコントロールプレーンを使用します。ご使用のクラスターが v1 または v2 アーキテクチャを使用している場合は、まずそのアーキテクチャをアップグレードしてください。詳細については、「インスタンスアーキテクチャをアップグレードする」をご参照ください。
-
両方のクラスターが Elasticsearch バージョン 7.10.0 以降を実行していること。フォロワー クラスターのバージョンは、リーダー クラスターのバージョンと同じか、それ以降である必要があります。
概要
Alibaba Cloud Elasticsearch インスタンスは、お客様自身の VPC ではなく、マネージド Virtual Private Cloud (VPC) にデプロイされます。同一リージョン内の異なる VPC を Cloud Enterprise Network (CEN) で接続した場合でも、デフォルトではクラスター間でプライベートネットワーク経由の通信はできません。2 つのクラスターのマネージド VPC を接続するには、NLB と PrivateLink を使用する必要があります。全体的なプロセスは以下のとおりです。
-
CEN を使用して、リーダー クラスターとフォロワー クラスターの VPC を接続します。両方の Elasticsearch インスタンスが同じ VPC 内にある場合は、この手順をスキップできます。
-
フォロワー クラスターの VPC 内に NLB インスタンスを作成し、リーダー クラスターのプライベート IP アドレスにトラフィックを転送します。
-
NLB インスタンスに基づいて PrivateLink エンドポイントサービスを作成します。
-
フォロワー クラスターの Alibaba Cloud Elasticsearch コンソールでプライベート接続を構成し、PrivateLink ドメイン名を取得します。
-
フォロワー クラスターの Kibana で、リモートクラスターを追加し、CCR を構成します。
手順
ステップ 1:CEN を使用した VPC の接続
両方の Elasticsearch インスタンスが同じ VPC 内にある場合は、この手順をスキップしてステップ 2 に進んでください。
Cloud Enterprise Network (CEN) を使用して、リーダー クラスターの VPC とフォロワー クラスターの VPC を接続します。詳細については、「同一リージョン内の VPC を接続する」をご参照ください。
ステップ 2:リーダー クラスターのプライベート IP の取得
-
Alibaba Cloud Elasticsearch コンソールにログインします。
-
リーダー クラスターの 基本情報 ページで、内部エンドポイント フィールドを探してプライベート ドメイン名をコピーします。
-
同じ VPC 内の ECS インスタンスから、以下のコマンドを実行してリーダー クラスターのプライベート IP アドレスを解決します。
ping <リーダー クラスターのプライベートドメイン名>解決された IP アドレスを記録し、後で使用します。
ステップ 3:NLB とサーバーグループの作成
フォロワー クラスターの VPC 内に NLB インスタンスを作成し、リーダー クラスターにトラフィックを転送します。
NLB インスタンスとサーバーグループを作成する前に、フォロワー クラスターが配置されているリージョンに切り替えてください。PrivateLink エンドポイントサービスを作成するため、NLB インスタンスはフォロワー クラスターと同じリージョンに配置する必要があります。
-
Network Load Balancer (NLB) コンソールにログインします。
-
サーバーグループを作成します。
-
左側のナビゲーションペインで、ServerGroup をクリックします。
-
サーバーグループの作成 をクリックし、以下のパラメーターを設定します:
パラメータ
説明
[サーバーグループのタイプ]
IPタイプ を選択します。
[転送ポート]
フルポート転送 を有効にします。
[ヘルスチェック]
ポートを 9300 に設定します。
-
作成したサーバーグループで、バックエンドサーバーの追加 をクリックします。 ステップ 2 で取得したリーダークラスターのプライベート IP アドレスを追加し、ポートはデフォルトのままにします。
-
-
NLB インスタンスとリスナーを作成します。
NLB 購入ページでは、全ポート機能を持つリスナーの作成はサポートされていません。そのため、まずリスナーなしで NLB インスタンスを作成します。次に、インスタンスの詳細ページでリスナーを作成し、全ポート機能を有効にします。
すでに NLB インスタンスをお持ちの場合は、直接リスナーを作成できます。お持ちでない場合は、まず NLB インスタンスを作成する必要があります。
-
左側のナビゲーションペインで、インスタンス をクリックし、NLB インスタンスを選択または作成します。
-
インスタンス詳細ページに移動し、Listener タブをクリックし、次に リスナーの作成 をクリックします。
-
[Full-port] 機能を有効にし、リスナーポート範囲を [9200-9300] に設定します。
-
ServerGroup には、IPタイプ と前の手順で作成したサーバーグループを選択します。
-
ステップ 4:PrivateLink の構成
PrivateLink を使用して、フォロワー クラスターのマネージド VPC からリーダー クラスターへのネットワーク接続を確立します。
-
[PrivateLink コンソール]にログインします。
-
エンドポイントサービスを作成します。
-
左側のナビゲーションペインで、エンドポイントサービス をクリックします。
-
エンドポイントサービスの作成 をクリックして、次のパラメーターを設定します。
パラメータ
説明
[Service Resource Type]
[NLB] を選択します。
[サービスリソース]
ステップ 3 で作成または使用した NLB インスタンスを選択します。
[Zone]
NLB インスタンスが配置されているアベイラビリティーゾーンを選択します。
[エンドポイント接続を自動で許可]
はい を選択します。
-
-
フォロワー クラスターにプライベート接続を追加します。
-
Alibaba Cloud Elasticsearch コンソールにログオンし、フォロワークラスターのインスタンス詳細ページに移動します。
-
左側のナビゲーションペインで、設定と管理 > セキュリティ設定 を選択します。
-
クラスターネットワーク設定 セクションで、プライベート接続の設定をクリックします。
-
プライベート接続の追加 をクリックし、前のステップで作成したエンドポイントサービスを選択します。
-
接続ステータスが 接続済み に変わるまでお待ちください。
-
-
PrivateLink ドメイン名を取得します。
接続が確立されたら、PrivateLink コンソールに戻ります。 エンドポイントサービスの エンドポイントの接続ステータス タブで、自動的に作成されたエンドポイント接続を表示します。 これは、リモートクラスターを設定するために使用する PrivateLink ドメイン名です。
ステップ 5:クロス クラスター レプリケーション (CCR) の構成
-
フォロワークラスターの Kibana にアクセスします。 詳細については、「インターネット経由で Kibana コンソールにログオンする (v2/v3 デプロイアーキテクチャ)」をご参照ください。
フォロワー クラスターのインスタンス詳細ページで、左側のナビゲーションペインのデータ可視化をクリックし、[Kibana にアクセス]をクリックします。
-
リモートクラスターを追加します。
-
Kibana の左側のメニューで、[スタック管理] をクリックします。
-
[データ] セクションで、[リモートクラスター] をクリックします。
-
[リモートクラスターの追加] をクリックし、以下のパラメーターを設定します:
パラメータ
説明
Name
リーダー クラスターのインスタンス ID を入力します。
Proxy mode
プロキシモードを有効にします。
Proxy address
ステップ 4 で取得した PrivateLink ドメイン名を入力します。形式は
<Domain name>:9300です。 -
[保存] をクリックし、接続ステータスが [接続済み] であることを確認します。
-
-
レプリケーション方法を設定します。
CCR は 2 つの方法をサポートしています。
モード
説明
フォロワーインデックス
指定した単一のインデックスをレプリケートします。
自動フォローパターン
指定したインデックス名パターンに一致するインデックスを自動的にレプリケートします。このモードは一括同期に適しています。
自動フォローパターンは、リーダー クラスターで作成された新しいインデックスを自動的にレプリケートしますが、既存のインデックスはレプリケートしません。既存のインデックスをレプリケートするには、対応するフォロワーインデックスを手動で作成する必要があります。
以下の例では、自動フォローパターンを使用します。
-
[スタック管理] で、[クラスター間レプリケーション] をクリックします。
-
[自動フォローパターン] タブをクリックし、[自動フォローパターンの作成] をクリックします。
-
[リモートクラスター] には、前の手順で追加したリモートクラスターを選択します。[インデックスパターン] には、すべてのインデックスをレプリケートする場合は
*を入力します。特定のインデックスのみをレプリケートする場合は、logs-*などのインデックス名パターンを入力します。 -
[作成] をクリックします。
-
ステップ 6:データ同期の検証
既存のインデックスの同期を検証
自動フォローパターンを作成する前にリーダー クラスターに存在していたインデックスは、自動的にレプリケートされません。フォロワー クラスターの Kibana で、[Stack Management] > [Cross-Cluster Replication] > [Follower indices] に移動して、フォロワーインデックスを手動で作成する必要があります。
フォロワーインデックスを作成した後、フォロワー クラスターの 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返されたドキュメントがソースドキュメントと一致していれば、リアルタイム同期は成功しています。
よくある質問
リモートクラスターのステータスが「接続済み」にならないのはなぜですか?
以下の項目を確認してください。
-
CEN でリージョン内接続用の帯域幅を割り当てていること、および 2 つの VPC が接続されていることを確認してください。
-
NLB インスタンスのリスナーポート範囲に 9200-9300 が含まれているかどうかを確認してください。
-
サーバーグループ内のリーダー クラスターのプライベート IP アドレスが正しいかどうかを確認してください。
-
サーバーグループのヘルスチェックポートが 9300 であるかどうかを確認してください。
-
PrivateLink エンドポイントサービスの接続ステータスが 接続済み であるかどうかを確認します。
リージョン内 CCR の同期レイテンシはどのくらいですか?
リージョン内 CCR のレイテンシは通常数秒程度で、単一のアベイラビリティーゾーン内でのレプリケーションよりもわずかに高くなります。実際のレイテンシは、CEN 帯域幅の構成、データ量、ネットワーク状態によって異なります。ビジネス要件に基づいて CEN のリージョン内帯域幅を構成することを推奨します。
CCR のクラスターバージョン要件は何ですか?
フォロワー クラスターのバージョンは、リーダー クラスターのバージョンと同じか、それ以降である必要があります。両方のクラスターがバージョン 7.10.0 以降であり、v3 クラウドネイティブコントロールプレーンを使用している必要があります。