はじめに
こんにちは。hiranoです。
今回は、DHCPオプションセットを使って、EC2上に構築したドメインコントローラー兼DNSサーバーを、他のWindows EC2にDNSサーバーとして配布してみます。
DHCPオプションとは、DHCPでIPアドレスを配布する際に、DNSサーバーやドメイン名などのネットワーク設定もあわせてクライアントへ通知するための設定です。AWSでは、DHCPオプションセットを使うことで、VPC内のEC2インスタンスに配布するDNSサーバーやドメイン名を指定できます。
通常、VPC内のEC2はAmazonProvidedDNSを使って名前解決できます。
一方で、Active Directory(以降、ADとする)ドメインに関する情報は、ADドメイン用のDNSで管理されます。
Windows EC2がADドメインに参加する際は、DNSを使ってドメインコントローラーを探しますが、AmazonProvidedDNSだけではドメインを見つけられない場合があります。
そのため、他のWindows EC2をADドメインに参加させるには、ADドメインの名前解決を担当するDNSサーバーを参照できるようにしておく必要があるというわけです。
本記事では、EC2上にActive Directory Domain Services(以降、AD DSとする)とDNSサーバーを構築し、DHCPオプションセットで他のWindows EC2にAD DNSを配布します。
そのうえで、作成したドメインに参加させ、最後にADユーザーでログインできることを確認します。
前提条件
前提として、今回は作成済みのVPC環境を使用して実践していきます。
VPC、パブリックサブネット、Internet Gateway、ルートテーブルは既に作成されており、
パブリックサブネット上の EC2インスタンスへRDP接続できる状態になっていることとします。
そのため、後述の実践編ではVPCやサブネットなどのネットワーク作成手順は扱いません。
本記事で作成・設定する主なAWSリソースは以下です。
・Security Group(RDPやAD関連通信を許可する)
・EC2(Windows Serverを2台作成する)
- 1台目をAD DSとDNSサーバーを構築するAD01とします。
- 2台目をドメイン参加を確認するためのMEMBER01とします。
・DHCP オプションセット(VPC内のEC2にDNSサーバーやドメイン名を配布するために使用する)
また、Active Directoryの細かな設計や本番利用を想定した冗長構成までは行いません。
あくまで検証用の最小構成として、DHCPオプションセットを使ってAD DNSをWindows EC2に配布し、
ドメイン参加できることを目的とします。
それでは、やっていきます。
実践編
1. Security Groupの作成
まずは、Windows EC2に適用するSecurity Group(以降、SGとする)を作成します。
SG名は簡単にad01-sgとmember01-sgにしましょう。
今回、MEMBER01をADドメインに参加させるには、MEMBER01からAD01に対してDNS、Kerberos、LDAP、SMB、RPCなどのActive Directory関連の通信ができる必要があります。
また、Windows EC2上で設定作業を行うため、作業端末からRDP接続できるように、以下のルールで作成します。
ad01-sgのインバウンドルール
| 用途 | Type | Protocol | Port | Source |
|---|---|---|---|---|
| RDP接続 | RDP | TCP | 3389 | <作業端末のIP>/32 |
| DNS | DNS(TCP) | TCP | 53 | member01-sg |
| DNS | DNS(UDP) | UDP | 53 | member01-sg |
| Kerberos(AD認証) | カスタムTCP | TCP | 88 | member01-sg |
| Kerberos(AD認証) | カスタムUDP | UDP | 88 | member01-sg |
| LDAP(ディレクトリ参照) | LDAP | TCP | 389 | member01-sg |
| LDAP(ディレクトリ参照) | カスタムUDP | UDP | 389 | member01-sg |
| SMB(ドメイン参加等) | SMB | TCP | 445 | member01-sg |
| RPC Endpoint Mapper(RPC通信) | カスタムTCP | TCP | 135 | member01-sg |
| Global Catalog | カスタムTCP | TCP | 3268 | member01-sg |
| Dynamic RPC | カスタムTCP | TCP | 49152-65535 | member01-sg |
member01-sgのインバウンドルール
| 用途 | Type | Protocol | Port | Source |
|---|---|---|---|---|
| RDP接続 | RDP | TCP | 3389 | <作業端末のIP>/32 |
★補足
MEMBER01側は、基本的に作業端末からRDP接続できればよいので、インバウンドルールはRDPのみで進めます。
また、アウトバウンドルールはデフォルトのままで進めます。
2. AD01の構築
ここからは、ADの中心となるAD01を構築します。
このサーバーにAD DSとDNSサーバーの役割を追加し、ad-test.localドメインのドメインコントローラー兼DNSサーバーとして利用します。
2.1 AD01用のEC2インスタンスを作成する
WindowsのEC2インスタンスを作成します。
主な設定値は以下です。詳細な作成手順は割愛します。
| 項目 | 設定値 |
|---|---|
| AMI | Microsoft Windows Server 2025 Base |
| インスタンスタイプ | t3.medium |
| VPC | 作成済みの検証用VPC |
| サブネット | 作成済みのパブリックサブネット |
| SG | ad01-sg |
| プライベートIP | 任意のIPアドレス(※) |
※DHCP オプションセットで指定するIPアドレスになります。
2.2 コンピュータ名を「AD01」に設定する
作成したAD01サーバーにRDP接続します。
インスタンス名がWindows Server内部のコンピュータ名に自動反映されるわけではないので、
Server Managerから手動でAD01に設定します。

2.3 AD01をドメインコントローラー兼DNSサーバーとして構成する
ここでAD01にAD DSとDNSサーバーの役割を追加し、新規フォレストad-test.localのドメインコントローラーとして昇格させます。
これにより、AD01はad-test.localドメインのドメインコントローラー兼DNSサーバーとして動作します。
引き続き、Server Managerにて作業していきます。
AD DSとDNSサーバーの役割追加は、
Manage → Add Roles and Features → AD DS/DNS Serverの追加 → install の流れです。

★補足
必要な管理ツールの追加確認が表示された場合は、Add Featuresをクリックして進めていきます。

新規フォレスト作成は、役割のインストール完了画面から続けていきます。
Promote this server to a domain controller → Add a new forest → ad-test.localを設定の流れです。

フォレスト名入力後にNext >をクリックするとドメインコントローラーの設定に移ります。
主な設定値は以下です。
| 項目 | 設定値 |
|---|---|
| Forest functional level | Windows Server 2025 または選択可能な既定値 |
| Domain functional level | Windows Server 2025 または選択可能な既定値 |
| Domain Name System DNS server | チェックあり |
| Global Catalog GC | チェックあり |
| Read only domain controller RODC | チェックなし |
| DRSM password | 任意のパス |
その他はデフォルトのまま進め、インストールしていきます。
このタイミングでドメインコントローラーへの昇格処理も開始され、完了後にサーバーは自動的に再起動します。
再起動後にRDPでAD01に接続しますが、サインイン時は、昇格前のローカル Administrator ではなく、
ドメインの Administrator としてサインインします。
今回のNetBIOS名はAD-TESTになったため、ユーザー名はAD-TEST\Administrator、パスワードは昇格前に Administrator で使用していたものを入力します。
サインインできれば、AD01 のドメインコントローラー化は完了です。
※赤表示が見えますがAD DS/DNSとは関係ない内容のため、放置してます。

★補足
インストールする直前に「Prerequisites Check」という項目があります。
ここでは、ドメインコントローラーへ昇格するための前提条件チェックが実行されるので「All prerequisite checks passed successfully.」が表示されることを確認します。
警告がいくつか表示されますが、問題ない内容であれば進めましょう。

3. DHCP オプションセットを作成する
AD01側の準備が整ったので、DHCPオプションセットを作成します。
VPCのコンソール画面からDHCPオプションセットを選択し、設定していきます。
今回の主な設定値は以下です。
| 項目 | 設定値 |
|---|---|
| DHCPオプションセット名 | dhcp-ad-test-local |
| ドメイン名 | ad-test.local |
| ドメインネームサーバー | AD01のプライベートIPアドレス |
| NTPサーバー | 未指定 |
| NetBIOS ネームサーバー | 未指定 |
| NetBIOS ノードタイプ | 未指定 |
★補足
今回は、AD DNSをEC2に配布してドメイン参加を確認することを目的としているため、
設定は最低限にして、NTPサーバーやNetBIOS関連の項目は未指定としました。
NTPは時刻同期先を配布するための項目ですが、今回の検証では既定の時刻同期設定を利用します。
また、NetBIOSネームサーバーやNetBIOSノードタイプはWINS/NetBIOS名前解決向けの項目であり、今回はDNSによる名前解決を前提とするため設定しません。

続いて、作成したDHCPオプションセットをVPCに関連付けます。
関連付けは対象のVPC設定から行います。

4. MEMBER01の構築
それでは、MEMBER01を作成して、DHCPオプションセットでAD01のDNSが配布されているか確認していきます。
4.1 MEMBER01用のEC2インスタンスを作成する
こちらもEC2インスタンスを作成します。
主な設定値は以下です。詳細な作成手順は割愛します。
| 項目 | 設定値 |
|---|---|
| AMI | Microsoft Windows Server 2025 Base |
| インスタンスタイプ | t3.medium |
| VPC | AD01と同じ検証用VPC |
| サブネット | 作成済みのパブリックサブネット(※) |
| SG | member01-sg |
※検証を分かりやすくするため、AD01と同じパブリックサブネットに作成しますが、本来はドメインコントローラーやメンバーサーバーの配置、サブネット分離、冗長化、アクセス制御など検討が必要です。
4.2 コンピュータ名を「MEMBER01」に設定する
MEMBER01サーバーにRDP接続後、AD01サーバーと同様にコンピュータ名を変更します。

4.3 AD01のDNSが配布されていることを確認する
MEMBER01サーバーでコマンドプロンプトを開き、以下のコマンドを実行します。
# ネットワークアダプターのDNS Serversを確認 ipconfig /all # ad-test.localを名前解決できるか確認 nslookup ad-test.local
DNS Serversと名前解決時のAddressにて、AD01のプライベートIPアドレスが表示されていることが確認できれば、DHCPオプションセットによって正常にAD01のDNSが配布されています。
4.4 MEMBER01をad-test.localドメインに参加させる
Server ManagerからMEMBER01をad-test.localドメインに参加させます。
Local Server → Computer name → 所属するグループでドメインを選択 → ad-test.localを入力 の流れです。
ドメインに参加するためにユーザー名とパスワードを聞かれるので、AD-TEST\Administratorを入力します。

認証に成功すると以下のメッセージが表示されます。

ドメイン参加後は再起動が求められます。
再起動後、MEMBER01はad-test.localドメインに参加したメンバーサーバーとして動作します。
5. ADユーザーを作成する
ドメイン参加したMEMBER01にログインするためのADユーザーを作成します。
AD01サーバーにRDP接続し、Server Managerから作成していきます。
Tools → Active Directory Users and Computers → ad-test.local → Users → 新規作成 → ユーザーの流れです。

最後に、作成したADユーザーでMEMBER01サーバーにログインできれば問題なしです。
![]()
★補足
作成したADユーザーは、デフォルトでMEMBER01サーバーにRDP接続する権限がない場合があります。
権限付与はMEMBER01サーバーのServer Managerからもできますので、必要に応じて追加しましょう。
まとめ
今回は、DHCPオプションセットを使って、EC2上に構築したAD DNSを別のWindows EC2に配布し、ドメイン参加とADユーザーでのログイン確認を行いました。
ADでは、ドメインコントローラーの検索やドメイン参加時の処理にDNSが使われるため、Windows EC2をADドメインに参加させるには、AD DNSを参照できる状態にしておくことが重要です。
そこで、DHCPオプションセットを使って、DNSサーバーとしてAD01のプライベートIPアドレスを配布しました。
その結果、MEMBER01側で手動でDNSサーバーを設定しなくても、DHCPによってAD01のDNSを参照できるようになり、
ad-test.localドメインへ参加できました。
DHCPオプションセットを使うと、VPC単位でDNSサーバーを配布できるため、各EC2インスタンスに個別でDNS設定を入れる必要がなくなります。
設定項目に関してもシンプルで、比較的簡単に構成できるサービスになりますので、EC2上にActive Directoryを構築し、複数のWindows EC2をドメイン参加させる場合は、DHCPオプションセットを使ってAD DNSを配布する方法をおすすめします。




