NGINX.COM
Web Server Load Balancing with NGINX Plus

NGINX Plusをアクティブ/パッシブまたはアクティブ/アクティブの高可用性(HA)クラスターに構成することで、アプリケーションの可用性を保証できます。アクティブ/パッシブのHAクラスターでは、2台のNGINX Plusサーバーが使用されます。1台目のプライマリがアクティブにトラフィックを処理し、2台目のバックアップはプライマリの状態を監視し、現在のプライマリに障害が発生した場合に自動的にプライマリとなって処理を引き継ぎます。アクティブ/アクティブのHAクラスターでは、両方のサーバーがトラフィックを処理します。アクティブ/アクティブ/アクティブなどのN+1構成もサポートしています。

NGINX Plusのアクティブ/パッシブのHAクラスターは、VRRPを使用して浮動仮想IPアドレスを管理することで、IPアドレスが常に利用可能でトラフィックがドロップすることがないようにします。

自動フェイルオーバーによるクラスターでのHAに加えて、NGINX Plusは、構成の同期をサポートしているため、クラスター内の1つのNGINX Plusサーバーで作成した構成を他のサーバーに反映させることができます。状態の共有もサポートしているため、スティッキーラーニングのセッションパーシステンス、レート制限、key‑valueストアなどの状態の情報を利用する機能もクラスター環境で正しく動作します。

WebアプリケーションのためのHAアーキテクチャー

NGINX Plusの高度なロードバランシングアプリケーションヘルスモニタリングの機能は、上流のアプリケーションサーバーに耐障害性とスケーラビリティを提供します。NGINX PlusをHAクラスターに構成することで、アプリケーションの耐障害性を引き上げ、アプリケーションスタックの単一障害点を排除できます。NGINX Plusのあるサーバーがトラフィックを処理できなくなると、別のサーバーが処理を引き継ぎます。

構成を拡張して複数のアクティブ/パッシブNGINX Plusインスタンスをサポートすることで、より高レベルの冗長性を保証したり、アクティブ/パッシブの単一ペアを上回るスループットを実現したりできます。

HAソリューションの仕組み

NGINX Plusのアクティブ/パッシブのHAソリューションのベースとなるkeepalivedは、VRRP(Virtual Router Redundancy Protocol)の実装を使用します。nginx-ha-keepalivedパッケージをインストールしてkeepalivedを構成すると、クラスター内のそれぞれのNGINX Plusサーバーで個別のプロセスとしてkeepalivedが動作し、共有仮想IPアドレスを管理します。仮想IPアドレスとは、例えば、利用するサービスやアプリケーションのDNSレコード経由で下流のクライアントにアドバタイズされるIPアドレスです。

keepalivedが初期構成に基づいてプライマリを指定し、仮想IPアドレスをプライマリに割り当てます。プライマリは一定間隔でVRRPのアドバタイズメッセージをバックアップに送信することでバックアップが正常であることを確認し、keepalivedとNGINX Plusの両方が動作していることを確認します。バックアップが3回連続でアドバタイズメントを受信しないと、バックアップが新しいプライマリになって仮想IPアドレスを引き継ぎます。

HAソリューションのインストールと構成

NGINX PlusのHAを有効にするのは非常に簡単です。nginx-ha-keepalivedパッケージに実装されており、NGINX Plusリポジトリからインストールできます。例えば、DebianやUbuntuのシステムでは、以下のコマンドを使用します。

$ apt-get install nginx-ha-keepalived

HAクラスター内のそれぞれのNGINX Plusサーバーにパッケージをインストールし、付属するnginx-ha-setupスクリプトを実行してHAソフトウェアを構成し、実行します。詳細な手順については、「NGINX Plus管理者ガイド」を参照してください。

ハードウェア障害、オペレーティングシステムのシャットダウン、またはNGINX Plusソフトウェアの終了などの致命的な条件でプライマリNGINX Plusサーバーが動作しなくなると、HAフェイルオーバーが実行されます。内部ヘルスチェックを必要に応じて拡張し、多くの障害状況を識別するようにできます。

HAクラスターでの構成の同期

クラスター内のNGINX Plusサーバー間で構成を同期することができるため、サーバーを個別に管理する必要はありません。「プライマリ」に指定されたサーバーを変更し、その変更をクラスター内の他のサーバーに送信するだけで同期が完了します。

これは、NGINX Plus R12で追加された機能で、NGINX Plusリポジトリから配布されるnginx-syncパッケージで実装されています。DebianやUbuntuのシステムでは、以下のコマンドを使用します。

$ apt-get install nginx-sync

詳細については、「NGINX Plus管理者ガイド」を参照してください。

HAクラスターでの状態の共有

クラスター内のNGINX Plusサーバーは、ゾーン同期モジュール(NGINX Plus R15で発表)の実装により、状態の情報を共有することができます。これにより、状態の維持がクラスター環境で正しく動作するようになります。NGINX Plusの以下の機能はクラスター対応です。

  • スティッキーラーニングのセッションパーシステンス
  • レート制限
  • key‑valueストア

詳細については、「NGINX Plus管理者ガイド」とzone_syncのドキュメントを参照してください。

クラウド環境でのNGINX PlusのHA

keepalivedベースのHAソリューションはNGINX Plusのオンプレミスデプロイメントでのみ動作しますが、クラウド環境向けの以下のHAソリューションを利用することもます。

参考資料

関連資料

高性能キャッシュ NGINX & NGINX Plusの活用

EBOOK

高性能キャッシュ NGINX & NGINX Plusの活用

NGINXとNGINX Plusを利用したウェブアプリケーション向け高性能キャッシングとキャッシュクラスタリングの実装

 
APIゲートウェイとしてのNGINX Plusのデプロイ

EBOOK

APIゲートウェイとしてのNGINX Plusのデプロイ

このEBOOKでは、NGINXネイティブ機能をAPIゲートウェイで使用するメリットについて詳しくご紹介します。ここでは、正しい環境の設定方法、APIゲートウェイの使用、セキュリティー保護、gRPCサービスの公開方法について順を追って説明します。

 
マイクロサービス リファレンス アーキテクチャ

EBOOK

マイクロサービス リファレンス アーキテクチャ

この無料EBOOKでは、NGINXのマイクロサービス リファレンス アーキテクチャに関して、どのようにマイクロサービスを接続、保護、拡張をしていくのか説明します。