2026/09/26

システムの会社である私たちは、業務システムを SaaS でなくても回せると考え、社内で実際に置き換えを進めています。SaaS の月額に含まれているものを分けてみると、それぞれに自社で置き換える方法があるためです。ただし、この記事の方法は、サーバの運用や保守を自分たちで引き受けられることが前提です。システムに詳しい人がいない会社が、そのまま同じことをできるとは限りません。

この記事では、私たちが社内で動かしている構成、検証中の会計・販売の移行、置き換えたことで自分たちの仕事になったこと、費用の比較を順に書きます。

SaaS に払っているものを分ける

業務システムの SaaS に払っている月額には、次の4つが含まれています。

  • ソフト
  • 法改正への追従(税制や法令が変わったときに、ソフトの動きを合わせること)
  • サーバとバックアップ
  • セキュリティ

これらは、それぞれ次のもので置き換えられます。

  • ソフト:オープンソースのソフトウェアを使います。
  • 法改正への追従:AI に一次資料(e-Gov 法令検索の条文、国税庁の Q&A や計算例)を読ませて調べさせます。調べた結果は期待値つきのテストにして固定し、判断は人間がします。
  • サーバとバックアップ:クラウドではなく、自社サーバ1台で動かします。サーバの機械そのものは安価です。バックアップは社内に毎日取り、遠隔の分だけクラウドに置きます。
  • セキュリティ:Cloudflare を使います。受信ポートを開けずに公開し、入口を Cloudflare Access と SSO で絞ります。

構築、調査、ソースコードの読解、テストの作成は、AI(Claude Code)を使って行っています。

AI から操作できる口があるか

4つに分けたものとは別に、確かめていることがもう1つあります。ソフトに、AI から操作できる口(API)があるかどうかです。AI で業務を回すには、ソフトに API があることが前提になります。

SaaS では、どこまでを API で出すかを、提供する事業者が決めます。私たちが使っている受取請求書の機能では、読み取った請求書の内容を API で取り出す手段が公開されていません。公開された手段で AI から扱おうとすると、ブラウザの操作に頼ることになります。

ERPNext の土台になっている Frappe フレームワークは、すべての DocType(請求書や仕訳などの帳票ごとのデータの定義)に、REST API を自動で用意します。API での操作も、操作するユーザーに割り当てた役割(ロール)で権限が確かめられるので、画面と同じ権限がそのまま効きます。API 専用のユーザーを作ることもできます。人の操作と AI の操作を、同じ口にそろえられます。

これはソフトの良し悪しではなく、API をどこまで出すかという仕様の違いです。AI で業務を回すかどうかを考えるときは、機能や料金と合わせて確かめておく必要があります。

サーバは民生パーツの1台

社内の基幹サーバは1台です。デスクトップ向けの民生パーツ(8コアの CPU、メモリ 32GB、1TB の NVMe SSD)で構成した機械に、Ubuntu Server 24.04 LTS を入れています。

この1台で、GitLab(ソースコードと CI)、Plane(タスク管理)、Vaultwarden(パスワード管理)をはじめとする社内ツールを本番として動かしています。2026年8月に、前のサーバからこの1台へ移しました。

待機中の本体の消費電力は約24Wです。電気代に直すと、1kWh あたり31円で計算して月500円台が目安です。CI のジョブが走っている間は、消費電力が上がります。

サーバは UPS(400VA)につないであり、停電したときは UPS の残り時間を見て自動でシャットダウンします。

サーバの設定は Git で管理し、CI/CD で反映しています。パスワードなどの秘密情報は Git に入れず、クラウドの鍵保管庫(Azure Key Vault)に置いています。

バックアップは「戻せるか」で確かめる

サーバが1台なので、壊れる前提で作っています。バックアップは「取れているか」ではなく「戻せるか」で確かめています。

  • 毎日深夜に、社内の別の機械へバックアップを取ります。日次で7世代、月次で3世代を残します。1世代は約4GBで、所要時間は約3分です。
  • 毎週、バックアップを暗号化して Azure Blob Storage(Cool 層)へ送り、遠隔で保管します。
  • 毎月、実際に復元できるかを試します。GitLab は、データベースを本番と同じ版の PostgreSQL に流し込み、件数を本番と突き合わせます。リポジトリは取り出して整合性を検査します。
  • 遠隔の分も毎週、実際のファイルを取り出し、展開できるところまで確かめます。
  • バックアップが36時間以上更新されないと、自動で障害チケットを起票します。

更新の監視は、バックアップを受け取る側の機械に置いています。送る側のサーバごと止まった場合、送る側では止まったことを検知できないためです。

バックアップでつまずいた2つの点

1つ目は、データベースのダンプです。資格情報が無い状態で実行すると、中身が空のファイルを作ったうえで正常終了してしまう例がありました。終了コードだけを見ていると成功に見えます。ファイルサイズの下限を検査するようにして、初めて気づけました。

2つ目は、遠隔バックアップの暗号鍵の置き場所です。当初、鍵はバックアップを受け取る社内の機械にしか置いていませんでした。その機械を失うと、クラウドに保管したバックアップを復号できない状態でした。鍵を Azure Key Vault にも置き、その鍵だけでバックアップを開けることを実機で確かめました。

どちらの場合も、バックアップのファイル自体は毎回作られていました。取れているように見えても、戻せるとは限らないことが分かる例でした。

公開は Cloudflare Tunnel、入口は Access と SSO で絞る

サービスの外部への公開は、Cloudflare Tunnel 経由で行っています。Cloudflare Tunnel は、サーバの側から Cloudflare へ接続する方式です。そのため、サーバの受信ポートは開けていません。

入口は、Cloudflare Access と Microsoft Entra ID のシングルサインオン(SSO)で絞っています。サーバへの SSH も Cloudflare Access を経由します。

Cloudflare Tunnel の基本的な設定手順は、以前の記事「自宅サーバー+Cloudflare Tunnelで月額0円のインフラを構築した話」で紹介しています。その記事は、今の構成に移る前に書いたものです。

法改正への追従は、AI に一次資料を読ませる

法改正への追従は、AI に一次資料を読ませて調べさせ、その結果をテストにして固定し、判断は人間がする、という分担にしています。

例として、インボイス制度の経過措置があります。適格請求書発行事業者の登録をしていない事業者(免税事業者など)からの仕入れについても、仕入税額相当額の一定割合を控除できるという措置です。この割合は、2026年9月30日までは80%です。

2026年10月以降の割合を AI に記憶で答えさせたところ、旧制度どおり「10月から50%」と答えました。国税庁の Q&A(令和8年4月改訂版)の問113と問113-3 を読ませると、令和8年度の税制改正で割合が変わっていました。問113には、次のように書かれています(表から該当する2行を抜粋)。

令和5年10月1日から令和8年9月30日まで 仕入税額相当額の 80%

令和8年10月1日から令和10年9月30日まで 仕入税額相当額の 70%

2026年10月1日から2028年9月30日までは70%で、その後は50%、30%と段階的に下がります。

記憶に聞くと、制度が変わる前の知識で答えが返ってくることがあります。そのため、私たちが「AI に調べさせる」と言うときは、AI の記憶に聞くことではなく、AI に一次資料を読ませることを指します。

読ませた結果は、期待値つきのテストにして固定します。期待値には、国税庁が示している計算例や、freee 会計で実際に計算された結果を使います。どの規定をどう当てはめるかの判断は、人間がします。

参考:消費税の仕入税額控除制度における適格請求書等保存方式に関するQ&A(国税庁)

一番難しい例:会計と販売(検証中)

ここまでの考え方を当てはめるのが一番難しいのは、会計と、それにつながる販売(見積書・請求書の発行)です。私たちは、どちらも今は freee で行っています。これらをオープンソースの ERPNext(v16、Frappe フレームワーク)へ移すことを検討し、自社サーバで試しています。切り替えはまだしていません。

ERPNext は会計ソフトではなく、ERP(統合業務システム)です。会計、販売(見積から受注・納品・請求まで)、購買、在庫、製造、プロジェクト管理、CRM を1つのデータで扱え、人事・給与も同じ Frappe フレームワークの上で動く別のアプリ(Frappe HR)で扱えます。私たちが移そうとしているのは、このうち会計と販売(見積書・請求書の発行)と、Frappe HR での人事労務(給与計算・勤怠など)です。人事労務はまだ試しておらず、ほかの機能もまだ使っていません。販売はまだ並行稼働しておらず、請求書の発行を ERPNext に載せるか、同じサーバで試している別のソフトにするかも決めていません。使う範囲を広げるほど、比べる相手は会計ソフトではなく ERP の SaaS になります。ERP としての比較は、実際に使う範囲を広げてから、導入の手間も含めて改めて書きます。

移すことを考えた理由

理由は4つあります。

1つ目は、自分たちで手を入れられることです。これが一番大きい理由です。会計や販売の中心になる処理は ERPNext 本体のものをそのまま使い、自社に特有の処理だけを拡張アプリとしてシステムに載せられます。SaaS では、自社に特有の処理を足す手段が設定や API の範囲に限られます。パッケージの業務システムで同じことをしようとすると、開発を依頼することになり、多くの場合、大きな費用がかかります。拡張アプリを書く作業も、今は AI を使って自分たちでできます。

2つ目は、AI を業務に使えることが分かってきたことです。法令や国税庁の Q&A のような一次情報も、AI に読ませれば容易に取得できるようになりました。自社で業務ソフトを持つときに障壁になっていた部分が、少しずつ解けてきていると感じています。

3つ目は、私たちがシステムの会社であることです。サーバの運用や保守の技術は社内にあります。SaaS が代わりにやっていた運用を、自分たちで引き受けられると判断しました。

4つ目は、うまくいったときの影響が大きいと考えていることです。業務ソフトは SaaS へ置き換わる流れが続いてきました。その中で、オープンソースの業務ソフトでも実務が回ることを示せれば、業務ソフトの選び方が変わると考えています。

背景には、SaaS の料金についての私たちの考えがあります。

米国で上場している SaaS 企業約70社の中央値では、売上に対して営業・マーケティングの費用が34%、研究開発の費用が22%です(2026年9月時点)。2017年10月以降に上場したソフトウェア企業57社で見ても、約8割で営業・マーケティングの費用が研究開発の費用を上回っています。日本の上場企業は費用をこの区分で開示していないため、同じ比較はできません。

参考:Clouded Judgement 9.25.26 – Own the Interaction Layer(Jamin Ball、2026年9月25日)

参考:2025 Annual Percent of Revenue(Blossom Street Ventures)

利用者が増えれば、費用が分散されて価格や機能に返ってくる面もあります。ただ、払った料金がどの改善に使われるかを、利用者は選べません。オープンソースなら、自分たちに必要な改善に直接手をかけられ、その改善を同じソフトを使うほかの人とも共有できます。

使う人どうしが協力して直すこともできます。あるいは、AI と自社の中で完結して使うこともできます。そのどちらかができるかを確かめたいと考え、会計と販売の移行を検討しています。

いきなり切り替えない

検証の間は、freee 会計を正本のままにします。freee 会計の仕訳帳を ERPNext へ自動で写し、手で二重入力はしません。仕訳の内容からハッシュを作って変更を検出し、変わった仕訳は ERPNext 側で取り消して訂正版を作ります。

毎月、両方の試算表を突き合わせます。差がゼロの月が3か月続いたら、期首に切り替えるかどうかを判断します。

本体はそのまま使い、自社の処理は拡張アプリに載せる

ERPNext の本体には手を入れず、私たちが足す処理は自前の拡張アプリにまとめます。Frappe では、本体とは別のアプリを作り、そのアプリに書いたフック(hooks.py)で本体の処理を置き換えたり広げたりできます。本体に手を入れずに分けておくと、本体の更新をそのまま受けられます。

拡張アプリに載せるものは、2種類あります。

1つ目は、日本の制度に合わせる処理です。ERPNext と Frappe HR には、日本向けの公式な対応が無い機能があります。

  • 適格請求書の様式
  • 消費税の端数の切り捨て
  • 消費税の申告
  • インボイス制度の経過措置
  • 電子帳簿保存法への対応
  • 全銀形式の振込データ
  • 銀行明細の取込
  • 給与計算(社会保険料、源泉所得税、住民税の特別徴収、年末調整)

Frappe HR の公式ドキュメントには、国別の給与計算としてインド向けの章がありますが、日本向けのものはありません。

2つ目は、私たちの会社に特有の処理です。たとえば、準委任契約の月々の精算(稼働時間が上限や下限を外れた分の調整)や、請負の売上を外注先と分ける計算です。これらは今、拡張アプリに入れ始めているところです。

問題が出たときは、まず動いている版と同じ版の本体のソースコードを読み、原因を特定します。そのうえで、次の順に対応を考えます。

  1. 設定で済むなら、設定で対応します。
  2. 日本固有の要件なら、拡張アプリで対応します。
  3. 本体の不具合なら、上流のプロジェクトへ修正を出します。取り込まれるまでは、拡張アプリで回避します。
  4. 本体に直接パッチを当てるのは、最後の手段にします。

消費税の計算結果を突き合わせる

消費税について、freee 会計と ERPNext の結果を突き合わせました。freee 会計が計算した税額をそのまま写している限り、税区分ごとの本体価格と税額は、すべての税区分で一致しました。

一方、請求書の発行を移す準備として ERPNext 自身に税額を計算させると、発行済みの請求書(外税・端数切り捨て)のうち、端数が出る数件で1円のずれが出ました。原因は端数処理の仕様の違いで、ERPNext の端数処理は切り捨てではありません。ERPNext で請求書を起こす場合は、切り捨ての処理を自前で入れる必要があります。

自社で引き受けることになる仕事

SaaS をやめると、SaaS が代わりにやってくれていた運用は、自分たちの仕事になります。

  • 障害への対応
  • ソフトウェアの更新
  • 監視
  • 法改正への追従

また、1台構成は壊れる前提で作る必要があります。毎月の復元テストと遠隔バックアップは、そのために続けています。

費用を比べるときは、サーバ代や電気代だけでなく、こうした運用にかかる人の時間も入れる必要があります。

費用の比較

費用は、従業員15人ほどの中小企業1社(私たちと同じくらいの規模)が、同じ用途の SaaS を定価で契約した場合と比べます。SaaS 側は、自社サーバで動かしているソフト(互換ソフトを含む)の公式クラウド版の料金です。会計と人事労務は、今使っている SaaS(freee)の料金にしています。

料金は2026年9月時点の公式の料金表によります。金額は税込で、税抜の定価は1.1倍にしています。年払いがあるものは、年払いの月額に直しています。ドル建ての料金は、欧州中央銀行の参照レートの直近3か月平均(1ドル約159.6円)で円に直しています。

SaaS 側(従業員15人の会社1社・月額・税込)
用途(自社サーバでの状態)SaaS とプラン月額計算のもと
会計・販売(見積書・請求書)(ERPNext で検証中。請求書の発行は ERPNext か別のソフトかを検討中)freee 会計 スタンダード約9,880円月8,980円(税抜・年払い)。経理・経営者相当の3人分を含む。見積書・請求書の発行もこのプランに含まれる
タスク管理(Plane で稼働中)Plane 公式クラウド版 Pro約15,800円1人6ドル(税抜・年払い)× 15人。1人あたり約1,050円
パスワード管理(互換の Vaultwarden で稼働中)Bitwarden 公式クラウド版 Teams約10,500円1人4ドル(税抜・年払い)× 15人。1人あたり約700円
人事労務(給与計算・勤怠など)(置き換えの予定。Frappe HR。まだ試していない)freee 人事労務 スタンダード約13,200円5人まで月4,000円、6人目から1人800円(税抜・年払い)。15人で月12,000円。1人あたり約880円
合計約49,400円年額で約59万円
自社で持つ側(月額)
項目月額計算のもと
サーバ(本体と周辺機器)約1,670円購入費を10万円と仮定し、5年で割る
電気代(サーバ本体)約540円待機時 約24W、1kWh あたり31円で計算
遠隔バックアップ(Azure Blob Storage の Cool 層)約30円容量 約14GB。2026年9月の実請求は24日分で約15円。容量が増えても数十円の見込み
小計(AI を除く)約2,240円年額で約2.7万円
AI(Claude の定額プラン)約35,100円月200ドル+税
合計(AI 込み)約37,300円年額で約45万円

AI を除くと、自社で持つ側は月約2,240円で、SaaS 側(月約49,400円)の20分の1以下です。AI を含めると月約37,300円になりますが、それでも自社で持つ側が月約12,100円安くなります。

この差は、次の条件で変わります。

  • SaaS 側は、人数に比例して増えます。Plane、Bitwarden、freee 人事労務は1人あたりの料金で、合わせて1人あたり月約2,640円です。freee 会計も、経理・経営者相当の人を4人以上にすると1人あたり月300円(税抜)、経費精算で申請や承認をした人1人あたり月300円(税抜)が加わります(表には入れていません)。自社サーバの費用は、人数ではほぼ変わりません。1人あたりの増え方から計算すると、今回の前提では13人以上で、AI 代を含めても自社で持つ側の方が安くなります。12人以下では Plane を無料プランで使えるため、SaaS 側の方が安くなります。
  • 会社が複数あると、SaaS は会社の数だけ契約が増えます。ERPNext は1つの環境で複数の会社を扱えます。
  • AI は会計だけでなく、開発やほかの業務にも使っています。ここでは全額を載せています(多めに見積もった数え方です)。

このほか、次の前提があります。

  • 見積書・請求書の発行は、freee 会計のプランに含まれます(freee 請求書のスタンダードプラン相当)。一括で作成した書類やカスタマイズした様式の書類を freee からメールで送る場合は、1件95円(税抜)がかかります(表には入れていません)。
  • 無料プランは、Plane が12人まで、Bitwarden の無料の組織が2人までです。15人では足りないため、有料プランで計算しています。
  • AI の定額プランで済むのは、利用上限の範囲内までです。上限を超えて使った分は、従量課金(API の定価)になります。
  • 人の時間(運用の手間)は含めていません。

表に入れていないものもあります。私たちは開発もするので、ソースコード管理(GitLab)も同じサーバで動かしています。開発をしない会社には関係がないため、表には入れていません。また、ERPNext には購買・在庫・CRM などの機能もあり、次に置き換える候補になります。

会計の移行は、まだ検証中です。試算表の差がゼロの月が続くかを見たうえで、切り替えるかどうかを判断します。

まとめ

  • SaaS に払っているものは「ソフト」「法改正への追従」「サーバとバックアップ」「セキュリティ」に分けられ、それぞれに自社で置き換える方法があります。
  • AI で業務を回すには、ソフトに API があることが前提です。SaaS では API の範囲を事業者が決めます。ERPNext(Frappe)は、すべての DocType に REST API があり、画面と同じ権限で操作できます。
  • サーバは民生パーツの1台で、待機時の電気代は月500円台が目安です。壊れる前提で作ります。
  • バックアップは「取れているか」ではなく「戻せるか」で確かめます。復元を毎月試し、更新の監視は受け取る側に置きます。
  • 公開は Cloudflare Tunnel で受信ポートを開けずに行い、入口は Cloudflare Access と SSO で絞ります。
  • 法改正への追従は、AI の記憶に聞くのではなく一次資料を読ませ、結果を期待値つきのテストに固定し、判断は人間がします。
  • ERPNext の価値は、中心の処理を本体に任せ、自社に特有の処理を自分たちで載せられることにあります。
  • 会計と販売(見積書・請求書の発行)の、freee から ERPNext への移行は検証中で、切り替えはしていません。ERPNext は ERP なので、使う範囲を広げるほど、比べる相手は ERP の SaaS になります。
  • 従業員15人ほどの会社1社で定価どおりに比べると、AI を除けば自社で持つ側は SaaS 側の20分の1以下で、AI を含めても自社で持つ側が安くなります。
  • 置き換えた分の運用は自分たちの仕事になるため、費用は金額だけでなく、人の時間も加えて比べる必要があります。

SaaS を使い続けるか自社で持つかは、SaaS に払っている4つのうち、どれを自分たちで引き受けられるかで決まります。そのうえで、自社で持つ一番の価値は、中心の処理を本体に任せながら、自社に特有の処理を自分たちで載せられることだと私たちは考えています。