オープンソースのおかげで豊に学べる
生きることにこだわりを。魚住惇です。
学校も7月18日より夏休みに入り、部活動や教材研究など、それぞれの先生が各々の活動に入る時期がやってきました。
僕はというと、学校のネットワーク回線などをいじる作業だったり、ラズパイをいじって過ごしています。・・・業務ですよ、ええ業務ですとも。
そんな光景を見て、「業者みたいだね。」や「先生それ、工業っぽいですよ」などと言われるようになりました。あぁ、普通科の僕でも、そうやって見てもらえるんだ。やっと一目置かれるような存在になれそうなのかな。そんな思いも芽生えてきました。
ラズパイを触っていて、結構便利なサービスを発見したので語りたいと思います。今回もちょっとしたこだわりに、お付き合いください。
Tailscaleの衝撃
ここ最近ね、めちゃくちゃはまっているものがあります。Tailscaleっていうサービスです。要はVPNサービスみたいなものなんですが、面倒な設定も不要だし、認証するだけで普通につながるので、まじかこんなに簡単で良いのかっていう衝撃がありました。
まてまて魚住よ。今回はあなたが何をした話なのって思いますよね。やりたいことはずばり、「出先から自宅のパソコンにアクセスしたい」です。普通に考えて、そんなことできるの?ってなりますよね。
自宅にルーターがあって、Wi-Fiの電波を飛ばしているなら、自宅のネットワークにつなげるためにはLANケーブルを使って有線で接続するか、Wi-Fiの電波が届く範囲で無線で接続する必要があります。ここまではどこの家庭でも同じ話。
でもそれを、他のWi-Fiなどにつないでいながら、あたかも自宅と同じように使えるようにするという技術が存在します。それがVPNです。略さずに言うとVertual Private Network。外出先にいながら、あたかも自宅のネットワークにいるかのように通信を行う技術です。
企業ではリモートワークを行う際に、従業員の自宅にある端末を社内ネットワークに接続する際にもこの仕組みを使ったりしています。要はそれと同じことをやろうという話です。
この従来のVPNの手法を実践するためには、VPNサーバーが必要でした。今の時代なら高性能なWi-Fiルーターにこの機能が実装されていたりするので、割と手軽に使えるようになってきました。まぁそこまでする必要性がないという方が大半なので、あまり使われていないと思いますが。
VPNという仕組みはVPNサーバーとクライアントを通信して、VPNサーバーを通して通信を行うのでちょっと遅いなぁと思ってしまいます。
じゃあTailscaleは何が凄いかというと、まずTailscaleのサイトでアカウントを作成するかGoogleアカウントなどを使って認証させるんですが、同じアカウントを使って認証したデバイスが、あたかも同じネットワークに所属しているように見えるんですよ。
つまり、A:パソコン、B:NAS、C:スマホという3つの機器があるとして、C:スマホを外に持ち歩いて、B:NASにもアクセスしたいなと思ったとき、従来のVPNなら自宅のネットワークにVPN接続するので、A:パソコンにもつながるようになりますが、B:NASとC:スマホにそれぞれTailscaleをインストールして同じアカウントに登録すると、それら同士で通信が行えるようになるわけです。
Tailscaleそのものは以前から知っていて、「なんかみんな使っているなぁ」としか思わなかったんですけどね。自宅のQNAPにもTailscaleをインストールできると知って飛び上がりました。一度試しにTailscaleにいくつか認証させてみたら、もう自宅とか出先とか関係なしに、パソコンやiPhoneからQNAPが見られるようになったんですよ。
そう、目的の根本を改めて考えてみると、僕がやりたいのは自宅のネットワークそのものに接続したいのではなくて、自宅にあるNASやサーバーにアクセスすることでした。
そうと分かれば自宅を超えてアクセスしたいデバイスに手当たり次第Tailscaleに登録して、快適通信ライフを送るようになったのでした。
Tailscaleがサ終したらどうしよう
ソーシャルゲーム界隈で、「サ終」という言葉をよく聞くようになりました。「サ終」とは「サービス終了」の略で、そのままの意味の通りサービスの提供が終わってしまうことを指します。
IT業界で言うと、10年以上の話ですがauoneメールというメールサービスをauが展開していて、当時は100年使えるメールサービスと言っていたもの6年でサービス終了になったというニュースが話題となりました。
「au oneメール」終了 「100年メール」うたうも6年で幕 - ITmedia NEWS
メールアドレスってそう簡単に変えるものではないので、長く愛用できることが重要なんですよね。でも企業としては利益が出ない事業はたたまないと、経営が成り立たないという現実もあるわけで。
意を決して導入した仕組みを支えるものが、数年でサービス終了となれば、また似たような仕組みを探さなければなりません。僕自身、新しい仕組みなどには興味があるものの、そうコロコロと新しいものに登場されてしまっては、長期的に使える仕組みを整えづらいなとも思います。
あぁ、Tailscaleがサービス終了してしまったら、どうしよう。
なーんてね。調べてみるとセルフホストでTailscaleと似た仕組みが再現できるHeadscaleというアプリが配布されているのを知りました。
セルフホストというのは、メーカーが用意したサービスをメーカーが運用しているサーバーで利用するのではなく、自分が所有しているサーバーで動かし利用することの総称です。
なんか最近、セルフホストできるサービスがかなり多くあって、僕はもう毎日のように何か自宅で使えるサービスがないかとアンテナを張ってるんですよ。
今ではNotionはDocmost、OneDriveはNextCloud、Obsidian SyncはObsidian Self-hosted Live Syncなど、セルフホストに移行できるものを移行しつつあります。
セルフホストすることの最大のメリットは、サービスを自分で運用できることです。自分で運用している限り、サービスが突然終了することはありません。運用するためのコストこそかかるものの、運用を怠らなければ使い続けることができます。
まぁ運用することこそが一番の難しさではあるんですけどね。自宅が停電してもだめだし、ネット回線が途切れてもいけません。それに、サーバーも24時間365日電源を入れっぱなしにできるものを使わなければなりません。インフラ面だけでなく、何か不具合があればログを確認して原因を突き止めて対処しなければならなくなります。
ここまで語ると普通の人にとっては「それなら対価を支払ってメーカーが提供してくれているものを使うわ」なんて思うかもしれませんね。けれども、少なくとも僕の場合はこうした「運用でカバー」が効くのならば自分でやってみたいと思うんですよ。こうしたサーバーの日常的な運用こそが、自分の知恵を支えてくれているのではないかとも思っています。
それにね、今の時代は結構便利な世の中でして。Dockerという仕組みを利用すれば、セルフホストしたいサービスをコマンド1つでぽんと始められる時代なんですよ。自宅のLinuxサーバーにLAMP環境を構築してWordPressを導入していた時期が本当に懐かしいです。
それもこれも、今ではDockerという仕組みのありがたみを噛み締めつつ、何かあったときのトラブルシューティングにも役立っているので、すべてが無駄だったとは思いませんが。
IT業界ってこういう側面があるんですよね。あとから参入すればするほど、それ以前から学び続けている古参ユーザーの方が技術の根本を知りながら新しい技術の恩恵を受けているので骨太な感じがします。知識や知恵の深さや応用力がそれらの情報に触れている時間と相関しているのなら、既に多くの時間を割いている諸先輩方に叶うはずがありません。
だからせめて、「こんなこといいな、できたらいいな」をなるべく実現しつつ、結果として話題となっているサービスや仕組みを使ってみたいとも思うんですよね。「こういうことやってみたいなぁ、調べてみるか。→Qiitaに記事があるやん。そうかこれが今のトレンドなのか。」というのが個人的によくある流れです。こうしてなんとか教員をやりながらも、なんとかIT業界から置いていかれないようにと必死にもがいています。
利用者に与えられる自由
ここ最近配布されているセルフホスト系サービスの公式サイトをよく見てみると、公式のサーバーでアカウントを作って利用しようとすると月額や年額払いを要求される有料サブスクサービスが用意されています。その代わり、ソースコードはGitHubで公開されていますし、DockerのイメージだってDockerHubにも登録されています。
利用したい個人や企業は、オンプレミスで導入しても良いし、公式サービスをお金を払って導入しても良いわけです。選択肢が利用者にあるというのが、僕としては大変気に入っています。
僕が使っているセルフホスト系サービスで、Docmostというのがあります。Notionのように動くサービスで、家族会議や個人的なメモの用途で愛用しています。データベースの機能がないので、ほんとうにメモ用という感じですけどね。このDocmostも公式サービスを受けようとすると有料ですが、Dockerイメージを公式が配布しているので、自宅にサーバーがあればサクッと導入できます。
ライセンスは、「AGPL-3.0」が適用されています。GPLライセンスの拡張版で、一言でいうと「コピーレフト」というタイプです。本来、著作権の英訳は「コピーライト」ですが、それをもじって逆の意味にして「コピーレフト」と名付けられたライセンス形態です。自由に使っても良いけど改良などをして公開するなら、同じライセンスを適用させてねという意味です。
この「自由に使っても良いよ。ただし、改良したり改変して、公開することがあったら、同じライセンスを適用してね。というのが、オープンソースの考え方です。自由に使っても良い代わりに改良してサービスを公開するなら、そのソースコードも公開する必要があります。このルールを課すことでより良いコードが世に出てくるわけですね。
一人のユーザーとして、動作検証としてコードを利用しても良いし、それがきっかけでそのアプリやサービスの改良活動に加わっても良い。プログラマーって、目の前に問題があれば解決したくなる生き物ですから、こうしたコピーレフトという哲学でライセンスが発展したんだと思います。
インターネットで様々なサービスのコードがオープンソースで公開されて、自由に試せる。試して遊んで自由に学べる。サーバーだったり、コンピュータというハードウェアそのものにはお金はかかるんですけどね。でもパソコンを買って、最低限の設定さえ済ませてしまえば、コンピュータそのものについて、無料で自由に学べるわけです。
辺りを見渡してみると、コンピュータについて勉強しようと思うとオンラインのスクールの動画を見るとか、教室に通うとか、そういう広告ばかりを目にします。もちろんすべてのサービスを否定するわけではありませんが、なんかそこでしか学べないみたいな雰囲気になっている広告を見ると、ちょっともやっとします。
学校にも、DXハイスクールの予算をわが社で使ってもらいたいという旨の広告がわんさか届きます。「DXハイスクールで困っていませんか?」とか、いやいや全く困ってませんよと僕は思うわけですが。
コンピュータを使う、遊ぶ、学ぶ。これらは自由に、無料で楽しめる世界があるわけで、学校でも家庭でも、そういうことを教えていきたいなと思うのです。
いやー良かった良かった。夏休みに入って、自宅に転がっていたラズパイの使い道がどんどん決まって、今ではiPhoneからClaude Codeを使える環境が整いつつあります。これでどこにいてもVibe Codingできますわい。
今回のnewsletterは以上となります。
「いいね」を押していただけるとうれしいです。内容に関するご意見ご感想がありましたら、「#こだわりらいふ」をつけたツイートや、Substack内のコメントまでお願いします。