Amazon Route 53 Resolverを整理してみた

# 背景・目的
前回、[Amazon Route 53を整理してみた](https://qiita.com/zumax/items/f9b617d3d8df6ff1d4ab)では、Route 53では、Amazon のDNSである Route 53について整理をした。
今回は、Route 53 Resolverについて整理してみます。

# まとめ
下記に特徴をまとめます。

| 特徴 | 説明 |
|:-- | :--|
|Amazon Route 53 Resolver|・Route 53 Resolverパブリックレコード<BR>・VPC固有のDNS名<BR>・Route 53 AWS プライベートホストゾーンのリソースからのDNS　クエリに再帰的に応答する<BR>・デフォルトでは全てのVPCで使用できる|
|ハイブリッドクラウドが可能|Resolver エンドポイントと条件付き転送ルールにより、オンプレミスリソースとVPC間のDNSクエリを解決する|
|インバウンド Resolver エンドポイント|オンプレミス等→VPCへ<BR>VPCにオンプレミスNWまたは、別のVPCからDNSクエリが可能になる|
|アウトバウンド Resolver エンドポイント|VPC→オンプレミス等<BR>VPCからオンプレミスNWまたは、別のVPCにDNSクエリが可能になる|
|Resolver ルール|・ドメイン名ごとに転送ルールを1つ作成し、VPCからオンプレミスのDNSリゾルバへのDNSクエリ、およびオンプレミスからのVPCにへのDNSクエリクエリを転送するドメイン名を指定できる<BR>・ルールは、VPCに直接適用される<BR>・複数アカウントで共有できる|


# 概要
[What is Amazon Route 53 Resolver?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html)を元に整理します。

> Amazon Route 53 Resolver パブリックレコード、Amazon VPC 固有の DNS 名、Amazon Route 53 AWS プライベートホストゾーンのリソースからの DNS クエリに再帰的に応答し、デフォルトではすべての VPC で使用できます。

- Route 53 Resolverパブリックレコード
- VPC固有のDNS名
- Route 53 AWS プライベートホストゾーンのリソースからのDNS　クエリに再帰的に応答する
- デフォルトでは全てのVPCで使用できる

> Amazon VPC は VPC+2 IP アドレスで Route 53 Resolver に接続します。この VPC+2 アドレスはアベイラビリティーゾーン内の Route 53 Resolver に接続します。

- VPCは、VPC＋2 IPアドレスでRoute 53 Resolverに接続する

> Route 53 Resolver は以下に関する DNS クエリに自動的に応答します。
> - EC2 インスタンスのローカル VPC ドメイン名 (例えば、ec2-192-0-2-44.compute-1.amazonaws.com)
> - プライベートホストゾーンのレコード (例えば、acme.example.com)。
> - パブリックドメイン名については、Route 53 Resolver では、インターネット上の公開ネームサーバーに対して再帰的検索が実行されます。

- Route 53 Resolverは、以下のDNS クエリに自動的に応答する
    - EC2インスタンスのローカル VPCドメイン
        - 例）ec2-192-0-2-44.compute-1.amazonaws.com
    - プライベートホストゾーンのレコード
    - パブリックドメイン名については、Route 53 Resolverではインターネット上の公開ネームサーバに対して再帰的検索が実行される


> VPC とオンプレミスリソースの両方を利用するワークロードがある場合は、オンプレミスでホストされている DNS レコードを解決する必要もあります。同様に、これらのオンプレミスリソースは、ホストされている名前を解決する必要がある場合があります。 AWS Resolver エンドポイントと条件付き転送ルールにより、オンプレミスリソースと VPC 間の DNS クエリを解決して、VPN または Direct Connect (DX) 経由でハイブリッドクラウド環境を構築できます。具体的には次のとおりです。

- VPCとオンプレミスリソースの両方を利用するワークロードがある場合、オンプレミスでホストされているDNSレコードを解決する必要がある
- 同様に、これらのオンプレミスリソースは、ホストされている名前を解決する場合がある
- Resolver エンドポイントと条件付き転送ルールにより、オンプレミスリソースとVPC間のDNSクエリを解決する
- これにより、VPN,DX経由でハイブリッドクラウド環境を構築できる

> - インバウンド Resolver エンドポイントを使用すると、VPC に、オンプレミスネットワークまたは別の VPC から DNS クエリが可能になります。
> - アウトバウンド Resolver エンドポイントを使用すると、VPC から、オンプレミスネットワークまたは別の VPC に DNS クエリが可能になります。
> - Resolver ルールを使用すると、ドメイン名ごとに転送ルールを 1 つ作成し、VPC からオンプレミスの DNS リゾルバーへの DNS クエリ、およびオンプレミスから VPC への DNS クエリを転送するドメイン名を指定できます。ルールは VPC に直接適用され、複数のアカウントで共有できます。

- インバウンド Resolver エンドポイント
    - VPCにオンプレミスNWまたは、別のVPCからDNSクエリが可能になる
- アウトバウンド Resolver エンドポイント
    - VPCからオンプレミスNWまたは、別のVPCにDNSクエリが可能になる
- Resolver ルール
    - ドメイン名ごとに転送ルールを1つ作成し、VPCからオンプレミスのDNSリゾルバへのDNSクエリ、およびオンプレミスからのVPCにへのDNSクエリクエリを転送するドメイン名を指定できる
    - ルールは、VPCに直接適用される
    - 複数アカウントで共有できる


> 次の図は、Resolver エンドポイントを使用したハイブリッド DNS 解決を示しています。この図は、アベイラビリティーゾーンを 1 つだけ表示するように簡略化されていることに注意してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/4b45819d-ff2b-3171-2964-9cc2b93dd98b.png)

※ 出典：[What is Amazon Route 53 Resolver?](https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver.html)

- 前提
    - 権限のある DNS サーバーは、オンプレミスデータセンターで管理されている
    - AWS 接続は、 AWS Direct Connect 仮想プライベートゲートウェイでも AWS Site-to-Site VPNでもどちらでも構わない
- アウトバウンド (実線矢印 1～5):
    1. Amazon EC2 インスタンスは internal.example.com というドメインへの DNS クエリを解決する必要がある。この DNS クエリは、Route 53 Resolver に接続している VPC 内の VPC+2 に送信される
    1. Route 53 Resolver 転送ルールは、オンプレミスデータセンターの internal.example.com にクエリを転送するように設定されている
    1. クエリはアウトバウンドエンドポイントに転送される
    1. アウトバウンドエンドポイントは、AWSとデータセンター間のプライベート接続を介してクエリをオンプレミスの DNS リゾルバーに転送する
    1. オンプレミスの DNS リゾルバーは internal.example.com の DNS クエリを解決し、同じパスを逆向きに経由して回答を Amazon EC2 インスタンスに返す。
- インバウンド (点線の矢印 a ～ d)
    - a. オンプレミスデータセンターのクライアントは、dev.example.com ドメインのリソースへの DNS クエリを解決する必要がある。 AWSへのクエリをオンプレミスの DNS リゾルバーに送信する
    - b. オンプレミスの DNS リゾルバーには、dev.example.com へのクエリをインバウンドエンドポイントに向ける転送ルールがある
    - c. クエリは、 AWS Direct Connectや AWS Site-to-Site VPN仮想ゲートウェイなどのプライベート接続を介して受信エンドポイントに到達する
    - d. インバウンドエンドポイントは Route 53 リゾルバーにクエリを送信し、Route 53 リゾルバーは dev.example.com の DNS クエリを解決し、同じパスを経由して逆にクライアントに回答を返す

### VPC とネットワークの間における DNS クエリの解決
> Resolver には、オンプレミス環境との間でやり取りされる DNS クエリに応答するように設定したエンドポイントが追加されています。

- Resolverには、エンドポイントが追加されている

> また、転送ルールを設定することで、ネットワークの Resolver と DNS リゾルバー間の DNS 解決を統合することもできます。ネットワークには、VPC から到達可能なすべてのネットワークを含めることができます。その例を次に示します。

- 転送ルールにより、NWのResolverとDNS Resolver間のDNS解決を統合できる
- VPCから到達可能なすべてのNWを含めることができる
    - VPC 自体
    - 別のピア接続 VPC
    - VPN、またはネットワークアドレス変換 (NAT) AWS AWS Direct Connectゲートウェイに接続されているオンプレミスネットワーク

- クエリ転送前にRoute 53 Resolverのインバウンド、アウトバウンドエンドポイントを接続されたVPC内に用意する


# 考察
今回は、Route 53 Resolverを整理してみました。次回以降、実際に試してみたいと思います。

# 参考
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html