n週刊 自宅サーバを作る 創刊号

おことわり

本記事は勉強のメモがてら作成している。内容の正確性については一切保証できないためご了承いただきたい。誤りがあればご指摘いただければ大変うれしい!

きっかけ

なにかモノづくりとIT学習を兼ねた勉強方法が無いか探していたところ...

自宅サーバ作りたい...作りたくない?

と聞こえてきた。たしかに! しかもRaspberry Piという手ごろなハードが便利らしいとの情報を入手。
AWSなどのクラウドに触れる前に、まずはオンプレミスで作ってみて修行したい。

野望

超ざっくり、以下のようなキーワードで学習を進めたい。

  • Web サーバ
  • APサーバ
  • API
  • ネットワーク
  • セキュリティ
  • IoT

ステップとしては以下のような流れを想定。

  • STEP0
    • サーバとなるハードを調達/整備する
    • 環境構築する
      • 大変そう...?
  • STEP1
    • Webサーバを立てる
    • 何かしらデプロイ?する
    • ローカルホストで立ててアクセスする
  • STEP2
  • STEP3
    • アプリを作る
      • まずは簡単なものから
      • そのうち簡単なAPI設計とかもしてみたい
      • その前にWeb サーバとAPIの違いあたりも勉強せねば
  • STEP4
    • IoT機器として機能させる
      • 各種ハードの整備
      • アプリの整備
      • ここまで常時稼働させるなら電気代とか熱設計とかも考慮した方がいいのか?
    • 例えば
      • 気温を取ってDBに記録するとか
      • API経由でDBのデータを取ってこれるようにするとか

Raspberry Piとは

シングルボードコンピュータの1種。
ざっくり言うと手のひらサイズコンピュータのこと。(マイコンとはちょっと違うらしい?)
https://www.raspberrypi.com/
CPU、メモリ、オンボードチップセットからI/Oまで一通りそろっている。しかも1万円程度で購入できる。安い。それでいてデュアルディスプレイ対応などそれなりにハイスペック。いい時代になった。

OSはLinuxGUICUICLI?)も使える。

他のシングルボードコンピュータとの違い

他の有名どころとしてはArduino、M5Stackなどがある。違いはよくわからん。
以下を参考にする。
比べれば分かる!ラズパイ・Arduino・M5Stackの特徴と使い分け【第1回】

こんなときはRaspberry Pi(ラズパイ)から始めよう
① 映像を表示するデバイスの開発がしたい
② USB接続で使える機器を導入したい
③ パソコン上で動作するプログラムを扱いたい
④ 大部分はパソコン上のアプリケーションで動くが、簡単な入出力もしたい

.

ArduinoやM5Stackのほうがいい“かもしれない“ケース
①必ずしもパソコン上のアプリで動作させなくてもいいとき
②電源を立ち上げて瞬時に動作させたいとき
③消費電流を抑えたいとき

うーん、アプリをデプロイしたり、将来的にIoT機器として働かせたいeat-sushiとしてはRaspberry Piでよさそう?

Raspberry Piの種類

色々あるらしい。3とか4とか。
Pico(マイコン)やZero(低スペック)はもはや別物。
https://sozorablog.com/raspberry-pi-pico/
https://raspi-school.com/versions-of-raspberrypi/#Raspberry_Pi_%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA
https://manumaruscript.com/raspberrypi-model-comparison/
今回はサーバとして無理なくアプリを稼働させたいので、余裕のある4B+でよさそう。というか3以前のものは入手困難OR高額。

次回

Webサーバの立ち上げまでには何を準備すべきか学ぼう。