ブログ運営

Raspberry Pi 4を使ってサーバーを構築したい。

ご無沙汰しております。
前回の更新から、なんと21か月の時が流れました。
のんびり度合いに定評のある本ブログですが、引き続きのんびり更新を心がけてまいりたいと思います。
今後ともよろしくお願いいたします。
さて、タイトルの通り 思うところあってサーバーをヘッドレスで一新しました。
その際参考にさせていただいたページや情報をまとめておこうと思います。

そもそもどうしてラズパイを使おうと思ったのか

理由は大きく3つあります。

  1. 消費電力・騒音・騒音
    一つは、自宅サーバー特有の理由です。
    元々このブログを稼働しているサーバーは、過去記事にもある通り古いPC(10年以上前の年代物)をサーバー用に再利用した自宅サーバーです。レンタルサーバーではありません。
    そのため、結構電気代を食ってしまいますし、場所は取りますし、稼働中は割とうるさいです。(笑)
    電気代については実測してないので何ともですが、「デスクトップ 消費電力 平均」とかでググると「約100W」だとか、「約50~150W」だとかいう言葉が見受けられます。
    これに対して、今ラズパイにつなげているACアダプタは「5V 3A」と記載があるので、「MAX 15W」と考えると大変低消費電力と考えられそうです。
    騒音についても実測まではできてないのですが、「CPUの付属ファン+6cmファン×2+12cmファン」から「3cmファン」になりました。
    自分の使い方では、存在を忘れるほど静かです。耳のそばに持っていくとやっと聞こえるくらいです。
  2. ラズパイの進化
    もう一つは、近年のラズパイの性能アップが著しく、このブログの運用程度であれば何ら問題ない程度になっていたためです。
    今回選んだのは「Raspberry Pi 4 Model B」ですが、BCM2711が搭載(※)され、1.5GHzのコアを4つ積んでいます。メモリも4GBあります。
    (※ 後述しますが、コマンドで確認してみるとなんか違いました…どういうことなの…)
    数年前のノートパソコンと大差ない性能だといってもいいのではないでしょうか。
    本当に、いい時代になりましたね。。。
  3. CUI操作の練習
    仕事でもLinuxを使うことが割とあるんですが、どうしてもGUI操作に頼りがちです。
    CUIとGUIで同じことをしたつもりでも微妙に効果が違う(アクセス権が変わるなど)があって同じ結果にならないことがあったりと、不慣れなところで不都合がよくありました。
    ずっとそのままにするのもまずいと思い、ヘッドレス構成にしてSSH接続からのCUI操作に限定することで、いっそGUI操作が一切できない状態に追い込んで慣れてしまおう、という一種のショック療法です。

というわけで、ラズパイを使ってヘッドレス構成でサーバーを構築し直すことに相成りました。

サーバー構築に使用したもの

今回のサーバー構築には以下のような者たちにお世話になりました。

<ハードウェア関係>

購入したのは次の4つだけです。 総額1万円ちょいですかね。安い。
(ドメイン取得などの費用は対象外です。)

  • Raspberry Pi 4 Model B (メモリ4GB)
    性能は前述および後述の通り。
  • Miuzei製ラズパイケース [ MC04-14-JP ](電源ケーブル付き)
    ケースはなくても問題ないんですが、埃にまみれるのは気が引けるので。
    電源だけでなく、ファンやヒートシンクもついていていい感じです。
  • SanDisk製 microSDXC 128GB [ SDSQUAR-128G-GN6MN ]
    正直こんなに容量いらないんですが、なんか割と安かったので。
  • LANケーブル
    無線でも大丈夫なんですが、接続の安定性を踏まえて有線で。
    今回はヘッドレスでの構築なので、電源とLANケーブル以外は何も繋がってません。

<システム・ソフトウェア関係>

いわゆるLAMP構成+αです。

  • Raspbian Buster Lite
    構築した時点での最新版を使用しました。
    サーバー用途なので余計なものの入ってない最小構成のLiteです。
  • Apache 2 [ v2.4.38 ]
    最近話題のNginxとちょっと悩んだんですが、作っと構築したかったので。
  • MariaDB [ v10.3.22 ]
    今回初めて知ったのですが、最近はMySQLではなくその派生ディストリビューションにあたるMariaDBを使うのが主流のようです。
    コマンド自体はMySQLのものも引き続き使えるようなので、あまり深く考えずに行きます。
  • PHP [ v7.3.14-1 ]
    これは昔からバージョン以外は変わりませんね。
  • phpMyAdmin [ v4.6.6deb5 ]
    特に必須というわけではないんですが、CMSからはいじれないところを直接操作するのに便利だということがわかり、一応入れました。
  • WordPress [ v5.3.2–ja ]
    CMSとしては以前からお世話になっているWordPressさんに引き続き活躍していただきます。

<WordPress関係>

驚いたことに、デフォルトのブログテーマ以外は以下の4つしかインストールしてません。
それぞれが多機能でカバーできていて、インストール数を削減できて有難いです。

  • Akismet Anti-Spam
    スパム対策です。初めから入ってました。
  • Jetpack by WordPress.com
    アクセス解析や、サーバー落ち検知など、頼りになります。
    初めから入ってました。
  • WordPress インポートツール
    これまで使っていたサーバーから記事のデータなどをインポートするのに必要でした。
    公式のツールですが、一応WordPressのツールページからインストールが必要です。
    「All-in-One WP Migration」という超便利な引っ越しプラグインがあるようですが、無料版では最大512MBまでのデータ移行に対応、ということで自分のブログではがっつり容量オーバーしてしまいました。残念。
  • WordPress Theme “Cocoon”
    これまで使っていたブログテーマ「Simplicity」の後継に当たるものです。
    設計思想やデザインが好きです。機能も豊富。いつもありがとうございます。

参考にしたページ

今回のサーバー構築でお世話になったページを載せさせていただきます。

  • ラズパイへのOSインストール
    公式の推奨に従い、balenaEtcherを使ってインストールしています。
    SSHの設定やIP固定など、初期設定についてもとても詳しく載っています。
【Buster対応】Raspbianのインストールと最強の初期設定 | 純規の暇人趣味ブログ
Raspberry Piをサーバーにして使うときにやっておきたい設定いろいろ。Raspberry Piで使うDebian系LinuxのRaspbian、セットアップの時にやってる「インストールしたらこれをやるリスト」が肥大化してきたので、ここでまとめてご紹介します。
  • ラズパイのセキュリティ設定
    最低限必要なセキュリティ設定が一通り載っていて、とても参考になりました。
Raspberry Pi 3にLAMP環境をセットアップする
使用する環境はRASPBIAN JESSIE LITEで、LAMP環境をセットアップしたメモ。PHP7やMariaDBはインストールにひと手間かける必要があるみたいなので、PHP5とMySQLにした。説明の便宜上、設定内容は以下を仮定して記
Raspberry Pi 3にWordPressをインストールする
RASPBIAN JESSIE LITE環境にWordPressをインストールするメモ。LAMP環境の作り方はこちらの記事で。既にLAMP環境はセットアップ済みとする。WordPressのダウンロードと展開WordPressをダウンロードす
  • WordPressの引っ越し
    標準のインポートツールだけでなく、プラグインでの方法も載っています。
WordPressのサイトを別のサーバーに移行する方法【初心者向け】
他のサーバーにインストールされたWordPressにサイトを移動させる方法を初心者の方向けに解説しています。初めてサーバーの移行をするという人はぜひ一度見ておくとイメージがつかめるでしょう。
  • ブログテーマの使い方
    非常に多機能なテーマなのですが、公式ページにしっかり説明がまとまっています。
    非常にありがたいです。引き続き参考にさせていただきます。
Cocoon
SEO・高速化・モバイルファースト最適化済みのシンプルな無料Wordpressテーマ。100%GPLテーマです。

一つ一つ自分が書くよりも、よっぽどまとまってます。
先人の皆様に感謝いたします。

環境情報

おまけとして、コマンドで出力した環境情報を載せておきます。

< OS情報 >

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

<カーネル情報>

$ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

記載内容は下記のように読めばよいそうです。
()内はunameコマンドのオプションです。

  • OS名(-s): Linux
  • ノード名(-n): raspberrypi
  • リリース(-r): 4.19.97-v7l+
  • OSバージョン(-v): #1294 SMP Thu Jan 30 13:21:14 GMT 2020
  • マシン名(-m):armv7l

< CPU情報 >

$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 108.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 1
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 108.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 2
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 108.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 3
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 108.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

Hardware        : BCM2835
Revision        : c03111
Serial          : 100000002999ca1e
Model           : Raspberry Pi 4 Model B Rev 1.1

お分かりいただけたでしょうか。
表示されているHardware(SoC)が前情報で調べてたBCM2711ではなく、BCM2835になっているんです。
BCM2835は初代ラズパイに搭載されているもののはず…でもモデル名はラズパイ4…どういうことなんでしょうか。。。
これについてはイマイチわかりません。
とりあえず、期待した動きをしてくれているのでよしとしましょう。

[ 2020/03/31 追記 ]
調べていて一つ分かったことがあります。
このラズパイ、実は国内発売が待てずにBanggoodの海外通販で入手したんです。
そのせいか、どうやらeMarker内蔵のUSB Type-Cケーブルが使えない問題が修正される前のものでした。
よく見ると技適マークもついていません…無線一切使ってないのでまぁセーフですかね。
Hardwareもこの関係で何か表示がおかしくなっているのかな、と想像して納得しようと思います。。。

[ 2020/03/31 追記 ここまで ]

< メモリ情報 >

$ cat /proc/meminfo
MemTotal:        4050488 kB
MemFree:         3437516 kB
MemAvailable:    3588660 kB
Buffers:           52728 kB
Cached:           243576 kB
SwapCached:            0 kB
Active:           391664 kB
Inactive:         110664 kB
Active(anon):     235140 kB
Inactive(anon):    11452 kB
Active(file):     156524 kB
Inactive(file):    99212 kB
Unevictable:          16 kB
Mlocked:              16 kB
HighTotal:       3315712 kB
HighFree:        2853108 kB
LowTotal:         734776 kB
LowFree:          584408 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                80 kB
Writeback:             0 kB
AnonPages:        206040 kB
Mapped:            82668 kB
Shmem:             40572 kB
Slab:              49424 kB
SReclaimable:      19648 kB
SUnreclaim:        29776 kB
KernelStack:        1296 kB
PageTables:         3724 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2025244 kB
Committed_AS:    1211688 kB
VmallocTotal:     245760 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:              656 kB
CmaTotal:         262144 kB
CmaFree:          223000 kB

ちゃんと4GBありますね。

以上、いくつか新しい機能を使ってみながら書いてみました。
実はいろいろと足りてないことや不具合があるんですが、とりあえずの最小構成ということで。
暇を見つけて補填していきたいと思います。
それでは。


◇ 本日のお品 ◇

今回活躍してくれたラズパイです。
Arduinoは使ってみたことがあるんですが、ラズパイは初めてです。
流行ってるだけあって、さすがに情報がたくさんあって有難いです。
時間と気持ちに余裕があったら、他にもバージョンがあるのでいろいろ遊んでみたいです。

コメント

タイトルとURLをコピーしました