NGW自治体向け文書管理グループウェア

NGW Linux版

2026年度、NGW は動作環境を Linux(Ubuntu)へ移しました。 アプリケーションはこれまでと同じものですが、サーバの作り方を全面的に見直しています。 ここでは、何がどう変わったのかをご説明します。

What changed

Linux版で変わったこと

  1. サーバを2台1組に

    NGWメインとNGWクローンの2台構成にします。片方が故障しても、手順に沿って業務を継続できます。

  2. 高度な排他制御

    500人規模で同時接続している場合でも、データベースの排他制御により正確な値を登録します。

  3. 表示が速くなった

    一覧や検索の重い処理を見直し、画面の表示速度を改善しています。

  4. バックアップを作り直した

    日次・週次の多世代バックアップを持ち、「取れているか」ではなく「戻せるか」で運用しています。

トランザクションとコミット、そしてロック。
NGW のデータベースは MySQL(InnoDB)です。1つの更新はトランザクションとして扱われ、 最後まで通ったときにコミット(確定)されます。書きかけの状態が他の職員から見えることはなく、 異常が起きたときは取り消されて、中途半端なデータが残りません。
ただし、トランザクションが守るのは1つ1つの更新の確実さです。 「先に読んだ値をもとに書く」処理が同時に走ることまでは防げません。 受発番号の採番がこれにあたり、2人が同じ最大値を読めば、同じ番号が振られてしまいます。
そこで NGW では、番号を決める区間だけをロックで囲み、1人ずつ順番に通します。 ロックは年度×文書記号ごとに分かれているので、別の文書記号の登録は待たされません。 番号が決まった時点で解放するため、そのあとの処理も待たせません。 負荷試験では、この対策の前に3,493件中869件あった番号の重複が、対策後は0件になりました。 処理量は 39.9件/秒 → 39.2件/秒 で、ほとんど変わっていません。
排他制御とは
同じデータを複数の人が同時に触ったときに、順番を決めて1人ずつ通す仕組みです。 取り合いになる場所(NGW では受発番号の採番)だけを囲むので、 関係のない登録が待たされることはありません。
トランザクション・コミットとは
いくつかの書き込みを「ひとまとまりの更新」として扱うことをトランザクション、 それを確定させることをコミットといいます。 確定するまでの書きかけは他の職員から見えず、途中で異常が起きれば取り消されます。
Redundancy

2台1組の構成

クローン機は常時起動しています。ハード故障のときは、決められた手順で切り替えます。

切り替えは手動(自動フェイルオーバーはしない) 職員のPC ブラウザ 庁内LAN NGWメイン 本番 / 書き込みができる Apache + PHP MySQL(更新はこちら) 文書・添付ファイル NGWクローン 待機 / 読み取り専用 Apache + PHP MySQL(複製を受ける) 文書・添付ファイル DBレプリケーション 更新のたび ファイル同期 5分ごと 外付けSSD(保管先) クローンの控えも置く 外付けSSD(保管先) 日次・週次のバックアップ 本番に負荷をかけない 預かり(1日2回)
2台1組の構成。更新はメインだけで受け、クローンは複製を受けながら待機します。バックアップはクローン側で取り、その控えをメイン側にも預けます(切り替えたあとは、取り手も入れ替わります)

データベース

MySQL のレプリケーションで、メインの更新をクローンへ準リアルタイムに反映します。負荷が低く、実質的な DB のミラーになります。

文書・添付ファイル

起案の添付書類、共有文書、回覧板の添付など、実ファイルは5分ごとに同期します。

アプリケーション

プログラムは両機に同じものを配置します。更新は同じ手順で両方に適用されます。

「準リアルタイム」は、2つの間隔でできています。
データベースは更新のたびにクローンへ流れます。職員が登録した文書は、ほぼ同時に向こうにも入ります。 添付ファイルの実体は5分ごとにまとめて同期します。 切り替えが必要になったとき、失う可能性があるのは直前5分以内に上がった添付ファイルだけで、 文書の登録内容そのものは残ります。
準リアルタイムとは
「常に完全に同じ」ではなく、ごく短い遅れを認めたうえで追いつかせるやり方です。 完全に同じ状態を保とうとすると、本番はクローンへ書き終わるまで待つことになり、日々の操作が遅くなります。 NGW は本番を待たせない側を選び、データベースは更新のたび、ファイルは5分ごとに追いつかせています。
切り替えは、自動にしていません。
自動フェイルオーバーは、誤作動でメインとクローンが同時に動く事故(スプリットブレイン)を招きます。 NGW では手動の切替スクリプトを用意し、①メインの停止確認 → ②クローンの昇格 → ③アドレスの付け替え → ④メイン側の同期遮断、という順序で確実に切り替えます。
フェイルオーバーとは
本番の機械が止まったときに、待機している機械へ役割を移して業務を続けることです。 人が手順に沿って移すやり方と、機械が自分で判断して移すやり方(自動フェイルオーバー)があります。 NGW は前者です。
スプリットブレインとは
本番と待機の2台が、互いに「相手は落ちた」と思い込んで、どちらも本番として動いてしまう状態です。 両方に別々の登録が入るため、あとから1つにまとめられなくなります。 ネットワークが一時的に切れただけでも起こりうるので、NGW は自動での切り替えをしていません。
レプリケーションはバックアップではありません。
クローンはハード故障(可用性)を守りますが、誤削除やデータの破損はクローンにも即座にコピーされます。 「過去に戻る」手段は、バックアップの世代管理から復元できます。
レプリケーションとは
データベースの更新を、もう1台へそのまま流して同じ状態に保つ仕組みです。 メインで登録した文書は、ほぼ同時にクローンにも入ります。 速さが利点ですが、間違えて消したことも同じ速さで伝わります。 だからバックアップとは役割が別で、両方が必要です。
Backup

バックアップ

論理事故(誤削除・破損・巻き戻し)への備えです。冗長構成とは役割が別で、両方が必要です。

種別取得世代
日次バックアップ1日4回(早朝・昼・夕方・夜間)曜日ごとに保持
週次バックアップ週1回約90日(13世代程度)

添付ファイルを多く扱う団体では、データ量が加速度的に増えていきます。 DB のダンプよりも、実ファイルの容量のほうが先に効いてきます。 バックアップは「取れていること」ではなく「実際に戻せること」を確認しながら運用しています。

Hardware

機器構成

Mac + UTM の仮想環境、または Linux 機での運用になります。想定する接続ユーザー数から実機を選びます。

接続ユーザー数1002003005001000
CPU(物理コア)44888〜16
メモリ16 GB16 GB16 GB32 GB32 GB
内蔵SSD500 GB500 GB500 GB1 TB1 TB
外付けSSD(保存先・各機に1台)1 TB1 TB1 TB1 TB2 TB
データベースの目安(開始時)0.3 GB0.5 GB0.8 GB1.3 GB2.5 GB
同(7年後の想定)1 GB1.5 GB2.5 GB4 GB8 GB

新しく組む機器を選ぶための目安で、稼働中の団体の実測から余裕を見た値です。 8団体(データベース合計 11 GB)が載っている機体が4コア・8 GB で動いており、 200人規模なら M4 の MacBook Air(16 GB)で足りることも実測しています。 それでもこの表より落とさないのは、メモリを削ると MySQL がデータをメモリに載せきれず、 表示が急に遅くなるためです。

2台のスペックを揃えます

切り替えたあとは、クローンがそのまま本番を担い続けます。待機側は「いつ本番になってもよい機体」である必要があるため、同じ型で揃えるのがいちばん簡単です。

外付けSSDは各機に1台

バックアップは、本番にディスクの負荷をかけないようクローン側で取ります。役割が入れ替わると取り手も入れ替わるので、両方に同じ場所で常設しておきます。障害の最中にケーブルを挿し替えずに済みます。

2台は同じLANに置きます

クローンはメインのデータベースへ接続してレプリケーションを受けます。庁内ネットワークの中で完結し、外へは出ません。

Requirements

動作環境

サーバ

OSUbuntu Server 26.04 LTS
WebApache 2.4
PHPPHP 8.5
DBMySQL 8.4
構成NGWメイン/NGWクローンの2台1組(1台構成も可)
ネットワークLGWAN 閉域を前提とした庁内設置

クライアント

ブラウザMicrosoft Edge / Google Chrome
OSWindows 10 / Windows 11(64bit)
追加ソフト不要(Java・ActiveX 等のインストールは要りません)
通知ツールオプションで常駐通知ツール「NgwNotifire」を追加できます。新着の回覧板・未処理の決裁案件を Windows の通知(トースト)で受け取れます
帳票すべて PDF。印刷前に画面でプレビューできます
配色利用者ごとに画面配色を選べます

※ 規模の目安として、職員数 200〜500人規模の団体での運用実績があります。詳しい構成はお問い合わせください。

Blog

Linux版を作った記録を公開しています

Linux への移行、2台1組の同期、無人運用、バックアップの作り直し、負荷試験で見つかった不具合。 開発の途中で分かったことを、開発ブログに書いています。

NGW TECH BLOG を読む

移行のご相談

現行環境からのデータ移行、庁内の設置場所、2台構成の可否など、環境に合わせてご相談ください。

お問い合わせ