すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:マルチゾーン Elasticsearch クラスタのデプロイと使用

最終更新日:Mar 20, 2025

マルチゾーン Elasticsearch クラスタは、最適化されたディザスタリカバリ機能を提供します。システムは、クラスタをデプロイするために十分な Elastic Compute Service (ECS) インスタンスを持つゾーンを自動的に選択します。クラスタ内のインデックスにレプリカシャードが構成されていて、1 つのゾーンのノードに障害が発生した場合、残りのゾーンのノードは中断することなくサービスを提供し続けることができます。これにより、クラスタの可用性が大幅に向上します。さらに、Elasticsearch コンソールでスイッチオーバーを実行して、障害のあるノードを隔離することができます。その後、システムは残りのゾーンに計算リソースを追加して、障害のあるノードを含むゾーンで失われたリソースを補います。このトピックでは、マルチゾーン Elasticsearch クラスタをデプロイし、ゾーンのスイッチオーバーとリカバリを実行する方法について説明します。

シナリオ

Alibaba Cloud Elasticsearch クラスタは、次のいずれかの方法でデプロイできます。

  • 1 つのゾーン内: これはデフォルトのデプロイ方法です。ほとんどの場合、重要ではないワークロードを処理するために使用されます。

  • 2 つのゾーンにまたがる: このデプロイ方法は、ゾーンをまたがるディザスタリカバリを実装します。ほとんどの場合、本番ワークロードを処理するために使用されます。

  • 3 つのゾーンにまたがる: このデプロイ方法は、高可用性を実装します。サービス可用性の要件が高い本番ワークロードを処理するには、このデプロイ方法を使用することをお勧めします。

マルチゾーン Elasticsearch クラスタのデプロイ

操作

Alibaba Cloud Elasticsearch クラスタを購入する際に、クラスタのゾーン数を選択できます。2 つまたは 3 つのゾーンを選択すると、システムはこれらのゾーンにまたがってクラスタをデプロイします。各ゾーンを選択する必要はありません。システムは、クラスタをデプロイするゾーンを自動的に選択します。詳細については、「Alibaba Cloud Elasticsearch クラスタを作成する」および 購入ページのパラメータ をご参照ください。

重要

ゾーンをまたがってクラスタをデプロイすることを選択した場合、Elasticsearch コンソールには、クライアントからのネットワークトラフィックを受信するノードがデプロイされているゾーン (杭州ゾーン I など) のみが表示されます。システムは、十分な ECS インスタンスを持つゾーン (杭州ゾーン H や杭州ゾーン J など) にクラスタをデプロイします。

注意事項

カテゴリ

注意事項

ノード

  • 3 つの専用マスターノードを購入する必要があります。

  • データノード、ウォームノード、およびクライアントノードの数は、ゾーン数の倍数である必要があります。ゾーンの詳細については、リージョンとゾーン をご参照ください。

  • 2 つのゾーンにまたがってクラスタをデプロイすることを選択した場合、Alibaba Cloud Elasticsearch は次のいずれかの方法を使用してクラスタをデプロイします。

    • 現在のリージョンに少なくとも 3 つのゾーンがあり、これらのすべてのゾーンに十分な ECS インスタンスがある場合、クラスタの専用マスターノードは 3 つのゾーンにデプロイされます。この場合、1 つのゾーンのノードに障害が発生しても、クラスタは引き続き専用マスターノードを選択できます。

    • 現在のリージョンに 2 つのゾーンしかない場合、またはリージョン内の 2 つのゾーンにのみ十分な ECS インスタンスがある場合、専用マスターノードは 2 つのゾーンにデプロイされます。1 つの専用マスターノードのみを含むゾーンのノードに障害が発生した場合、クラスタは引き続き専用マスターノードを選択できます。2 つの専用マスターノードを含むゾーンのノードに障害が発生した場合は、Elasticsearch コンソールでスイッチオーバーを実行する必要があります。障害のあるノードが復旧するまで、クラスタへの書き込み操作は実行できませんが、クラスタへの読み取り操作は引き続き実行できます。

      説明

      重要な本番ビジネスの場合、1 つまたは 2 つのゾーンしかないリージョンを選択しないことをお勧めします。

インデックスのレプリカシャード

  • Elasticsearch クラスタが 2 つのゾーンにまたがってデプロイされ、1 つのゾーンが使用できなくなった場合、もう 1 つのゾーンがサービスを提供するために使用されます。したがって、インデックスの各プライマリシャードに少なくとも 1 つのレプリカシャードを構成する必要があります。

    デフォルトでは、インデックスの各プライマリシャードに 1 つのレプリカシャードが構成されています。読み取りパフォーマンスに関する特定の要件がない場合は、デフォルト設定を使用できます。

  • Elasticsearch クラスタが 3 つのゾーンにまたがってデプロイされ、1 つまたは 2 つのゾーンが使用できなくなった場合、残りのゾーンがサービスを提供するために使用されます。したがって、インデックスの各プライマリシャードに少なくとも 2 つのレプリカシャードを構成する必要があります。

    デフォルトでは、インデックスの各プライマリシャードに 1 つのレプリカシャードが構成されています。したがって、インデックステンプレートのレプリカシャードの数を変更する必要があります。詳細については、「インデックステンプレート」をご参照ください。次のサンプルコードは、インデックステンプレートのレプリカシャードの数を 2 に変更する方法の例を示しています。

    PUT _template/template_1
    {
      "template": "*",
      "settings": {
        "number_of_replicas": 2
      }
    }                                
説明

レプリカシャードが構成されていないインデックスがクラスタに含まれている場合、ゾーンのスイッチオーバーまたはリカバリを実行すると、データが失われる可能性があります。クラスタ内のインデックスが上記の推奨事項に基づいて構成されていることを確認し、クラスタで定期的な O&M とトラブルシューティングを実行してください。

構成の説明

クラスタのデプロイ中に、システムはクラスタのシャード割り当て認識を自動的に有効にします。詳細については、「シャード割り当て認識」をご参照ください。次の表は、 cn-hangzhou-f ゾーンと cn-hangzhou-g ゾーンにまたがってデプロイされた Elasticsearch クラスタに構成されているパラメータを示しています。

パラメータ

説明

cluster.routing.allocation.awareness.attributes

重要

Elasticsearch API 操作を呼び出してこのパラメータの値を変更しないでください。そうしないと、例外が発生する可能性があります。

クラスタのシャード割り当て認識を有効にするために使用されるノード属性を指定します。システムは、マルチゾーンクラスタのノードの開始パラメータに Enode.attr.zone_id パラメータを追加して、ノードのゾーンを識別します。たとえば、マルチゾーンクラスタのノードが cn-hangzhou-g ゾーンにデプロイされているとします。この場合、システムはノードの起動パラメータに -Enode.attr.zone_id=cn-hangzhou-g を追加します。したがって、 cluster.routing.allocation.awareness.attributes パラメータの固定値は zone_id です。

zone_id

cluster.routing.allocation.awareness.force.zone_id.values

シャード割り当ての強制認識を有効にするかどうかを指定します。強制認識は、他のゾーンが使用できなくなったときにゾーンが過負荷になるのを防ぎます。たとえば、 cn-hangzhou-f ゾーンと cn-hangzhou-g ゾーンにまたがってデプロイされた Elasticsearch クラスタのインデックスに、1 つのプライマリシャードと 3 つのレプリカシャードがあるとします。シャード割り当て認識ポリシーに基づいて、システムは cn-hangzhou-f ゾーンと cn-hangzhou-g ゾーンのそれぞれに 2 つのシャードを割り当てます。cluster.routing.allocation.awareness.force.zone_id.values パラメータを構成し、 cn-hangzhou-f ゾーンが使用できなくなった場合、強制認識により、システムが cn-hangzhou-f ゾーンのシャードを cn-hangzhou-g ゾーンに再割り当てすることができなくなります。

説明

デフォルトでは、このパラメータは構成されていません。これは、シャード割り当ての強制認識が無効になっていることを示します。ビジネス要件に基づいてこのパラメータを構成できます。

["cn-hangzhou-f", "cn-hangzhou-g"]

スイッチオーバーとリカバリの実行

Elasticsearch クラスタがゾーンをまたがってデプロイされ、1 つのゾーンのノードに障害が発生した場合、そのゾーンのスイッチオーバーを実行できます。システムは、このゾーンからノードを削除し、クライアントから送信されたネットワークデータを、有効状態にある他のゾーンのノードのみに送信します。スイッチオーバーが実行されたゾーンの障害のあるノードが復旧した後、そのゾーンのリカバリを実行できます。システムは、スイッチオーバー中に削除されたノードをゾーンに追加し、クライアントから送信されたネットワークデータを、有効状態にあるすべてのゾーンのノードに送信します。

重要

スイッチオーバーの前に、クラスタ内のインデックスにレプリカシャードがあることを確認する必要があります。これにより、スイッチオーバー後もクラスタの読み取りおよび書き込み操作が正常に実行されます。

  1. Alibaba Cloud Elasticsearch コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[elasticsearch Clusters] をクリックします。

  3. 目的のクラスタに移動します。

    1. 上部のナビゲーションバーで、クラスタが属するリソースグループと、クラスタが存在するリージョンを選択します。

    2. [elasticsearch Clusters] ページで、クラスタを見つけて ID をクリックします。

  4. クラスタの [ノードの視覚化][基本情報] ページの セクションで、スイッチオーバーを実行します。

    1. スイッチオーバーを実行する必要があるゾーンにポインタを移動し、[スイッチオーバー] をクリックします。

      image

    2. [操作の確認] メッセージで、[続行] をクリックします。

      その後、システムはクラスタを再起動してスイッチオーバーを有効にします。スイッチオーバーが成功すると、ゾーンの状態が「有効」から「無効」に変わります。

      説明
      • スイッチオーバーを実行すると、システムは対応する数のノード (専用マスターノード、クライアントノード、データノードなど) を、有効状態にある残りのゾーンに自動的に追加します。これにより、Elasticsearch クラスタに十分な計算リソースが確保されます。ただし、基盤となるリソースの在庫やスケジューリングの同時実行制限などのさまざまな要因により、ゾーンへのノードの追加の成功率は保証できません。

      • スイッチオーバー後、計算リソースとクラスタが処理できる最大ワークロードが削減されます。障害がクラスタに与える影響を軽減するには、障害が発生したときに、できるだけ早くクラスタの使用率を制御し、速度制限などの操作を実行する必要があります。

    スイッチオーバーを実行する前にインデックスにレプリカシャードがある場合、スイッチオーバー後にクラスタのステータスが異常 (黄色で表示) になります。この場合、スイッチオーバーが完了した後、Kibana コンソールにログイン し、次のコマンドを参照してクラスタのパラメータを構成できます。この操作は、スイッチオーバーが実行されたゾーンのシャードを残りのゾーンに割り当てるために使用されます。シャードが割り当てられると、クラスタのステータスは正常 (緑色で表示) になります。

    PUT /_cluster/settings
    {
        "persistent" : {
            "cluster.routing.allocation.awareness.force.zone_id.values" : {"0": null, "1": null, "2": null}
        }
    }
  5. [ノードの視覚化] セクションで、スイッチオーバーが実行されたゾーンをリカバリします。

    1. ゾーンにポインタを移動し、[スイッチバック] をクリックします。

    2. [操作の確認] メッセージで、[続行] をクリックします。

      その後、システムは Elasticsearch クラスタを再起動してリカバリを有効にします。リカバリが成功すると、ゾーンの状態が「無効」から「有効」に変わります。

      説明

      ゾーンをリカバリすると、システムはスイッチオーバー中に追加されたノード (など) を削除します。さらに、システムは削除されたデータノードに格納されているデータを他のデータノードに移行します。