Skip to content

EMQX Enterprise ローリングアップグレード

クラスター展開において、EMQX ノードはダウンタイムなしで順次アップグレードすることが可能です。この手法をローリングアップグレードと呼びます。クライアントのセッション移行をスムーズに行うために、EMQX Enterprise のクラスターリバランシング機能を利用して、アップグレード前にノードからクライアントを退避させることができます。クラスターリバランシングの詳細はこちらをご参照ください。

EMQX 5.9 以降へのアップグレードに関する重要なお知らせ

バージョン 5.9.0 以降、EMQX Enterprise は従来のオープンソース版とエンタープライズ版の分離モデルに代わり、Business Source License (BSL) 1.1 のもとでリリースされています。

TIP

ライセンス変更の詳細については、EMQX ライセンス FAQをご覧ください。

EMQX のアップグレード手順(バイナリの置き換えなど)は従来とほぼ同様ですが、バージョン 5.9.0 では特にクラスター展開に関して重要なライセンス変更が導入されています。5.9 より前のオープンソース版からのアップグレードや、単一ノード展開からクラスター展開への移行を行う場合は、以下の重要な変更点にご注意ください。

  1. 新しいライセンスモデル: EMQX 5.9.0 以降はデフォルトで EMQX Community License が適用されます。このデフォルトライセンスはすべての機能を有効にしますが、単一ノードでの展開に制限されます。
  2. クラスター機能の制限: 従来のオープンソース版ではクラスター機能がサポートされていましたが、新モデルでは EMQX 5.9.0 以降、デフォルトでクラスターは許可されていません。クラスター展開を維持したい場合は、商用ライセンスの取得が必要です。
  3. ライセンス設定の必須化: アップグレード時にクラスター内で EMQX 5.9.0 以降のノードを起動する前に、各ノードに対してこの商用ライセンスを設定する必要があります。ライセンスが設定されていない、または誤って設定されている場合、ノードはクラスター内で正常に動作しません。

TIP

emqx.conf にライセンス設定を追加した場合、ダッシュボード、HTTP API、CLI からのランタイム設定変更はノード再起動後に失われます。これは起動時に emqx.conf と環境変数が設定読み込みの最優先となるためです。

ローリングアップグレードの実施方法

クラスター内の各ノードをダウンタイムなしでアップグレードするには、以下の手順に従ってください。

  1. クラスターリバランシングを使ってノードからクライアントを退避させる(任意)
  2. 旧バージョンのノードを停止する
  3. ノードの設定ファイルおよびデータディレクトリをバックアップする
  4. 新バージョンの EMQX をインストールする
  5. 新バージョンのノードを起動する

注意

ローリングアップグレード中にクラスター全体の設定変更は行わないでください。ダッシュボード、HTTP API、CLI からの設定変更はクラスター内の全ノードに適用されます。アップグレード中に設定変更を行うとノード間で設定の不整合が発生する恐れがあります。

RPM および DEB パッケージでのアップグレード

RPM または DEB パッケージを使用している場合は、新しいバージョンのパッケージをインストールするだけでアップグレードが可能です。

Docker でのアップグレード

Docker を使用している場合は、新しいバージョンのイメージをプルし、コンテナを再起動するだけでアップグレードが可能です。

オープンソース版からエンタープライズ版へのアップグレード

オープンソース版の EMQX を使用していてエンタープライズ版にアップグレードする場合、アップグレード手順はオープンソース版の新バージョンへのアップグレードと同じです。

EMQX のオープンソース版とエンタープライズ版のインストールおよびアップグレードに違いはありません。唯一の違いは、アップグレード後にエンタープライズ版ノードで手動でライセンスを設定する必要がある点です。すべてのノードがアップグレードされる前にクラスター全体にライセンスキーを適用することはできません。

例として、etc/base.hocon(アップグレード対象バージョンが e5.8.5 より前の場合は etc/emqx.conf)に以下の行を追加します。

license.key = "your license"

注意

emqx.conf にライセンス設定を追加した場合、ダッシュボード、HTTP API、CLI からのランタイム設定変更はノード再起動後に失われます。これは起動時に emqx.conf と環境変数が設定読み込みの最優先となるためです。