
NGINX Plus HA構成のご紹介
はじめに
NGINXは色々な用途(Webサーバ/リバースプロキシ/ロードバランサー等)で広く利用されています。どの用途においても、障害等によりNGINXの提供する機能が停止した場合、サービスに少なからず影響が出るかと思います。サービスの可用性を高める観点において、NGINXでもHA構成を組むことは重要となります。
NGINX Plusでは、F5社より提供されているモジュールを用いることで、対話形式で簡単にHA構成の実装が可能となっております。本ブログでは、NGINX PlusのHA構成についてご紹介させていただければと思います。
NGINX/NGINX Plusの概要につきましては、公開済みのブログ(NGINXとは? ~多様な用途に活用できるソフトウェアWebサーバ~)で紹介していますので、ご覧ください。
NGINX PlusのHA構成
NGINX Plusでは、F5社より提供されているモジュール(nginx-ha-keepalived)をインストールすることで、対話形式で簡単にHA構成を実装でき、VRRPによってフェールオーバーを実現しています。
NGINX Plusで構成可能なHA構成は以下の2つです。
ACTIVE / BACKUP 構成

図1:ACTIVE / BACKUP 構成イメージ図
クライアントからの通信は、設定した1つのVIP宛てに対して行われ、ACTIVE側のNGINX Plusノードが後続のバックエンドに通信を振り分けます。BACKUP側のNGINX Plusノードは、障害時のフェールオーバー用として待機している状態となります。
ACTIVE / ACTIVE 構成

図2:ACTIVE / ACTIVE 構成イメージ図
クライアントからの通信は、設定した複数のVIP宛てに対して行われ、各VIPに紐づいたNGINX Plusノードが後続のバックエンドに通信を振り分けます。
※NGINX Plusの上位(前段)のLB等で対象VIPへの振り分けが必要
NGINX Plusノードがダウンした場合、ダウンしたノードに紐づいていたVIPへの通信は、ダウンしていないNGINX Plusノードに対して送られ、後続のバックエンドに通信を振り分けます。
NGINX PlusのHA構成に関しましては、以下ドキュメントよりご確認ください。
■メーカードキュメント
HA(ACTIVE / BACKUP)
High Availability Support for NGINX Plus in On-Premises DeploymentsHA(ACTIVE / ACTIVE)
Configuring Active-Active High Availability and Additional Passive Nodes with keepalived
■弊社作成の日本語セットアップガイド
弊社ではメーカサイトを基に日本語のセットアップガイドを作成しております。
「NGINX Plus セットアップガイド HA編」では、HA構成の構築 及び 設定の同期を実施するための手順をまとめております。
以下リンクより該当資料のお申し込みが可能となりますので、お気軽にお申し込みください。
各HA構成の特徴
各構成の特徴を比較した一覧を以下に記載します。
特徴 | ACTIVE / BACKUP | ACTIVE / ACTIVE |
通信処理を行うノード数 | 1台 | 複数台 |
VIP数 | 1つ | 複数 |
構成管理 | 容易 | 複雑 |
スケーラビリティ | 低い | 高い |
ACTIVE / BACKUP構成では、通信処理を行うノード数・VIP数が1つという点から、構成管理が容易といえるでしょう。ACTIVE / ACTIVE構成では、ACTIVE / BACKUP構成よりも構成が複雑となる反面、ノード数を追加し処理能力を上げることが可能といった、スケーラビリティが高い点が利点として挙げられます。
NGINX Plusの設定同期
NGINX Plusでは、nginx-syncモジュールを用いて、NGINX Plusの設定同期を容易に行うことが可能です。nginx-syncは、Primaryノードの設定をPeerノードに同期するためのツールであり、複数のPeerノードに対して設定を同期させることが可能です。また、同期させたいファイルやディレクトリをユーザ側が明示的に指定することも可能となっております。

図3:設定同期イメージ図
※Primary - Peerノード間でrootユーザでのSSH鍵認証の設定が必要である点はご注意ください。
NGINX Plusの設定同期に関しましては、以下ドキュメントよりご確認ください。
■メーカードキュメント
ランタイム情報の共有
NGINX Plusでzone同期構成を実装することで、各NGINX Plusにおいてランタイム情報(パーシステンス等)の共有が可能となります。これにより、複数のNGINX Plus間でセッション情報を共有することができるため、HA構成において、ActiveなNGINX Plusノードがダウンした際にも、継続して同じバックエンドに対し、通信を行うことが可能となります。
NGINX Plusのランタイム情報の共有に関しましては、以下ドキュメントよりご確認ください。
■メーカードキュメント
Runtime State Sharing in a Cluster
おわりに
今回は、NGINX PlusのHA構成について、ご紹介させていただきました。F5社が提供するモジュール(nginx-ha-keepalived、nginx-sync)を用いるため、対話形式で簡単にHA構成を実装でき、運用面においてもHAステータスの切り替えや設定の同期等が簡易に行える点が良いところかと思います。
また、NGINX PlusにてHAを設定する手順については、弊社にて作成した日本語のセットアップガイドもご用意がございます。ご興味がございましたら以下の資料ダウンロードリンクまたは、以下サイトより、お気軽に弊社までお問い合わせください。