EC2インスタンスに「ネットワーク設定」を自動配布する仕組みを理解しよう
VPC の DHCP オプション は、 ホテルのチェックイン時に渡される案内情報 のようなものです。
🏨 ホテルにチェックインすると、フロントから以下の情報をもらいますよね:
EC2インスタンスも起動時に、DHCPオプションから「どのDNSを使うか」「どのドメインに属するか」などの情報を自動的に受け取ります。
案内情報を受け取る
DHCP で設定を受け取る
コンピューターがネットワークに参加する際に、IPアドレスやDNSサーバーなどの設定を 自動的に配布 するプロトコルです。
インスタンスがVPC内で起動を開始
「設定情報をください」とDHCPサーバーに要求
DHCPオプションセットの内容がインスタンスに配布される
DNS、ドメイン名、NTPなどが自動設定される
VPCのDHCPオプションセットで設定できる5つのパラメータを見ていきましょう。
デフォルトDNS(AmazonProvidedDNS)
= ビル備え付けの案内板
→ 基本的な場所は分かるが、会社独自の部署名は載っていない
カスタムDNS
= 自社専用の受付係を配置
→ 社内の独自ルールや非公開サーバーの場所も案内できる
| 項目 | 🏢 デフォルト DNS | 🎯 カスタム DNS |
|---|---|---|
| 提供元 | AWS(AmazonProvidedDNS) | 自前のDNSサーバー |
| IPアドレス |
VPC CIDR + 2
(例: 10.0.0.2) |
任意のIPアドレス |
| Route 53連携 | ✅ 自動連携 | ⚠️ 設定が必要 |
| 社内DNS連携 | ❌ 不可 | ✅ 可能 |
| ユースケース | シンプルな構成 | ハイブリッド環境、エンタープライズ |
# カスタムDHCPオプションセットを作成 aws ec2 create-dhcp-options \ --dhcp-configurations \ "Key=domain-name,Values=mycompany.internal" \ "Key=domain-name-servers,Values=10.0.1.100,10.0.2.100" \ "Key=ntp-servers,Values=169.254.169.123" # VPCにDHCPオプションセットを関連付け aws ec2 associate-dhcp-options \ --dhcp-options-id dopt-1234567890abcdef0 \ --vpc-id vpc-0987654321fedcba0
169.254.169.123
を指定すると、AWSのTime Sync Serviceを使用できます。うるう秒にも対応した高精度な時刻同期が可能です。
AWSTemplateFormatVersion: '2010-09-09' Description: 'Custom DHCP Options Set' Resources: CustomDHCPOptions: Type: AWS::EC2::DHCPOptions Properties: DomainName: 'mycompany.internal' DomainNameServers: - '10.0.1.100' - '10.0.2.100' NtpServers: - '169.254.169.123' Tags: - Key: Name Value: 'Custom-DHCP-Options' DHCPOptionsAssociation: Type: AWS::EC2::VPCDHCPOptionsAssociation Properties: DhcpOptionsId: !Ref CustomDHCPOptions VpcId: !Ref MyVPC
カスタムDNSを使いながらRoute 53も使いたい場合は、DNSサーバーの一つに
AmazonProvidedDNS
を含めることができます。
# AmazonProvidedDNS とカスタムDNSの併用 aws ec2 create-dhcp-options \ --dhcp-configurations \ "Key=domain-name-servers,Values=AmazonProvidedDNS,10.0.1.100"
オンプレミスのActive DirectoryやDNSサーバーと連携。社内ドメインの名前解決をAWSからも可能に。
DNSクエリを監査可能な自前のDNSサーバー経由に統一。DNSログの一元管理を実現。
各リージョンで異なるDNS設定を適用。グローバル展開時の地域固有の名前解決に対応。
金融システムなど、ミリ秒単位の時刻精度が求められる環境でカスタムNTPを指定。
DNSサーバーは必ず2台以上指定。異なるAZに配置してSPOFを防止しましょう。
DHCPオプションの変更は、既存インスタンスには即座に反映されません。DHCPリース更新または再起動が必要です。
ドメイン名は組織全体で一貫した命名規則を使用。例: env.region.company.internal
カスタムDNSサーバーの可用性とレスポンスタイムを監視。障害時の影響は甚大です。
変更前の設定を記録し、問題発生時はデフォルトDHCPオプションに戻せるようにしておきましょう。
本番適用前に開発/テスト環境でDNS解決が正常に動作することを確認しましょう。
原因:
既存インスタンスはDHCPリース期間中は古い設定を保持
解決策:
インスタンスを再起動するか、OS上で
sudo dhclient -r && sudo dhclient
を実行
原因:
カスタムDNSはRoute 53に直接アクセスできない
解決策:
Route 53 Resolver Inbound Endpointを作成し、カスタムDNSからフォワード設定
確認ポイント:
・DNSサーバーのセキュリティグループでポート53(UDP/TCP)が許可されているか
・DNSサーバーが正常に稼働しているか
・ネットワークACLでDNSトラフィックがブロックされていないか
# 現在のDNS設定を確認 cat /etc/resolv.conf # DNS解決テスト nslookup myserver.mycompany.internal # 特定のDNSサーバーを指定してテスト dig @10.0.1.100 myserver.mycompany.internal # DHCPリースの更新 sudo dhclient -r && sudo dhclient
Created by SSuzuki1063
AWS SAP Learning Resources