見出し画像

NASでWebアプリを動かす方法——中小企業がDocker+AIで社内システムを自作した話

今でこそ、NAS上にアプリを置いて社内で使えるようになりました。

でも、最初からここに辿り着けたわけじゃありません。何度も試しては断念して、遠回りして、たまたま偶然が重なって運よくたどり着いた場所です。


Excelの限界を感じていた


かれこれ2年ほど前の話です。

当時、私はまだ研究開発部門に所属していました。Excelのマクロを組んで業務を自動化していたんですが、やればやるほどExcelの限界を感じるようになっていました。

Excelが悪いわけじゃないんです。単一で完結する業務や、ボタンひとつで自動化できるような作業には、Excelは十分でした。実際、そういうものはいくつもありました。

でも、私がどうしてもExcelではできなかったこと。それがデータベースの作成でした。

研究開発部門では、様々な案件を同時に抱えていました。製品の開発から社内の改善案件まで、どこの部署から何の案件が来ていて、期日はいつで、今どういう状態なのか。それを一元管理したかった。

簡単な仕組みならExcelでもいいんです。ただ、部署をまたいだデータだったり、「このデータは別の仕組みでも使いたい」というケースが出てくると、Excelでデータベースのような構造を作ることにはリスクがある。誰かがセルを触って壊れたら終わりです。

だから、ずっと断念していました。

でも、やっぱりデータベースが必要だ。

その気持ちだけは、ずっと消えなかったんです。

Accessも外注もうまくいかなかった


最初に手を出したのはAccessでした。

Excelの延長で使えるかと思ったんですが、正直難しすぎて挫折しました。リレーションとかクエリとか、概念はわかるけど自分の業務に落とし込めない。

次に検討したのがkintoneのようなノーコードツール。それから、システム自体を外注することも考えました。

でも、結局どれもうまくいかなかった。

理由はシンプルで、自社の業務に合わせてシステムを作れないと、導入してもうまくいかないんです。最悪の場合、お金をかけてシステムを導入しても、現場に使ってもらえない。そんな経験もしました。

「やっぱり、自分でシステムを作れるようになりたい。」

ChatGPTとの出会いが、流れを変えた


ちょうどその頃、ChatGPTが話題になり始めていました。

私はすでにメールの文章作成や、改善案の壁打ちにChatGPTを使っていました。そしてExcelのVBAも書けていたので、ふと思ったんです。

「VBAが書けるなら、その延長でもっと本格的なプログラムも書けるんじゃないか?」

試してみたら、本当に書けた。AIに相談しながらコードを書いて、アプリを作れるということを知りました。

ここから、試行錯誤が始まります。YouTubeやSNS、ネットでAIやプログラミングについて気になったことはすぐに調べて、書店でそれらしい本を買ってきて読んで、やってみる。その繰り返しでした。

Apacheで作ってみた


最初に使ったのはApacheというWebサーバーの仕組みでした。

なんとか動くものはできたんですが、動作が安定しない。エラーが頻発して、とても社内で使えるレベルではありませんでした。でも、「自分でもWebアプリが作れるんだ」という手応えは得られた。もっといい方法があるはず。

ローカルにJSONで保存してみた


次に試したのは、データベースを使わずに、ローカル環境で.jsonファイルにデータを蓄積する方法でした。

これは動くには動いたんですが、データの共有ができない。自分のPCの中にしかデータがないので、他の人が使えない。でも、データを蓄積する仕組み自体は動いた。あとは共有さえできれば。

自分のPCをサーバーにしてみた


次に考えたのが、自分のPCをサーバーにして、他のPCからアクセスできるようにすること。

これでようやく、思い描いていた通りのアプリが作れるようになりました。データベースを使って、データの共有も設計も自分の手でできる。

「これだ!これがやりたかったんだ!」

初めて、自分が思い描いていたものに手が届いた感覚でした。

……でも、使っていくうちに気づきました。自分のPCをずっとつけっぱなしにしなければならない。電源を落としたらシステムが止まる。データのバックアップもできない。

もっと何かあるはず。もっといい場所にサーバーを置ければ、全部解決する。

「NASに置けたら、全部解決するんじゃないか」


ここまで来たとき、ふと気づいたんです。

NASにサーバーを置いて動かせたら、今までの課題が全部クリアできるんじゃないか?

24時間稼働している → PCをつけっぱなしにしなくていい
社内ネットワークに接続されている → データの共有ができる
バックアップ機能がある → データが消える心配がない

完璧じゃないか、と思いました。

でも、ここで問題がありました。

NASの管理は総務の管轄だったんです。

研究開発にいる私が、勝手にNASにアプリを入れて管理するなんて、立場的にできない。やりたいことは見えているのに、手が届かない。

偶然が重なった


ところが、ちょうどこの頃、総務への異動が決まりました。

そして色々あった結果、NASの管理やその他の情報システム関連は、私が担当につくことになったんです。

ようやく、NAS上でアプリが動くか試せる環境が手に入りました。

NASで動いた日


NAS上にアプリをデプロイして、ブラウザからアクセスしてみた。

画面が表示された瞬間——

「できた!!」

声に出してました。ガッツポーズして、すぐ上司のところに駆け寄って「見てください!できました!!」と叫んでいました。

上司も一緒に喜んでくれました。

Excelの限界を感じてから、Accessに挫折して、外注もうまくいかなくて、AIに出会って、Apache、JSON、自分のPCサーバー——何度も試しては次を探して、ようやくたどり着いた場所。

今までの苦労が、ついに実った瞬間でした。

振り返ると、奇跡みたいだった


NASという答えに辿り着いたタイミングで、ちょうど総務に異動になって、NASを管理できる立場になった。

本当に、自分は運がいいなと思います。

でも、運だけじゃなかったとも思っています。「もっとできるはず」と思って次を探し続けたから、チャンスが来たときに掴めた。準備していたから、偶然を活かせた。

そして何より、ここまで来れたのは、一緒に歩んでくれた人たちがいたからです。

研究開発時代からずっと、私のやりたいことを理解してくれた上司。一緒に試行錯誤してくれた仲間たち。「できました!」と駆け寄ったとき、一緒に喜んでくれる人がいた。それがどれだけ心強かったか。

技術や仕組みの話をたくさんしてきましたが、その当時も今も、私のやることを応援してくれた周りの仲間と、い
つも相談に乗ってくれた上司には本当に感謝しかありません。私が本当に幸運だったのは、このような恵まれた環境にいられたことだったと思います。

今、同じように「こんなシステムがあれば」と思いながら、方法がわからなくて止まっている人がいたら。

諦めなくていいです。遠回りしても、ちゃんと辿り着けます。

この記事が参考になったら、スキ・フォローお願いします。同じように試行錯誤している方、コメントで気軽にどうぞ。

いいなと思ったら応援しよう!

Ein | 製造業DX 個人発信 気が向いたらコーヒー奢ってください。泣きながら喜びます。また奢ってくれた人いたら感謝しながら拝み奉ります。