Route 53 Resolver ルールで VPC エンドポイント(プライベート DNS 名: 有効) を設定した VPC からパブリックな API Gateway エンドポイントを利用できるか教えてください

Route 53 Resolver ルールで VPC エンドポイント(プライベート DNS 名: 有効) を設定した VPC からパブリックな API Gateway エンドポイントを利用できるか教えてください

Clock Icon2025.05.30

困っている内容

VPC エンドポイント(プライベート DNS 名: 有効) を設定した VPC からパブリックな API Gateway エンドポイントを利用したいため、VPC エンドポイント経由ではなくインターネット経由となるようにしたいと考えています。
この要望を実現するために、Route 53 Resolver のアウトバウンドルールを使用する方法が有効かもしれないと考えていますが、可能でしょうか?

Route 53 Resolver ルールと VPC エンドポイントのプライベート DNS 設定、Route 53 のプライベートホストゾーン間の DNS 名前解決の優先順位が不明なのですが、もし Route 53 Resolver ルールの方が優先順位が高い場合は、上記の方法は実現できるはずだと考えています。

どう対処すればいいの?

はい、Route 53 Resolver のアウトバウンドルールを使用することで、VPC エンドポイント(プライベート DNS 名: 有効) を設定した環境でも、パブリックな API Gateway エンドポイントをインターネット経由で利用することは可能です。

VPC エンドポイントのプライベート DNS 名を有効化した場合、非表示の AWS マネージドプライベートホストゾーンが作成されます。[1]
これにより、"execute-api.ap-northeast-1.amazonaws.com" のようなサービスのデフォルトの DNS 名は、VPC エンドポイントのプライベート IP アドレスに名前解決されます。

インターフェイス VPC エンドポイントのプライベート DNS を有効にし、VPC で DNS ホスト名と DNS 解決の両方が有効になっている場合、非表示の AWS マネージドプライベートホストゾーンが作成されます。ホストゾーンにはサービスのデフォルトの DNS 名のレコードセットが含まれており、VPC のエンドポイントのネットワークインターフェイスのプライベート IP アドレスに解決されます。

そして、プライベートホストゾーンと Route 53 Resolver ルールでは、プライベートホストゾーンとドメイン名が同じである Route 53 Resolver ルールが存在する場合は、Route 53 Resolver ルールが優先されます。[2]

プライベートホストゾーンと Route 53 Resolver ルール
プライベートホストゾーン (example.com) があり、ドメイン名が同じであるトラフィックをネットワークにルーティングする Resolver ルールがある場合、Resolver はルールを優先します。

例えば、次の設定があるとします。

  • example.com というプライベートホストゾーンがあり、それを VPC に関連付けます。
  • example.com のトラフィックをネットワークに転送する Route 53 Resolver ルールを作成し、そのルールを同じ VPC に関連付けます。

この設定では、Resolver ルールがプライベートホストゾーンよりも優先されます。DNS クエリは、プライベートホストゾーンのレコードに基づいて解決されるのではなく、ネットワークに転送されます。

そのため、VPC エンドポイントのプライベート DNS 名を有効化した場合においては、以下のドメイン名を設定した Route 53 Resolver ルールの方が優先されます。

  • VPC エンドポイントのプライベート DNS 名と同じ (例: execute-api.ap-northeast-1.amazonaws.com)
  • VPC エンドポイントのプライベート DNS 名より長いドメイン名 (例: xxxx.execute-api.ap-northeast-1.amazonaws.com)

上記より、パブリックな API Gateway エンドポイントのドメイン名へのトラフィックを 8.8.8.8(Google Public DNS) 等に転送する Route 53 Resolver アウトバウンドルールを作成することで、冒頭の要望は実現可能です。

補足

VPC エンドポイントを設定した VPC からパブリックな API Gateway エンドポイントに通信する手段としては、以下の方法も考えられます。
こちらに関しては、弊社ブログ[3] をご参照ください。

  • パブリックな API Gateway にカスタムドメインを設定し、カスタムドメインを利用した接続を行う
  • VPC エンドポイントのプライベート DNS 名を無効化する
脚注
  1. AWS のサービス を介したアクセス AWS PrivateLink - Amazon Virtual Private Cloud ↩︎

  2. プライベートホストゾーンを使用する場合の考慮事項 - Amazon Route 53 ↩︎

  3. VPC エンドポイントを設定した VPC からパブリックな API Gateway に通信できない場合の対処方法 | DevelopersIO ↩︎

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.