「あのサーバー、名前は何だっけ?」VPC内のDNS解決を、郵便配達で紐解いてみよう
こんにちは!クラウドインフラの深淵を日々探求しているSREです。
AWSでVPC(Virtual Private Cloud)を構築し始めたとき、皆さんはこんな経験をしたことがありませんか?「EC2インスタンスを立ち上げたけど、この子ってどうやって外の世界や他のサーバーの名前を知るんだろう?」と。
IPアドレス(10.0.0.5のような数字の羅列)を覚えるのは、人間には至難の業です。私たちが電話帳を使うように、ネットワークの世界にも「名前(ドメイン)」と「場所(IPアドレス)」を紐付ける「DNS(Domain Name System)」という仕組みが必須です。
今日は、AWSという巨大な仮想都市において、VPCが標準で提供している「影の立役者」である AmazonProvidedDNS について、郵便配達のストーリーを交えながら優しく解説していきます。
—
1. 「VPC + 2」の魔法:住所録を管理する郵便局
VPCを作成すると、裏側でAWSが自動的に用意してくれる特別なDNSサーバーがあります。これが AmazonProvidedDNS です。
面白いことに、その場所はいつも決まっています。VPCのネットワークアドレスの「ベースとなるIPアドレスに2を足した場所」です。
例えば、VPCのCIDRが 10.0.0.0/16 なら、DNSサーバーは 10.0.0.2 に住んでいます。
これを「町の郵便局」に例えてみましょう。
- あなた(EC2インスタンス): 「
google.comに手紙(パケット)を出したいけど、どこに送ればいいの?」と郵便局に聞きに行きます。 - 郵便局(AmazonProvidedDNS): 「なるほど、
google.comだね。それなら142.250.xxx.xxxに送れば届くよ」と教えてくれます。
この郵便局は、AWSの巨大なネットワークの中にポツンと置かれた、非常に優秀な「案内所」なんです。
—
2. なぜ私たちは 169.254.169.253 にアクセスしているの?
ここで鋭い方は「あれ?さっき 10.0.0.2 って言ったのに、設定を見ると 169.254.169.253 と書いてあるぞ?」と気づくかもしれません。
実は、AWSには「リンクローカルアドレス」という不思議な約束事があります。どのサブネットからアクセスしても、この「魔法の数字(169.254.169.253)」に話しかければ、自動的にそのVPCの「郵便局(10.0.0.2)」に繋がるようになっているんです。
これは、あなたが日本にいてもアメリカにいても、最寄りのポストに手紙を入れれば届くのと同じです。ユーザーは場所を気にせず、常に同じ「169〜」という共通のポストを探せば良いというわけですね。
—
3. 実践:DNSが動いているか覗いてみよう
理論だけではつまらないですよね。実際にLinuxインスタンス上で、DNSがどう働いているか確認してみましょう。
まずは、自分の設定を確認します。
# 現在のDNS設定を確認します
cat /etc/resolv.conf
出力結果の中に nameserver 169.254.169.253 という記述が見えるはずです。これが「郵便局への直通電話」です。では、実際に名前解決をしてみましょう。
# digコマンドを使って、google.com のIPアドレスを聞いてみます
dig google.com
実行すると、ANSWER SECTION にGoogleのIPアドレスが返ってきます。この裏側では、OSが 169.254.169.253 に「google.com の住所を教えて!」と問い合わせ、AWSのDNSが外の世界に聞きに行って回答を持って帰ってきているのです。
—
4. 知っておくべき「二つのフラグ」
VPCの設定には、DNSを制御するための大切なスイッチが2つあります。これを知っているだけで、トラブルシュートの幅がグッと広がります。
1. DNS解決(DNS resolution): これが Enabled でないと、DNSサーバー自体が機能しません。郵便局が閉まってしまうようなものです。
2. DNSホスト名(DNS hostnames): これが Enabled だと、EC2インスタンスを立ち上げたときに ip-10-0-0-5.ap-northeast-1.compute.internal のような「インスタンス専用のホスト名」が自動で割り振られます。
現場でのチェックポイント:
もし「社内のVPC内なのにホスト名が解決できない!」というトラブルに遭遇したら、まずこの2つのスイッチがONになっているか確認してください。9割はここで解決します。
—
最後に:クラウドは「インフラの自動化」そのもの
今回お話しした AmazonProvidedDNS は、私たちが手動でDNSサーバーを構築・管理する苦労を肩代わりしてくれる、AWSの素晴らしいサービスの一つです。
「パケットがどこを通り、誰に聞きに行くのか」という流れを意識するだけで、クラウドインフラはただの「ブラックボックス」から「理解できる地図」に変わります。
最初は難しく感じるかもしれませんが、まずは「VPCには郵便局があって、そこが名前を教えてくれるんだな」というイメージを持つところから始めてみてください。一歩ずつ、確実に知識を積み上げていきましょう!
また次回の記事で、ネットワークの深い場所でお会いしましょう。ハッピーなクラウドライフを!
コメント