0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】TerraformでWindows Serverを構築してActive Directory環境を作成

0
Posted at

はじめに

AWS上にWindows Serverを構築し、Active Directory(AD)ドメインコントローラーとして昇格させるまでの手順をまとめました。
インフラ構築の自動化(IaC)としてTerraformを使用し、コストを抑えるためにすべてAWSの無料枠対象(t2.micro / SSD 30GB)の範囲内で実装しています。

1. TerraformによるWindows Serverのコード化(IaC)

まずはベースとなるWindows Serverの構築コードです。最新のWindows Server 2022のAMIを自動取得し、キーペアの生成とローカルへのダウンロードまでを自動化しています。

main.tf

provider "aws" {
  region = "ap-northeast-1" # 東京リージョン
}

# 無料対象の最新のWindows Server AMIを自動取得
data "aws_ami" "windows_latest" {
  most_recent = true
  owners      = ["amazon"]

  filter {
    name   = "name"
    values = ["Windows_Server-2022-English-Full-Base-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }
}

# 1台目:ADサーバーの定義
resource "aws_instance" "windows_free" {
  ami           = data.aws_ami.windows_latest.id
  instance_type = "t2.micro" # 無料枠対象

  key_name = aws_key_pair.windows_keypair.key_name 

  root_block_device {
    volume_size           = 30 # 無料枠の上限
    volume_type           = "gp3"
    delete_on_termination = true
  }

  tags = {
    Name = "Windows-Free-Tier"
  }
}

# 2台目:ドメイン参加テスト用クライアントの定義
resource "aws_instance" "windows_client" {
  ami           = data.aws_ami.windows_latest.id
  instance_type = "t2.micro" # 無料枠対象

  key_name = aws_key_pair.windows_keypair.key_name 

  root_block_device {
    volume_size           = 30 # 無料枠の上限
    volume_type           = "gp3"
    delete_on_termination = true
  }

  tags = {
    Name = "Windows-Client-PC"
  }
}

# --- キーペアの自動生成 ---
resource "tls_private_key" "windows_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

resource "aws_key_pair" "windows_keypair" {
  key_name   = "windows-terraform-key"
  public_key = tls_private_key.windows_key.public_key_openssh
}

resource "local_file" "private_key_pem" {
  filename        = "${path.module}/windows-terraform-key.pem"
  content         = tls_private_key.windows_key.private_key_pem
  file_permission = "0600"
}

⚠️ 注意(Git管理の落とし穴)
このコードを実行すると、ローカルに本物の秘密鍵(.pem)や、Windowsの初期パスワードが生テキストで記録された terraform.tfstate が生成されます。これらは絶対にGitHub等にプッシュしないよう、事前に .gitignore へ登録しておく必要があります。


2. Active Directory 役割のインストール

terraform apply 完了後、1台目のサーバーにリモートデスクトップ(RDP)で接続し、AD機能のインストールを進めます。

  1. サーバーマネージャー を開き、右上から ManageAdd Roles and Features を選択。
  2. Server Roles の画面までデフォルトのまま進み、Active Directory Domain Services にチェックを入れる。
  3. ポップアップが表示されるので、必ず Add Features をクリックして必要な関連機能を追加する。
  4. その後の Features 画面などは、そのまま何も弄らずに Next で進めて Install をクリック。

3. ドメインコントローラーへの昇格

インストール完了後、サーバーを正式にドメインコントローラーとして機能させるためのセットアップを行います。

  1. サーバーマネージャー右上の「通知(旗マーク)」をクリックし、Promote this server to a domain controller を選択。
  2. Deployment ConfigurationAdd a new forest(新しいフォレストを追加)を選択し、任意のルートドメイン名(例: test.local)を入力。
  3. Domain Controller Options でディレクトリサービス復元モード(DSRM)のパスワードを設定。
  4. その他の画面はデフォルトのまま進み、最後の Prerequisites Check(前提条件チェック) が完了するまで1〜2分待つ。
  5. チェックがパスしたら Install をクリック。
  6. インストール完了後、サーバーが自動的に再起動します。

再起動後、ログインアカウントが ドメイン名\Administrator に切り替わっていれば昇格成功です(管理ツールの「Active Directory Users and Computers」からも確認可能)。


4. クライアントマシンのドメイン参加に向けて(次のステップ)

手元の実機PCからインターネット経由で直接このADドメインにログインすることは、DNSの名前解決やセキュリティ(大量のポート開放をパブリックに行う危険性)の観点から推奨されません(AWS Client VPN等の導入が必要になります)。

今回は、同じVPC内にもう1台のWindows Server(Windows-Client-PC)をTerraformで同時にプロビジョニングしました。この2台を同一ネットワーク内で通信させ、ドメイン参加の挙動を検証していく予定です。


お疲れ様でした!この構成であれば、無料枠を維持しながら安全にADの検証環境を構築できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?