Docker、Linux、ネットワークを学ぶ学生のためのホームサーバー構築

Eva Wong は テクニカルライター であり、 生粋の技術好き としてZimaSpaceで活動しています。ホームラボやオープンソースソフトウェア をこよなく愛する生粋のギークで、複雑な技術概念をわかりやすく、実践的なガイド にまとめることを得意としています。Evaは、セルフホスティングは難しいものではなく、楽しむものだと考えています。チュートリアルを通じて、初めてのNAS構築からDockerコンテナの使いこなしまで、コミュニティがハードウェアのセットアップをわかりやすく理解できるよう 支援しています。、初めてのNAS構築からDockerコンテナの習得まで。

Linuxホスト1台、管理対象のサービスネットワーク1つ、少数のDocker Composeプロジェクトから始めます。学習目標に必要になった場合にのみ、仮想化やVLANを追加します。

優れた学生向けサーバーとは、サービスの数が最も多いサーバーではありません。メモを見て再構築でき、ストレージやネットワークの実際の仕組みがわかり、実験の失敗によって課題や家族のデータが危険にさらされないサーバーです。

ハードウェアを選ぶ前に学習目標を定める

最初の学期に学ぶ目標を3つ決めます。Linuxの管理、Dockerによるサービスのパッケージ化、DNS、IPアドレス指定、ルーティング、ポートを通じた通信の追跡です。ハードウェアは、コースそのものが目的にならない範囲で、これらの演習を支えられるものにします。

実際に学生がホームラボを構築した事例では、規模を広げすぎたクラスターを1台のDockerサーバーに簡素化した経緯が紹介されています。ノードを増やしても学習内容は向上せず、発熱と複雑さだけが増すとわかったためです。

ハードウェア仮想化に対応し、メモリを増設でき、有線イーサネットと交換可能なストレージを備えた、手頃な価格のx86ミニPCまたは再利用したノートパソコンを使います。最初の構成は、動作中のすべてのサービスについて学生が説明できる程度に小さく保ちます。

安定したサービスと使い捨ての実験環境を分ける

DNS、時刻同期、リモートアクセス、管理インターフェースは安定したゾーンに置きます。テスト用コンテナ、意図的に壊したファイアウォールルール、一時的なウェブアプリは、リセットできるラボネットワークに配置します。

家庭内で唯一のDNSリゾルバーを、実験に使うComposeプロジェクト内で動かさないでください。授業で失敗しても、ラボだけが停止し、ほかの家族のインターネット接続に影響しないようにします。

Composeファイル、シークレットを含まない環境変数テンプレート、ファイアウォールのメモ、復旧コマンドをバージョン管理に保存します。再構築は緊急時の手順ではなく、カリキュラムの一部です。

ストレージとシークレットの役割を明確にする

データの役割 場所 復旧ルール
Linuxホスト 小容量のシステムSSD メモを見て再インストール
コンテナの設定 バージョン管理されたプロジェクトフォルダー リポジトリから再作成
アプリケーションの状態 名前付きデータセットまたはボリューム 価値に応じてバックアップ
ラボファイル 使い捨てワークスペース バックアップ不要
課題データと家族のデータ 分離された保護対象共有 独立したバックアップ

各コンテナには必要なフォルダーだけをマウントします。練習用アプリケーションに、バックアップ先や家族共有フォルダーのルートへの書き込み権限を与えないでください。

パスワード、APIトークン、秘密鍵はComposeファイルの外で管理します。新しいシークレットの発行方法と、プロジェクト終了後の失効方法を記録します。

安全な順序でネットワークを学ぶ

まず、固定リース、ローカルDNS名、Dockerブリッジ1つ、リバースプロキシ1つから始めます。クライアントからDNS、ゲートウェイ、ホストのポート、コンテナまでリクエストをたどれるようになってから、別のラボサブネットまたはVLANを追加します。

仮想化ネットワークラボの事例は、分離されたネットワークとファイアウォールVMを使えば、本番LANを変更せずにルーティングを練習できることを示しています。

ファイアウォールのルールを追加する前に、管理経路を文書化します。誤ったルールを設定したときにサーバー全体をリセットせずアクセスを復旧する方法がわからないなら、次のネットワーク層に進むのは時期尚早です。

再構築テストとセット拡張の条件

リポジトリからコンテナを1つ再構築し、ステートフルサービスを1つ復元し、シークレットを1つローテーションして、パケットの経路を1つ説明します。こうしたテストのほうが、稼働時間だけを見るよりも学習の進捗をよく把握できます。

測定の結果、同時に行うラボ演習でスワップが発生するならRAMを増設し、使用中のデータセットがシステムディスクを圧迫するならSSDの容量を増やします。特定の分散システムまたは可用性の演習で必要な場合に限り、2台目のノードを追加します。ホームサーバーOSの選定ガイドを参考にすると、基盤プラットフォームを学習目的に沿ったものにできます。

学生がプラットフォームの保守に学習より多くの時間を費やすようになったら、拡張を止めましょう。完了したプロジェクトをアーカイブし、各学期の初めにホストを既知のベースラインに戻します。

最終的なセットアップのルール

各サービスに明確な役割があり、状態が保護され、アクセス経路が制御され、復元がテスト済みで、トポロジーを分割または拡張するための測定可能な条件があれば、セットアップは合格です。

NASとサーバーのセットアップ

続きを読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.