VirtualBoxで自宅ラボを構築!Windows ServerでActive Directory環境を丸ごと作ってみた


はじめに

「サーバー触りたいけど、現場以外で触る方法がない……」

インフラエンジニアをやっていると、こういう悩みにぶつかります。現場では手順書通りの操作しかできないし、自由に試せる環境がない。かといって、クラウドで検証環境を作るとお金がかかる。

そんな中、次の案件が始まるまでのスタンバイ期間に時間の余裕ができました。「この時間をただ待つだけで過ごすのはもったいない。上流工程を見据えて、設計から構築までの経験を積もう」——そう思って、AIに何をすればいいか相談したところ、提案されたのが自宅ラボ(ホームラボ)でのサーバー構築ハンズオンでした。

最初は仮想サーバーを1台立てるだけのつもりだったのですが、気づいたらサーバーが6台に増えて、監視ダッシュボードまで自作していました。 この記事では、そのホームラボの全体像と、何を作って何を学んだかをまとめます。


きっかけと勉強方法

スタンバイ期間をチャンスに変える

SES(客先常駐)で働いていると、案件と案件の間にスタンバイ期間が発生することがあります。次の配属先が決まるまでの待機時間です。

この期間に何もしないのは本当にもったいない。私は「上流工程に必要な経験を自分で作ろう」と考え、まずAIに相談しました。「インフラエンジニアとして上流工程を目指すために、自宅でできる実践的な勉強は何がありますか?」と。

提案されたのが、VirtualBoxでWindows Serverの環境を構築し、Active Directoryを中心としたインフラ基盤を丸ごと作るというハンズオンでした。

VirtualBoxは久しぶり

VirtualBoxは、約2年前にLinuC Level1の資格勉強のときにCentOSやDebianを触るのに使ったことがありました。でもそれ以降はまったく触っていなかったので、正直「できるかな?」という不安はありました。

AIに全部聞くスタイル

不安はありましたが、CCNA試験の勉強で「AIに先生になってもらうハンズオン」が効果的だったので、今回も同じアプローチで行くことにしました。

わからないことはAIに全部聞く。 遠慮しない。些細なことでも聞く。

「Windows Serverのインストール手順教えて」「ADって何?」「DNSをセットで入れる理由は?」——最初はそのレベルからスタートです。AIが手順を教えてくれて、その通りに操作して、わからなければまた聞く。このサイクルを繰り返しました。
LinuCの時にVirtualBoxを使ったときはAIがまだなかったので、調べても分からないし詳しい人も周りにいなかったのでわからないまま放置していた部分がたくさんありましたが、今なら聞けばなんでも教えてくれるので確実に一歩ずつ前進していく実感がわいて純粋にワクワクしました。

1台が2台に、2台が6台に

最初はAD01サーバー1台を立ち上げるところから始まりました。Active Directoryを構築して、ユーザーやグループを作成して……「おお、ドメインってこうやって作るのか」と感動。

すると次は「ファイルサーバーを追加してADと連携させてみよう」という提案が来る。FILE01を構築して権限管理を設定。「次はWebサーバーも立てて……」「監視もあったほうが実務っぽい……」

気づいたら6台のサーバーが連携する本格的なインフラ環境になっていました。 最初は1台だけのつもりだったのに。


プロジェクトの全体像

コンセプト:架空の会社のインフラを設計から構築する

ただサーバーを立てるだけではなく、架空の会社「株式会社モブ」(社員20名規模)のインフラ環境を、要件定義から設計・構築するというストーリーで進めました。

実務で上流工程に携わるためには、「なぜこの構成にするのか」を説明できる力が必要です。なので、いきなり構築に入るのではなく、要件定義書と基本設計書をまず作成してから手を動かしました。

サーバー構成:6台で構成

サーバー名 役割 IPアドレス
AD01 Active Directory / DNS / DHCP 192.168.10.10
FILE01 ファイルサーバー 192.168.10.20
IIS01 Webサーバー(IIS) 192.168.10.30
MON01 監視サーバー 192.168.10.40
BK01 バックアップサーバー 192.168.10.50
CLIENT01 クライアントPC DHCP

すべてVirtualBox上のWindows Server 2022で構築。ドメインは corp.local です。


構築した機能一覧

1. Active Directory(AD DS)+ DNS

ホームラボの土台となる部分です。

  • AD DS(Active Directory Domain Services) でドメイン corp.local を作成
  • OU(組織単位) を作成して、ユーザーアカウント・グループ・サーバーを分類
  • DNS はADと一緒にインストール。ADはDNSに依存するので、セットで構築します

学んだこと:
– ADは「認証情報を一元管理する仕組み」。ユーザー・パスワード・権限を一箇所で管理できる
– 権限はユーザー個別ではなくグループに付与するのが運用の基本
– サーバーには固定IPが必須。DHCPに任せるとADが不安定になる

2. DHCP

クライアントPCに自動でIPアドレスを配布するDHCPサーバーを構築しました。サーバーは固定IP、クライアントはDHCPという実務でもよくある構成です。

3. ファイルサーバー

FILE01に共有フォルダを作成し、ADのグループを使ったアクセス制御を実装しました。

  • 共有権限とNTFS権限の二重構造を理解。実質的なアクセス制御はNTFS権限で行う
  • グループベースの権限管理を実践。ユーザー「yamada」→「GG_Sales」グループ→「Sales」フォルダという構成
  • 権限のないユーザー(test02)でアクセス拒否されることも検証済み

さらに監査機能も実装。ファイルの削除・読み取りなどの操作をイベントログで追跡できるようにしました。「誰が、いつ、何を消したか」がわかる仕組みで、情報漏洩調査やファイル消失時の追跡に使えます。

学んだこと:
– 共有権限とNTFS権限は二重評価され、より制限的なほうが適用される
– 人事異動時はグループの所属変更だけで権限が自動調整される
– DACL(アクセス許可)とSACL(監査ログ)は別の仕組み

4. グループポリシー(GPO)

ドメイン内のPCに対して、設定を一括で適用するGPOを構成しました。実務ではセキュリティポリシーの適用やソフトウェアの配布などに使われます。

5. IIS(Webサーバー)

IIS01にIIS(Internet Information Services)を構築。後述する監視ダッシュボードをブラウザから閲覧できるようにするための基盤です。

6. 監視ダッシュボード(PowerShellで自作)

このプロジェクトで一番力を入れた部分です。

MON01でPowerShellスクリプトを使って監視ダッシュボードを自作しました。バージョンを重ねて改善を繰り返しています。

監視対象:
ディスク使用率 — サーバーごとのドライブ使用率と状態を表示
サービス状態 — DNSなどの重要サービスの稼働状態を監視
イベントログ — 異常なイベントを検出して表示

仕組み:
1. PowerShellスクリプトが各サーバーの状態を収集してログファイルに出力
2. ログを解析してHTMLテンプレートに動的に埋め込み
3. IIS経由でブラウザからダッシュボードを閲覧

バージョンの変遷:
v1 → 基本的なサーバー状態表示
v2 → ディスク・サービス・イベントログを統合した単一ダッシュボード。最終更新時刻の表示も追加
v2.1 → コードのリファクタリングで保守性を向上
v3 → アラート通知機能を追加。異常(ALERT)のみを抽出して通知する仕組み。最新20件表示と重複削除機能も実装

学んだこと:
– PSCustomObjectを活用したデータ管理
– HTMLテンプレートへの動的データ埋め込み
– ログ形式の設計が後工程の使いやすさに直結する
– リファクタリングの重要性(v2.1で実感)

7. バックアップ

BK01でバックアップ環境を構築。障害時にデータを復元できる体制を整えました。

8. WSUS(Windows Server Update Services)

ドメイン内のPCに対してWindows Updateを一元管理するWSUSの構築にも挑戦しました。ただし、初回同期が完了しないトラブルが発生。サービス起動状態やDNS名前解決は正常だったものの、同期が0%のまま進まない状態に。

原因の完全な特定には至りませんでしたが、トラブルシューティングの過程自体が学びになりました。WSUSの4つの重要設定(Products、Classifications、Synchronizations、Options)や、同期トラブル時の切り分け手順を学ぶことができました。


なぜ「要件定義」から始めたのか

このプロジェクトでは、構築の前に要件定義書と基本設計書を作成しています。
とはいえっても、パワポで簡単に作ったものなのでクオリティは低いです。
正直、自宅ラボなら「とりあえず作ってみる」でも全然OKだと思います。でも私があえてドキュメントから始めた理由は、上流工程のスキルを経験したかったからです。

インフラエンジニアとしてキャリアアップするには、「言われた通りに構築する」だけでなく「なぜこの構成にするのか」を設計・説明できる力が必要です。要件定義書には「なぜ必要か」「何を実現するか」を、基本設計書には「どういう構成で実現するか」を書くことで、設計思考の練習にもなります。


使った環境とコスト

項目 内容
仮想化ソフト VirtualBox(無料)
ホストOS Windows 11
ゲストOS Windows Server 2022(評価版・180日間無料)
スクリプト PowerShell
バージョン管理 GitHub
先生 AI(CHAT-GPT)

かかったお金は0円です。 Windows Serverの評価版は180日間無料で使えるので、学習目的なら十分。VirtualBoxも無料。必要なのはPCのスペック(メモリ16GB以上推奨)だけです。
CHAT-GPTはもともとサブすく入ってましたので、追加は無しって感じです。


今後の予定

まだやりたいことはたくさんあります。

  • クライアントPCの追加とドメイン参加
  • 監視ダッシュボードのさらなる改善
  • Terraformとの連携(IaC化)
  • 障害対応訓練(DRテスト)のシミュレーション

自宅ラボの良いところは、壊しても誰にも迷惑がかからないこと。新しい技術を試すのも、失敗するのも自由です。
今回初めての経験で、AI先生に教わりながら操り人形のように作業をしておりますので完全に理解できているわけではなく、一から自分一人で構築して、スクリプト書いて、連携させて、というのはまだまだ難しいのが本音です。
ですが、経験するには実際に業務に携わるか自力で調べて構築するストロングスタイルしかない中で、AIを使って一通りの経験が詰めたので、スタンバイ期間をとても意味のある期間にできたのではないかと思います。

今後さらに発展させて一通りの経験を詰めた後は、全部リセットして改めて再構築しようかなと思っています。


まとめ

  • スタンバイ期間を活用して、AIに教わりながらActive Directory環境を丸ごと構築した
  • 最初は1台のサーバーから。AIの提案で機能を追加していくうちに、6台構成の本格インフラ環境に成長
  • AD・DNS・DHCP・ファイルサーバー・GPO・IIS・監視ダッシュボード・バックアップ・WSUSと幅広くカバー
  • PowerShellで監視ダッシュボードを自作し、v1→v2→v2.1→v3とバージョンアップを重ねた
  • 要件定義書・基本設計書の作成から始めて、上流工程のスキルも意識
  • コストは0円。 必要なのはPCとやる気だけ

筋トレで言えば、ジムの器具を使って部位ごとにトレーニングするのが実務だとしたら、自宅ラボはホームジムを作って好きなだけ鍛えるようなものです。場所も時間も自由、失敗しても誰にも怒られない最高の練習環境です。

インフラエンジニアとしてスキルアップしたいけど現場では自由に触れない——そんな方は、ぜひ自宅ラボを試してみてください。VirtualBoxとWindows Serverの評価版があれば、今日から始められます。


コメント

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