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

Elasticsearch:クロス AZ デプロイメントとオペレーション

最終更新日:Aug 23, 2026

ビジネスで高可用性が求められる場合、単一ゾーンデプロイメントでは物理的なデータセンターの障害によってサービスが中断される可能性があります。クロス AZ デプロイメントは、Elasticsearch インスタンスのノードを、同一リージョン内の物理的に隔離された複数のアベイラビリティゾーンに分散させます。あるゾーンで障害が発生した場合でも、残りのゾーンにあるノードとデータレプリカを使用してクラスターは運用を継続し、データセンターレベルのディザスタリカバリを提供します。

仕組み

クロス AZ デプロイメントは、Elasticsearch 組み込みのシャードアロケーションアウェアネスメカニズムを使用します。

クロス AZ インスタンスを作成すると、システムは各ゾーンのノードに自動的に zone_id 属性を追加し、cluster.routing.allocation.awareness.attributes: zone_id を設定します。これにより、Elasticsearch はシャード割り当て時にゾーンの配置を考慮するようになります。

これにより、プライマリシャードとレプリカシャードが異なるゾーンに分散されることが保証されます。あるゾーンで障害が発生しても、他のゾーンのレプリカからデータにアクセスできます。

デプロイメントモードの選択

可用性の要件と予算に基づいてデプロイメントモードを選択してください。

デプロイメントモード

アーキテクチャ

ディザスタリカバリ

ユースケース

単一アベイラビリティゾーン

すべてのノードを単一ゾーンに配置。

ゾーン障害により、完全なサービス停止が発生します。

開発、テスト、またはその他の重要でないサービス。

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

ノードを 2 つのゾーンに分散。

単一ゾーンの障害に耐えられます。

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

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

ノードを 3 つのゾーンに分散。

単一ゾーンの障害に耐えられます。

高可用性要件が厳しいコア本番サービス。

クロス AZ デプロイメントは、データの冗長性をレプリカに依存しているため、インデックスのレプリカ数を少なくとも 1 にする必要があります (number_of_replicas は 1 以上でなければなりません)。 例えば、2 つのアベイラビリティゾーンにまたがってデプロイされたインスタンスで、1 つのゾーンが利用できなくなった場合、残りのゾーンがサービスを提供し続ける必要があります。インデックスにレプリカが設定されていない場合、障害が発生したゾーンのプライマリシャードにはバックアップがなく、対応するデータは利用できなくなります。

クロス AZ インスタンスの作成

  1. Alibaba Cloud Elasticsearch インスタンスの作成」ページに移動してください。

  2. デプロイモード セクションで、2 つまたは 3 つのアベイラビリティゾーンを選択してください。

    • ノード数:データノード、コールドデータノード、または調整ノードの数は、選択したゾーン数の倍数である必要があります。

    • 専用マスターノード:マルチ AZ の安定性のために、3 つの専用マスターノードが必要です。

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

単一 AZ からマルチ 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 つのデータノードを持つ単一 AZ インスタンスを 3 つの AZ にアップグレードすると、データノードが 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. [データ移行サービス契約] のチェックボックスを選択し、OK をクリックしてください。

      • 確認後、クラスターは再起動し、短時間のパフォーマンス変動が発生する可能性があります。システムはまずターゲットゾーンに新しいマスターノードをプロビジョニングするため、古いゾーンと新しいゾーンが一時的に共存します。

      • 移行が完了すると、クラスターは正常な状態に戻ります。表示の遅延により、コンソールに一時的に古いゾーンが表示されることがありますが、操作には影響しません。ノードの IP アドレスは変更されます。

アベイラビリティゾーンのフェールオーバーの実行 (フェールオーバーと復旧)

ゾーンで障害が発生した場合、フェールオーバーを実行してトラフィックを正常な残りのゾーンにリダイレクトします。障害が発生したゾーンが復旧したら、それを復旧させてクラスターに戻します。

フェールオーバー (障害が発生したゾーンの隔離)

  1. インスタンスのノード可視化エリアで、隔離したいアベイラビリティゾーンにカーソルを合わせ、スイッチオーバー をクリックしてください。

  2. 表示されたダイアログボックスで、OK をクリックしてください。

    重要

    フェールオーバーは、指定されたゾーン内のすべてのノードを隔離します。その後、サービスリクエストは残りのゾーンのノードによって処理されます。システムはそれらのゾーンに対応する数のリソースをプロビジョニングしようと試みますが、リソースの在庫やスケジューリングの制約により、成功は保証されません。クラスターの負荷に基づいてトラフィック制限措置を実装してください。

    レプリカが設定されているにもかかわらず、フェールオーバー後にクラスターステータスが yellow になった場合は、Kibana で次のコマンドを実行してシャード割り当てポリシーを上書きし、残りのゾーンに強制的に再割り当てしてください:

    PUT /_cluster/settings
    {
        "persistent" : {
            "cluster.routing.allocation.awareness.force.zone_id.values" : "<healthy-zone-1>,<healthy-zone-2>"
        }
    }

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

復旧 (ゾーンをクラスターに戻す)

  1. 障害が発生したアベイラビリティゾーンが正常に戻ったことを確認した後、インスタンスのノード可視化エリアで、オフラインのアベイラビリティゾーンにカーソルを合わせ、スイッチバック をクリックしてください。

  2. 表示されたダイアログボックスで、OK をクリックしてください。クラスターが再起動します。復旧後、一時的に追加されたフェールオーバーノードは削除され、クラスターは元のアーキテクチャに戻ります。