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

Elasticsearch:クロスゾーンデプロイと操作

最終更新日:Apr 11, 2026

高可用性を必要とするアプリケーションにとって、シングルゾーンデプロイは単一障害点となります。物理データセンターで障害が発生すると、完全なサービス中断を引き起こす可能性があるためです。クロスゾーンデプロイでは、Alibaba Cloud Elasticsearch インスタンスのノードを、同一リージョン内の物理的に隔離された複数のアベイラビリティゾーンに分散させることで、信頼性を向上させます。このアーキテクチャは、データセンターレベルのディザスタリカバリを提供します。1 つのアベイラビリティゾーンで障害が発生しても、他のゾーンにあるノードとレプリカシャードを使用してクラスターは稼働し続け、業務継続性を確保します。

仕組み

クロスゾーンデプロイは、Elasticsearch に組み込まれている シャードアロケーションアウェアネス機能を利用します。

マルチアベイラビリティゾーンインスタンスを作成すると、システムは異なるアベイラビリティゾーンにデプロイされたノードに zone_id という名前のプロパティを自動的に追加し、クラスターに cluster.routing.allocation.awareness.attributes: zone_id を設定して、シャードを割り当てる際にこのノードプロパティを考慮するよう Elasticsearch に指示します。

このメカニズムにより、インデックスのプライマリシャードとレプリカシャードが異なるアベイラビリティゾーンに分散されます。アベイラビリティゾーン全体で障害が発生した場合でも、そのシャードのコピーが他のゾーンに存在するため、データの冗長性とサービスの可用性が確保されます。

デプロイモード

可用性の要件と予算に合わせてデプロイモードを選択してください。

デプロイモード

アーキテクチャ

ディザスタリカバリ

利用シーン

シングルアベイラビリティゾーン

すべてのノードが単一のアベイラビリティゾーンに配置されます。

アベイラビリティゾーンで障害が発生すると、完全なサービス停止につながります。

開発やテストなど、重要度の低いワークロード。

2 アベイラビリティゾーン

ノードが 2 つのアベイラビリティゾーンに分散されます。

1 つのアベイラビリティゾーンで障害が発生しても、サービスは継続します。

高可用性が求められる本番環境。

3 アベイラビリティゾーン

ノードが 3 つのアベイラビリティゾーンに分散されます。

1 つのアベイラビリティゾーンで障害が発生しても、サービスは継続します。

非常に高い可用性が求められるコア本番アプリケーション。

クロスゾーンインスタンスの作成

  1. Alibaba Cloud Elasticsearch インスタンスを作成する ページに移動します。

  2. [アベイラビリティゾーンの数] セクションで、2 つまたは 3 つのアベイラビリティゾーンを選択します。

    • ノード数の制約:均等な分散を確保するため、データノード、コールドデータノード、またはコーディネーティングノードの数は、選択したアベイラビリティゾーン数の倍数である必要があります。

    • 専用マスターノード:マルチゾーンアーキテクチャの安定性を確保するために、3 つの専用マスターノードを購入する必要があります。

    コンソールで選択したアベイラビリティゾーン (例:ゾーン A) は、クラスターのプライマリアクセスポイントとして機能します。システムは、リアルタイムのリソース可用性に基づいて、指定された数のアベイラビリティゾーンにノードを自動的かつ均等に分散させます。例えば、2 つのアベイラビリティゾーンを選択した場合、システムはゾーン A とゾーン B にノードをデプロイすることがあります。

マルチ AZ デプロイへのアップグレード (V3 クラスターのみ)

  1. アップグレードする前に、次の条件を確認してください:

    • GET _cluster/health を実行して、クラスターのヘルスステータスが GREEN であることを確認します。クラスターが正常でない場合は、「クラスター変更エラー:クラスターのヘルスステータスが異常」をご参照の上、問題を解決してください。

    • クライアント接続の分散を最適化します。長時間接続を単一のアベイラビリティゾーンに集中させると、そのゾーンのノードのリソースが枯渇し、他のゾーンのノードがアイドル状態になる可能性があります。接続有効期間の設定、クライアントのバッチ再起動、または独立したコーディネーティングノードの使用により、接続の分散を最適化できます。詳細については、「クラスター負荷の偏りの分析と解決策」をご参照ください。

    • GET _cluster/settings を実行し、出力に "cluster.routing.allocation.enable": "all" が含まれていることを確認します。これにより、Elasticsearch はシャードを自動的に割り当てることができます。設定が異なる場合は、次のコマンドを実行して自動シャードアロケーションを有効にしてください。

      PUT _cluster/settings  
      {  
        "transient": {  
          "cluster.routing.allocation.enable": "all"  
        }  
      }  
  2. インスタンスリストページで、[アップグレード]をクリックします。

    または、[基本情報] ページに移動し、[設定変更] > [クラスターのアップグレード] をクリックします。

  3. 構成ページで、[可用性ゾーンの数] エリアで、2 つまたは 3 つの可用性ゾーンを選択し、支払いを完了します。

    • アップグレード中に、システムは自動的に専用マスターノードを有効にし (まだ有効になっていない場合)、選択したアベイラビリティゾーン数に対する均等な分散要件を満たすためにデータノードを追加することがあります。これらの新しいノードには追加料金が発生します。詳細については、ご利用の請求書をご参照ください。

    • 例えば、2 つのデータノードを持つシングルゾーンインスタンスを 3 ゾーンデプロイにアップグレードする場合、システムは自動的に 1 つのデータノードを追加します。これにより、合計が 3 つになり、各アベイラビリティゾーンに 1 つのデータノードを割り当てることができます。

アベイラビリティゾーンの移行

クラスターをアップグレードする必要があるものの、現在のアベイラビリティゾーンにリソースが不足している場合、アップグレードを実行する前に、十分なリソースがある新しいアベイラビリティゾーンにノードを移行できます。

重要

アベイラビリティゾーンを移行すると、クラスターの再起動がトリガーされます。再起動中もクラスターは利用可能ですが、サービスが不安定になる可能性があります。この操作はオフピーク時間帯に実行してください。

  1. 移行する前に、次の条件を確認してください:

    • GET _cluster/health を実行して、クラスターのヘルスステータスが GREEN であることを確認します。クラスターが正常でない場合は、「クラスター変更エラー:クラスターのヘルスステータスが異常」をご参照の上、問題を解決してください。

    • GET /_cat/indices?v を実行して、クローズされたインデックスがないか確認します。クローズされたインデックスがある場合は、POST /<index_name>/_open を実行して一時的に開く必要があります。そうしないと、インデックスがクローズされているためにクラスターのヘルスステータスが GREEN にならず、アップグレードが失敗する可能性があります。

    • GET _cluster/settings を実行し、出力に "cluster.routing.allocation.enable": "all" が含まれていることを確認します。これにより、Elasticsearch はシャードを自動的に割り当てることができます。設定が異なる場合は、次のコマンドを実行して自動シャードアロケーションを有効にしてください。

      PUT _cluster/settings  
      {  
        "transient": {  
          "cluster.routing.allocation.enable": "all"  
        }  
      }  
  2. 移行を実行します:

    1. ターゲットインスタンスの[基本情報]ページに移動します。ノード可視化エリアで、移行する可用性ゾーンにカーソルを合わせ、[移行]をクリックします。

    2. 表示されるダイアログボックスで、移行先のアベイラビリティゾーンと vSwitch を選択します。一度に移行できるアベイラビリティゾーンは 1 つだけです。

    3. データ移行サービス契約に同意し、[確認] をクリックします。

      • 確認後、クラスターが再起動します。このプロセス中に、一時的なパフォーマンスの変動が発生する可能性があります。システムはまず移行先のアベイラビリティゾーンに新しいマスターノードをプロビジョニングするため、古いアベイラビリティゾーンと新しいアベイラビリティゾーンが一時的に共存します。

      • 移行が完了すると、クラスターは正常な状態に戻ります。ただし、表示の遅延により、コンソール (インスタンス情報ページまたは設定ページ) には古いアベイラビリティゾーンがまだ表示されている場合があります。これは、新しいアベイラビリティゾーンでのクラスターの動作には影響しません。ノードの IP アドレスは変更されることに注意してください。

アベイラビリティゾーンのフェールオーバーとリカバリ

障害が発生したアベイラビリティゾーンを検出した場合、フェールオーバーを実行してクライアントトラフィックを他のゾーンにリダイレクトできます。障害が発生したゾーンが復旧した後、そのゾーンをリカバリしてクラスターに再参加させることができます。

フェールオーバー (障害ゾーンの隔離)

  1. インスタンスのノード可視化エリアで、隔離する可用性ゾーンにマウスポインターを合わせ、[フェイルオーバー] をクリックします。

  2. 表示されるダイアログボックスで、[確認] をクリックします。

    重要

    アベイラビリティゾーンのフェールオーバーは、影響を受けるゾーン内のすべてのノードを隔離します。フェールオーバー後、リクエストは残りのゾーンのノードのみによって処理されます。システムは、補うために残りのゾーンに追加のリソースをプロビジョニングしようとしますが、リソースの可用性やスケジューリングの同時実行数などの要因により、成功は保証されません。必要に応じて、クラスターの負荷を監視し、トラフィックスロットリング対策を実施してください。

    フェールオーバー前にインデックスにレプリカが設定されていたにもかかわらず、フェールオーバー後にクラスターのステータスが YELLOW (異常) になった場合は、Kibana を通じてクラスターに接続し、次のコマンドを実行できます。これにより、障害が発生したゾーンから残りのゾーンへのシャードの再割り当てが強制されます。

    PUT /_cluster/settings
    {
        "persistent" : {
            "cluster.routing.allocation.awareness.force.zone_id.values" : {"0": null, "1": null, "2": null}
        }
    }

    シャードが再割り当てされると、クラスターのヘルスステータスは GREEN に戻ります。

リカバリ (ゾーンの再参加)

  1. 失敗した可用性ゾーンが回復したことを確認した後、ノード可視化エリアでオフラインゾーンにマウスカーソルを合わせ、[回復] をクリックします。

  2. 表示されるダイアログボックスで、[確認] をクリックします。クラスターが再起動します。回復後、フェールオーバープロセス中に追加された一時ノードは削除され、クラスターアーキテクチャは元の状態に戻ります。