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

Elasticsearch:マルチ AZ 配置と運用

最終更新日:Apr 21, 2026

高可用性が求められるアプリケーションでは、単一アベイラビリティゾーン配置は、物理データセンターの障害によるサービス中断に対して脆弱です。マルチ AZ 配置は、単一の Elasticsearch インスタンスのノードを同一リージョン内の複数の物理的に隔離されたアベイラビリティゾーン (データセンター) に分散させることで、フォールトトレランスを強化します。この設定により、データセンターレベルのディザスタリカバリが提供されます。1 つのアベイラビリティゾーンが利用できなくなった場合でも、他のゾーンのノードとデータレプリカを使用してクラスターは運用を継続し、業務継続性を確保します。

仕組み

マルチ AZ 配置では、Elasticsearch に組み込まれている シャードアロケーションアウェアネス メカニズムを利用します。

マルチ AZ インスタンスを作成すると、システムは異なるアベイラビリティゾーンのノードに自動的に zone_id 属性を追加します。また、クラスターには cluster.routing.allocation.awareness.attributes: zone_id が設定され、シャードアロケーション時にこのノード属性を考慮するよう Elasticsearch に指示します。

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

デプロイモード

アプリケーションの可用性要件と予算に最も適したデプロイモードを選択してください。

デプロイモード

アーキテクチャ

ディザスタリカバリ

ユースケース

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

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

アベイラビリティゾーンで障害が発生すると、完全なサービス停止を引き起こします。

開発、テスト、またはその他の非クリティカルなサービス。

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

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

単一のアベイラビリティゾーンで障害が発生しても、サービスは利用可能な状態を維持します。

高可用性要件を持つ本番環境。

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

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

単一のアベイラビリティゾーンで障害が発生しても、サービスは利用可能な状態を維持します。

厳格な高可用性要件を持つコア本番サービス。

マルチ AZ インスタンスの作成

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

  2. デプロイモード セクションで、2つまたは3つの可用性ゾーンを選択します。

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

    • 専用マスターノード:マルチ AZ アーキテクチャの安定性を確保するために、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 つのデータノードを持つ単一 AZ インスタンスを 3 つの AZ 配置にスペックアップする場合、システムは自動的に 1 つのデータノードを追加し、合計を 3 つにします。これにより、各アベイラビリティゾーンに 1 つのデータノードが割り当てられることが保証されます。

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

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

重要

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

  1. 移行の前に、以下の条件が満たされていることを確認してください:

    • GET _cluster/health を実行して、クラスターのステータスが GREEN であることを確認します。クラスターのステータスが正常でない場合は、「クラスター変更エラー:クラスターのステータスが異常です」でソリューションをご参照ください。

    • GET /_cat/indices?v を実行して、CLOSE 状態のインデックスがないか確認します。存在する場合は、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 をクリックします。

    重要

    アベイラビリティゾーンのフェールオーバーは、指定されたアベイラビリティゾーン内のすべてのノードを隔離します。フェールオーバー後、サービスリクエストは残りのアベイラビリティゾーンのノードのみによって処理されます。システムは、補うために残りのゾーンに対応する数のリソースをプロビジョニングしようとします。ただし、基盤となるリソース在庫やスケジューリングの同時実行数などの要因により、成功は保証されません。クラスターの負荷に基づいて、サービスにトラフィック制限措置を実装することを推奨します。

    フェールオーバー前にインデックスにレプリカが設定されていたにもかかわらず、フェールオーバー完了後にクラスターのステータスが黄色 (異常) になった場合は、Kibana 接続を介して次のコマンドを実行し、シャードアロケーションポリシーを一時的にオーバーライドできます。これにより、障害が発生したアベイラビリティゾーンのシャードが残りのゾーンに再割り当てされます:

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

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

復元

  1. 失敗した可用性ゾーンが正常に戻ったことを確認したら、インスタンスのノード可視化エリアで、オフラインの可用性ゾーンにポインターを合わせ、スイッチバック をクリックします。

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