インスタンスを再起動しても保持される静的 DNS サーバーエントリを使用するように EC2 インスタンスを構成する方法を教えてください。カスタム DNS サーバーアドレスを使用する resolv.conf ファイルを手動で更新すると、EC2 インスタンスを再起動した際に更新が失われます。

Virtual Private Cloud (VPC) に関連付けられた Amazon EC2 インスタンスのデフォルトの動作では、DHCP (Dynamic Host Configuration Protocol) を使用して起動の際に DNS サーバーアドレスをリクエストします。VPC は DHCP リクエストに対して、内部 DNS サーバーのアドレスを応答します。DHCP への応答で返された DNS サーバーアドレスは、local /etc/resolv.conf ファイルに書き込まれ、TCP/IP 名の解決リクエストに使用されます。resolv.conf ファイルに手動で加えられた変更は、インスタンスを再起動したときに上書きされます。

静的 DNS サーバーエントリを使用するように、Ubuntu または Debian Linux が実行されている EC2 インスタンスを設定するには、vim などのテキストエディターを使用してファイル/etc/dhcp/dhclient.conf を編集し、ファイルの末尾に以下の行を追加します。
     supersede domain-name-servers xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx;
ここで、xxx.xxx.xxx.xxx は、EC2 インスタンスで使用する DNS サーバーの IP アドレスです。このファイルは読み取り専用のため、ファイルの変更に十分な権限があるユーザーアカウントに切り替えてから、ファイルを編集する必要があります。そのためには一般的に、コマンドの前に sudo を付け、適切なパスワードを指定して、root 権限を一時的に取得します。この変更の結果、インスタンスが再起動されたときに指定した DNS サーバーのみを含むように resolv.conf ファイルが更新されます。

supersede ステートメントを使用して、dhclient.conf ファイルで指定したオプションをすべて、ローカルで設定した値で上書きすることもできます。たとえば、DHCP によって返されるドメイン検索とドメイン名の値を置き換える場合は、dhclient.conf の末尾に以下の行を追加できます。
     supersede domain-search "example.com";
     supersede domain-name "example.com";

Amazon EC2, VPC, DHCP, 静的 DNS, resolv.conf, dhclient.conf, リブート, 再起動, Linux, Ubuntu, Debian


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2015 年 11 月 6 日