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を管理できる立場になった。
本当に、自分は運がいいなと思います。
でも、運だけじゃなかったとも思っています。「もっとできるはず」と思って次を探し続けたから、チャンスが来たときに掴めた。準備していたから、偶然を活かせた。
そして何より、ここまで来れたのは、一緒に歩んでくれた人たちがいたからです。
研究開発時代からずっと、私のやりたいことを理解してくれた上司。一緒に試行錯誤してくれた仲間たち。「できました!」と駆け寄ったとき、一緒に喜んでくれる人がいた。それがどれだけ心強かったか。
技術や仕組みの話をたくさんしてきましたが、その当時も今も、私のやることを応援してくれた周りの仲間と、い
つも相談に乗ってくれた上司には本当に感謝しかありません。私が本当に幸運だったのは、このような恵まれた環境にいられたことだったと思います。
今、同じように「こんなシステムがあれば」と思いながら、方法がわからなくて止まっている人がいたら。
諦めなくていいです。遠回りしても、ちゃんと辿り着けます。
この記事が参考になったら、スキ・フォローお願いします。同じように試行錯誤している方、コメントで気軽にどうぞ。
いいなと思ったら応援しよう!
気が向いたらコーヒー奢ってください。泣きながら喜びます。また奢ってくれた人いたら感謝しながら拝み奉ります。