アプリケーションを小規模なサービスに分割する作業を進めています。バックエンド サーバー (つまり、一般公開されていないサーバー) に新しいサービスを追加し、Web サーバーの /etc/hosts ファイルにエントリを作成します。サンプル エントリ
10.160.x.xx newservice.mydomain.com
この方法は機能します。しかし、Web サーバーからサービスをテストすると、ping は機能しますが、nslookup は機能しません。つまり、ping newservice.mydomain.com
成功ではなく、nslookup newservice.mydomain.com
なぜそうなるのでしょうか。nslookup も機能させるにはどうすればよいのでしょうか。
答え1
nslookup
DNS サーバーに問い合わせますが、DNS サーバーはローカル ファイルを認識していないhosts
ため、そのファイルに含まれるエントリを解決できません。DNShosts
ルックアップを介してファイルにアクセスできるようにするには、そのファイルに関する認識を持つ DNS サーバー (たとえば、systemd-resolved
ファイルを解析するように構成できる) を使用する必要があります。
ただし、hosts
各コンピューティング エンジン インスタンスはデフォルトの Google クラウド DNS サーバー ( ) を使用して解決できるため、エントリを使用するのは冗長に思えます169.254.169.254
。各コンピューティング エンジンの名前は次のとおりです。[INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
(内部DNSの詳細については、こちらをご覧ください。) なので、その名前でサーバーにアクセスできるはずです。