前回、機材を注文してあとは届くのを待つだけだ、と書いた。
PCとルーターが届いた日は平日の夕方で、段ボールを開けながら少し興奮していた。片手で持てるくらいの小さな箱を眺めながら、これが24時間動き続けるサーバーになるのかと思うと、妙にわくわくした。ルーターの初期設定はスマホのアプリで数ステップで終わった。拍子抜けするほど簡単だった。
WindowsをLinuxに入れ替える
中古PCにはWindowsが入っている。サーバーとして動かすのに必ずしもWindowsが駄目なわけではないが、Linuxのほうが適している場面が多い。消費電力が少なく、サーバー向けのソフトウェアが豊富で、動かしたままにするための設定が細かくできる。
選んだのはUbuntu(ウブントゥ)の最新LTS版だ。Linuxの中でも使っている人が多く、日本語の情報が豊富で、エラーが出たときに調べやすい。LTSというのは「長期サポート版」の略で、数年間は安定してアップデートが受け取れるという意味だ。
インストールには「インストール用のUSBメモリ」が必要になる。OSのデータをUSBメモリに書き込んで、そこからPCを起動するためだ。Rufus(ルーファス)というフリーソフトを使って書き込んだ。
インストールのオプションを選ぶ画面で、ひとつ判断があった。「ディスクを暗号化するか」という選択肢だ。暗号化するとデータを守れるが、PCを再起動するたびにパスワードを手入力する必要がある。今回は「モニターもキーボードも繋がない状態で常時動かす」前提なので、再起動したとき画面上でパスワード入力待ちになると、外からネットワーク越しに操作する経路もそこで止まってしまう。今回は暗号化を見送った。セキュリティより「どこからでも繋がり続けること」を優先した選択だ。
インストールが2回失敗した
インストールを開始した。途中まで進んで、止まった。再起動してやり直したら、また止まった。しかも毎回違う場所で止まる。何かがランダムに起きている感じがして、少し消耗した。
調べてみると、原因はインストール用のUSBメモリの不良だった。別のUSBメモリに書き直して試したら、一度で通った。それだけのことだった。
インストール後にやった4つのこと
Ubuntuが動き始めてから、順番にやったことがある。
まずDockerを入れた。Dockerというのは、アプリケーションを「箱(コンテナ)」に入れて動かす仕組みだ。箱ごと管理できるので、複数のサービスが互いに干渉しにくく、「ここだけ止める」「ここだけ更新する」がやりやすい。以後このPCで動かすサービスは全部この形にするつもりだ。ちゃんと動くか確かめるため、テスト用のコンテナを一個起動してみたら、「Hello from Docker!」と表示された。嬉しかった。
次に、家のルーターに穴(ポート開放)を開けずに外からこのPCに繋げる仕組みを入れた。Tailscale(テイルスケール)というサービスで、デバイス同士が暗号化されたトンネルを張って繋がる。「自分だけの秘密の通路をインターネット上に作る」というイメージが近い。設定は数分で終わった。
それからSSHサーバーを有効にした。SSH(Secure Shell)というのは、ネットワーク越しに別のPCへコマンドで操作する仕組みだ。これを有効にすることで、モニターもキーボードも繋がないヘッドレスの状態でも、手元のPCやスマホのターミナルからこのPCを操作できるようになる。
最後に、自動でスリープに入らないよう設定した。24時間稼働が前提なので、電力節約でOSが勝手に眠ってしまわないようにする必要がある。
机の隅で静かに動き続けている
全部終わって、モニターとキーボードを外した。小さな箱がルーターの横に置かれ、LEDだけが微かに光っている。
別の部屋に移って、手元のPCからTailscale経由でSSH接続した。コマンドを打ったら応答が返ってきた。スマホからも試した。同じように返ってきた。
画面もキーボードも繋がっていない箱が、別の部屋から話しかけたら返事をする。分かってはいたが、実際にやってみると不思議な感覚があった。この箱が今後、24時間こうやって動き続けるのかと思うと、なんとなく頼もしかった。
次は、この箱に初めて自分のウェブサイトを乗せてみる。