2017-01-06 16 views
0

カスタムVPCでDNSホスト名を有効にしていないときにERR_CONNECTION_REFUSEDを取得する際に奇妙な問題が発生しました。AWS VPC - パブリックIPでDNSホスト名の問題を修正するERR_CONNECTION_REFUSED

1つのサブネット(パブリック)、1つのルートテーブル、およびインターネットゲートウェイでVPCを作成しました。

私のルートテーブルには、私のインターネットゲートウェイへのルートがあります。私はデフォルトのネットワークACLを使用しています。私のSGは1024-65535のポートを開いています(< ---これは単なるテストです)。

AWS Linux AMIからインスタンスを作成し、パブリックサブネットに配置します。私のVPCが "DNSホスト名の編集"で有効にしてDNSホスト名を割り当てるように設定されていると、ブラウザから自分のインスタンスにアクセスできます。 (インスタンスはNodejs Webサービスです)。すべて正常に動作し、ネットワークインターフェイスのフローログはトラフィックが自分のインスタンスに到達していることを確認します。

私はVPCのDNSホスト名の作成を "Edit DNS Hostnames"で無効にしています。私は同じ手順に従って新しいインスタンスを作成します。期待どおり(プライベートでもパブリックでも)DNSホスト名はありませんが、パブリックIPアドレスを持っています。ブラウザからパブリックIP経由でインスタンスに接続しようとすると、ERR_CONNECTION_REFUSEDが返されます。

DNSホスト名を有効/無効にすることで、このエラーを成功/失敗で容易に再現できるようです。

設定に何か不足していますか?これは既知の問題ですか?私は喫煙をしていますか?

ありがとうございました。

+0

なぜVPCでDNSホスト名を有効にしませんか?私はそれをする理由を考えることができません。しかし、ノードプロセスの起動を確認してください。おそらく、それは自分自身のホスト名であることが分かりません。したがって、起動に失敗したり、何かの前に何かがあると(Nginxなど)、起動に失敗しています。 –

+0

DNSホスト名を有効にしないと良い理由は考えられませんが、これがデフォルト設定です。 – programmerj

答えて

0

問題は、私は#でのメタデータからバインドするホスト名を引いていたので... Nodejs Webサービス・バインディングのホスト名を見つけるに失敗しました/ binに/ bashのUserDataのスクリプト:!

# Grab the EC2 instance internal DNS and configure the Hapi server host value 
localhost=$(curl http://169.254.169.254/latest/meta-data/local-hostname) 
rm -f ServerHost.js 
echo -n "module.exports = \"" > ServerHost.js 
echo -n "$localhost" >> ServerHost.js 
echo "\"" >> ServerHost.js 

しかしプライベートDNSがないので(VPCを手動で作成するときのデフォルトは '無効'なので)、 'local-hostname'はありません。

関連する問題