Ec2インスタンスを内部IPアドレスまたはDNSによってaws上のrdsインスタンスと通信させるにはどうすればよいですか? xxx.cehmrvc73g1g.eu-west-1.rds.amazonaws.com:3306
のようなパブリックDNSしか表示されません。内部IPアドレスはパブリックDNSよりも高速になりますか?
ありがとう
AWS EC2のドキュメントを確認してください: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses 。
ただし、これが必ずしもRDSに当てはまるとは限りません。
後世のためのメモ、VPCピアリングリンクでDNSを有効にしていることを確認してください!
VPCピアリング接続のDNS解決サポートを有効にする
ピアVPCのインスタンスからクエリを実行したときに、VPCがパブリックIPv4 DNSホスト名をプライベートIPv4アドレスに解決できるようにするには、ピアリング接続を変更する必要があります。
両方のVPCでDNSホスト名とDNS解決を有効にする必要があります。
ピアリング接続のDNS解決サポートを有効にするには
https://console.aws.Amazon.com/vpc/ でAmazonVPCコンソールを開きます。
ナビゲーションペインで、[ピアリング接続]を選択します。
VPCピアリング接続を選択し、[Actions]、[Edit DNSSettings]の順に選択します。
ピアVPCからのクエリがローカルVPCのプライベートIPアドレスに確実に解決されるようにするには、ピアVPCからのクエリのDNS解決を有効にするオプションを選択します。
ピアVPCが同じAWSアカウントにある場合は、ローカルVPCからのクエリに対してDNS解決を有効にするオプションを選択できます。これにより、ローカルVPCからのクエリがピアVPCのプライベートIPアドレスに確実に解決されます。ピアVPCが別のAWSアカウントにある場合、このオプションは使用できません。
[保存]を選択します。
ピアVPCが別のAWSアカウントにある場合、ピアVPCの所有者はVPCコンソールにサインインし、手順2〜4を実行して、[Save]を選択する必要があります。
「エンドポイント」DNS名を使用できます。 VPC内で使用すると内部IPに解決され、AWSネットワークの外部で使用するとパブリックIPに解決されます。 RDSの動作方法は将来変更される可能性があるため、実際のIPアドレスは絶対に使用しないでください。
EC2(同じVPC上)サーバーからpingを実行する場合は、これを確認できます。
私の答えが唯一の正解であるとすると、私が得た反対票の数を見るのは驚くべきことです。他に2つの情報源があります。
https://forums.aws.Amazon.com/thread.jspa?threadID=70112
「エンドポイント」DNS名を使用できます。 EC2内で使用すると、内部IPに解決されます。
https://serverfault.com/questions/601548/cant-find-the-private-ip-address-for-my-Amazon-rds-instance2
AWSコンソールで提供されるDNSエンドポイントは、Amazonのネットワーク内から内部IPに解決されます。
非常に簡単です。WindowsまたはUNIXターミナルでコマンドプロンプトを使用してRDSエンドポイントにTelnetで接続します。
例:telnet "RDSエンドポイント" "ポート"
接続しようとしています "ここでRDS内部IPを取得します"
同じVPC内からRDSインスタンスを解決すると、AmazonDNSサービスによって内部IPが返されます。
RDSインスタンスが外部からアクセス可能な場合は、VPCの外部から外部IPが表示されます。ただし、EC2インスタンスが公開されていない場合、内部IPアドレスは外部および内部ルックアップに返されます。
内部IPアドレスはパブリックDNSによって提供される外部アドレスよりも高速になりますか?外部アドレスを使用するときにパケットをルーティングする必要があるため、おそらく待ち時間の増加。
また、EC2インスタンスにパブリックIPまたはNATゲートウェイと適切なセキュリティグループおよびルートがあり、コストが増加し、複雑さが増し、セキュリティが低下する必要があります。