Open3

AWS vpcピアリングについて

asuyasuyaasuyasuya

ピアリング接続を使えばドメイン名を省略して名前解決ができる。
例えば、VPC AとVPC Bがピアリング接続されている場合を考える。

  • VPC A内には、"web-server" という名前のEC2インスタンスが存在する。
  • VPC B内には、"database-server" という名前のEC2インスタンスが存在する。

通常の名前解決では、VPC AのEC2インスタンスからVPC BのEC2インスタンスを参照する際には、完全なFQDN(Fully Qualified Domain Name)を使用する必要がある。つまり、VPC Bのドメイン名を含めた形式で名前解決を行う。

例えば、VPC Bのドメイン名が "example.internal" である場合、VPC AのEC2インスタンスからVPC BのEC2インスタンスを参照するためには、次のように完全なFQDNを使用する必要がある。

database-server.example.internal

しかし、ピアリング接続が確立されている場合、VPC AのEC2インスタンスは単に "database-server" というホスト名だけを使用しても、VPC BのEC2インスタンスを名前解決することができる。VPC Bのドメイン名部分が省略される。

database-server

このように、ピアリングを使用することで、異なるVPC間のリソースをより簡潔に参照することができる。

asuyasuyaasuyasuya

ピアリング接続経由で名前解決ができるかどうか調べてみて、できるようならピアリング接続経由、できないようなら通常の名前解決という感じか?

【ピアリング接続での名前解決】

  1. クライアントからの名前解決リクエストがDNSリゾルバに送信される。
  2. DNSリゾルバは、ピアリング接続に関するルート情報を持っているか確認する。ピアリング接続に関するルートがある場合、通信経路にピアリング接続が含まれることがわかる。
  3. DNSリゾルバは、ピアリング接続が正しく設定されている場合、ルートテーブルを参照しピアリング接続経由での通信を行う。
  4. ピアリング接続が確立されたVPC間では、ドメイン名の省略が可能となり、ホスト名のみ使用して名前解決が行われる。
  5. ピアリング接続の設定がなかったり、設定やルートテーブルの設定に問題がある場合、通常の名前解決の流れに従って解決を試みる必要がある。

【通常の名前解決】

  1. クライアント(たとえばWebブラウザ)から、ドメイン名(例: www.example.com)を含むリクエストがDNSリゾルバ(クライアントのネットワーク内のDNSサーバー)に送信される。
  2. DNSリゾルバは、自身のキャッシュにドメイン名の解決済み情報があるか確認する。キャッシュに情報がない場合、リクエストを上位のDNSサーバー(ルートサーバー)に送信する。
  3. ルートサーバーは、リクエストに対してトップレベルドメイン(TLD)サーバー(例: .comドメインのTLDサーバー)の情報を返す。
  4. DNSリゾルバは、TLDサーバーに対してリクエストを送信し、次に権威サーバーの情報(ドメイン名とIPアドレスが対応づけられたゾーン情報を保持して、他のDNSサーバに 問い合わせることなく応答を返せるDNSサーバ)を取得する。
    権威サーバーは、要求されたドメイン名に関連するIPアドレスや他のレコード情報を提供する。
  5. DNSリゾルバは、受け取った情報をキャッシュに保存し、結果をクライアントに返す。クライアントはこの情報を使用して通信を行う。