自宅サーバーに入門してみた
はじめに
みなさん、こんにちは👋
株式会社ソニックムーブでバックエンドエンジニアをしているなみきです
突然ですが、皆さんは自宅サーバーに興味はありますか?
最近ではVPSや各種クラウドサービスが主流となり、実際の物理的なサーバーを目の前で触る機会は少なくなってきているかもしれません
実際、私自身もこれまでそういった環境には縁がありませんでした
そんな中、こちらの動画を偶然目にしたことで、自宅サーバーへの興味が一気に高まり、今回思い切って構築に挑戦してみました
今回はその過程や気づきなどをまとめてみましたので
「ちょっと気になるかも」という方の参考になれば幸いです
全体の流れ
- サーバーマシンの調達
- Linuxのインストール
- webサーバーの構築
- ポート転送の設定
- ドメインの設定
それでは、1から順に見ていきましょう
1. サーバーマシンの調達
今回は「とにかく自宅で物理サーバーを動かしてみたい」という目的だったため、最低限のスペックを満たしてる中古のマシンをジャンクワールドさんで購入しました
以下がそのスペックです(送料込みで約10000円でした)
- CPU:Core i3-7130U
- メモリ:8GB
- ストレージ:128GB
- 機種:富士通 LIFEBOOK A577/T
2. Linuxのインストール
元々はWindowsが入っていましたが、やはりサーバー用途ならLinux一択
サーバー感(?)を味わいたかったので、今回はCLIで操作をするUbuntu Serverを選びました
インストールの手順は以下の通りです(a,bは別PC、c,d,eはサーバー用マシンで作業)
a. Ubuntu公式サイトからUbuntu ServerのISOファイルをダウンロード
b. Rufusを使い、USBメモリにISOを書き込み、ブータブルメディアを作成
c. USBメモリをサーバーに接続して再起動し、BIOS画面にアクセス
d. 起動オプションでUSBメモリのUbuntu Serverを選択
e. 画面の指示に従い、Ubuntu Serverをインストール
なお、この手順についてはこちらのブログを参考にさせてもらいました🙏
3. webサーバーの構築
ここでは、サーバーにApacheをインストールしていきます
手順は非常にシンプルです
sudo apt update
sudo apt install apache2
-
systemctl status apache2
(これでactiveになってればOKです)
このタイミングで、サーバーに対して固定のプライベートIPアドレスを振っておきました
通常はルーターの管理画面から設定できるため、詳しい手順はお使いのルーターのマニュアルをご参照ください
今回はサーバーのプライベートIPアドレスを192.168.3.200
に設定しました
同じLAN内にあるPCのブラウザから192.168.3.200
にアクセスすると、Apacheのデフォルトページが表示され、無事動作を確認できました👌
(なお、環境によっては80番ポートのファイアウォール設定が必要になる場合があります)
4. ポート転送の設定
ここまでで、LAN内からサーバーにアクセスできる状態になりました
次は、インターネットからもアクセスできるようにしていきます
実はこのままでは、先ほどまで構築していたwebサーバーへインターネット越しにはアクセスできません
ルーターは、インターネットからのリクエストを「LAN内のどのホストへ転送すべきか」を知らないためです
この問題を解決するため、ポート転送(ポートフォワーディング)の設定を行います
(セキュリティ上の観点から、詳細は割愛させてもらいます)
これで、インターネットからグローバルIPアドレス指定で、自分のwebサイトにアクセスすることができるようになりました👌
※注意事項
・インターネットからアクセス確認をする際は、wifiを切ったスマートフォンから確認するようにしてください。あるLAN内からインターネットを経由して同じLAN内にアクセスしようとすると、エラーになる場合があります
・ブラウザによっては特定ポートへのアクセス制限があるため、ポート転送で使用する番号には注意してください(例:Chromeではデフォルトで10080番ポートがブロックされています)
5. ドメインの設定
グローバルIPアドレス指定でアクセスできるようになりましたが、せっかくなのでドメイン名でもアクセスできるようにします
今回はmydnsを利用しました
mydnsはダイナミックDNSに標準対応しており、固定IPを持っていない環境でも非常に便利です。(しかも無料)
手順はシンプルです(詳しい使い方はこちらを参照してください)
- 会員登録
- 希望するドメインを登録
- IPアドレスの通知
取得したドメインにブラウザからアクセスすると、自分のwebサイトが表示されました
実際にインターネットからアクセスできるwebサーバーが、目の前にあるPCで動いてると考えると、ちょっとだけ感動しますね(自分だけ?)
※補足事項
・mydnsでは、固定IPかどうかに関わらず、定期的にIPアドレスを通知する必要があります
・自分は、IPアドレス通知用のシェルスクリプトを作成し、cronで1日1回自動実行する運用にしています
まとめ
今回は、中古PCを使った自宅サーバー構築について、サーバー選びからLinuxインストール、webサーバー公開、ドメイン取得までの流れを紹介しました
最初は難しそうだなと感じていたものの、やってみると意外と手順はシンプルで、ひとつひとつ進めていけば確実に形になっていく感覚がありました
特に、自分の立てたwebサーバーにインターネット越しにアクセスできたときの達成感は、思っていた以上に大きかったです
今の環境なら、ちょっとした検証用サーバーや、趣味のwebアプリ公開などに活用できそうだなと感じています
現状でも最低限動いてはいますが、サーバー運用を続けるにあたって、以下のようなことにも取り組んでいく予定です
・セキュリティ対策(ufwの設定)
・SSL/TLS対応(https化)
・バックアップ体制の整備
サーバーを「自分で持つ」からこそ、トラブルシューティング力や運用ノウハウも自然と身につきそうで、これからがさらに楽しみです
今後も、構築・運用を進めながら、気づいたことをまたまとめていければと思います🐦
Discussion