VPC ピアリング接続でドメイン名を解決できないのはなぜですか?

所要時間3分
0

Amazon Virtual Private Cloud (Amazon VPC) ピアリング接続でドメイン名を解決できません。

解決方法

注: 次のシナリオでは、VPC が AmazonProvidedDNS で設定されていることを前提としています。カスタム DNS を使用していて、ドメイン名を解決できない場合は、次の操作を実行してください。

  • カスタム DNS にレコードを追加します。
  • または -
  • 特定のクエリを Amazon が提供する DNS に転送するように DNS を設定します。Amazon が提供する DNS は VPC CIDR の .2 IP アドレスです。

シナリオ 1: ピアリングされた VPC で作成された Amazon EC2 インスタンスのパブリック DNS に解決する

Amazon Elastic Compute Cloud (Amazon EC2) は、インスタンスの作成時にプライベートおよびパブリック DNS 名を割り当てます。デフォルトでは、次のドメイン名がインスタンスに割り当てられます。

  • プライベート DNS: ip-172-31-19-128.ec2.internal (us-east-1 リージョンの場合) または ip-172-31-12-97.us-west-2.compute.internal (その他のリージョンの場合)。
  • パブリック DNS: ec2-54-147-16-116.compute-1.amazonaws.com または ec2-35-88-61-144.us-west-2.compute.amazonaws.com

「example.com」などのカスタムドメイン名で DHCP オプションセットを設定すると、EC2 インスタンスはそのドメイン名を使用します。例えば、ip-172-31-12-97.us-west-2.example.com です。

AWS 内の任意のインスタンスからプライベート DNS に解決すると、インスタンスを作成した VPC のプライベート IP アドレスに解決されます。

$ dig ip-172-31-12-97.us-west-2.compute.internal +short
172.31.12.97

ピアリングされた VPC で作成された別のインスタンスからインスタンスのパブリック DNS を解決すると、インスタンスのパブリック IP アドレスに解決されます。

$ dig ec2-35-88-61-144.us-west-2.compute.amazonaws.com +short
35.88.61.144

パブリックドメイン名を EC2 インスタンスのプライベート IP アドレスに解決できます。これを実行するには、VPC ピアリング接続で次のいずれかのオプションをオンにします。

  • リクエスタ DNS 解決
  • または -
  • アクセプタ DNS 解決

詳細については、「VPC ピアリング接続の DNS 解決を有効にする」を参照してください。

DNS 解決をオンにすると、パブリック DNS をインスタンスのプライベート IP アドレスに解決できます。例: 

$ dig ec2-35-88-61-144.us-west-2.compute.amazonaws.com +short
172.31.12.97

VPC ピアリングで DNS 解決をオンにした後に DNS 解決が機能しない場合は、次のステップに従って問題をトラブルシューティングします。

トラブルシューティング手順

1.    ソース VPC とターゲット VPC の ID を確認します。

2.    VPC ピアリングを使用して、ソース VPC とターゲット VPC の間にアクティブなピアリング接続があることを確認します。

3.    ピアリング接続の DNS 設定を確認します。リクエスタ VPC とアクセプタ VPC の両方で DNS 解決がオンになっていることを確認してください。

4.    解決しようとしているパブリックドメイン名が存在することを確認します。ターゲット VPC をチェックして、ドメイン名に含まれるパブリック IP を持つインスタンスがあることを確認します。

5.    VPC の DNS 設定が AmazonProvidedDNS または CustomDNS のいずれであるかを確認します。カスタム DNS を使用している場合は、カスタム DNS がパブリックインスタンスのドメイン名を解決することを確認します。カスタム DNS でドメイン名を解決できない場合は、次のいずれかを実行します。

静的 DNS レコードを追加します。

  • または -

クエリを AmazonProvidedDNS にリダイレクトします。

シナリオ 2: ピアリングされた VPC で作成されたサービスのドメイン名に解決する

ドメイン名を使用してサービスを作成すると、ピアリングされた VPC 内のインスタンスからそのドメイン名を解決できます。これらのサービスのために作成されたドメイン名はパブリックレコードであり、どこからでも解決できます。

例えば、次のドメイン名レコードはパブリックに解決可能です。

  • testCLB-520693273.us-east-1.elb.amazonaws.com
  • test-87913728ca9b8a68.elb.us-east-1.amazonaws.com
  • vpce-057d3426e21755b8a-svk1k3tm.ssm.us-east-1.vpce.amazonaws.com

注: ドメイン名がプライベートロードバランサー用のものであっても、レコードはパブリックであり、プライベート IP アドレスに解決されます。

ssm.us-east-1.amazonaws.com などのサービスエンドポイントのドメイン名は、パブリック IP アドレスに解決されます。これは、プライベート DNS オプションをオンにした状態でピアリングされた VPC にインターフェイスエンドポイントが作成されている場合にも当てはまります。さらに、これらの名前は、インターフェイスエンドポイントを作成した VPC 内からクエリが実行された場合にのみ、プライベート IP アドレスに解決されます。エンドポイントのドメイン名をピアリングされた VPC のエンドポイントプライベート IP アドレスに解決するには、正しい DNS アーキテクチャを作成する必要があります。

次の例では、インターフェイス VPC エンドポイントが VPC A 上で設定されています。サービスドメイン名を VPC B から VPC A のインターフェイス VPC エンドポイント IP アドレスに解決するには:

  1. PrivateDNS をオフにして、サービスのインターフェイスエンドポイントを作成します。
  2. インターフェイスエンドポイントが作成されたアカウントのサービスドメイン名 (ssm.us-east-1.amazonaws.com など) を使用してプライベートホストゾーンを作成します。
  3. ピアリング接続の両方の VPC で DNS ホスト名と DNS 解決がオンになっていることを確認します。
  4. サービスドメイン名が、インターフェイスエンドポイント DNS のリージョンレベルのエンドポイントをポイントするようにするエイリアスレコードを作成します: vpce-057d3426e21755b8a-svk1k3tm.ssm.us-east-1.vpce.amazonaws.com。 または、サービスドメイン名が、VPC A で作成されたインターフェイス VPC エンドポイントのプライベート IP アドレスをポイントするようにするレコードを作成します。
  5. 作成したプライベートホストゾーンをピアリングされた VPC (VPC B) に関連付けます。 VPC B がクロスアカウントの場合は、「Route 53 プライベートホストゾーンを別の AWS アカウントの VPC に関連付ける方法を教えてください」を参照してください。

トラブルシューティングのステップ

1.    ソース VPC とターゲット VPC の ID を確認します。

2.    ソース VPC とターゲット VPC の間にアクティブなピアリング接続があることを確認します。

3.    ピアリング接続の両方の VPC で DNS ホスト名と DNS 解決がオンになっていることを確認します。

4.    VPC で設定されている DNS が AmazonProvidedDNS または CustomDNS のいずれであるかを確認します。カスタム DNS を使用している場合は、カスタム DNS がドメイン名を解決できることを確認します。カスタム DNS がドメイン名を解決できない場合は、静的 DNS レコードを追加するか、カスタム DNS を設定して、クエリを AmazonProvidedDNS に転送します。

5.    ピアリングされた両方の VPC が、ドメイン名レコードが作成される同じプライベートホストゾーンに関連付けられていることを確認します。

6.    レコードが、正しい VPC エンドポイントのリージョン固有のドメインまたはインターフェイスエンドポイントの IP アドレスをポイントしていることを確認します。

シナリオ 3: プライベートホストゾーンで作成されたカスタムドメイン名

プライベートホストゾーンで作成されたレコードにドメインを解決するために使用される、カスタムドメイン名用のプライベートホストゾーンを作成しました。VPC A はプライベートホストゾーンに関連付けられています。VPC B には VPC A へのピアリング接続があります。カスタムドメイン名を VPC B から VPC A に解決したいと考えています。

解決するには、レコードを作成したカスタムドメインのプライベートホストゾーンに VPC B を関連付けます。関連付けを実行すると、ピアリングされた両方の VPC のリソースから、プライベートホストゾーンのカスタムドメイン名を解決できます。

トラブルシューティングのステップ

1.    ソース VPC とターゲット VPC の ID を確認します。

2.    VPC で設定されている DNS が AmazonProvidedDNS または CustomDNS のいずれであるかを確認します。カスタム DNS を使用している場合、プライベートホストゾーンでホストされているレコードを解決することはできません。これを修正するには、カスタム DNS に静的ドメイン名レコードを追加します。または、クエリを AmazonprovidedDNS に転送するようにカスタム DNS を設定します。

3.    Amazon が提供する DNS を使用している場合は、解決しようとしているドメインと、そのドメインがホストされている場所 (Amazon Route 53 またはオンプレミス) を確認します。オンプレミスの場合は、クエリをオンプレミス DNS に転送するために使用されるアウトバウンドリゾルバーエンドポイントが正しく設定されていることを確認します。

4.    Route 53 プライベートホストゾーンでホストされている場合は、ソース VPC がプライベートホストゾーンに関連付けられていることを確認します。ソース VPC は、カスタムドメイン名を解決しようとしている場所です。

5.    解決しようとしている FQDN が、プライベートホストゾーンにレコードを作成済みであることを確認します。


AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ