AWSドキュメントからシナリオ2を使用してVPCを設定しました: http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
パブリックサブネットで実行されているEC2インスタンスにElastic IPを割り当てました。 SSHは正常に動作し、その上で実行されているWebサイトにアクセスできます。ただし、発信HTTPまたはHTTPSリクエストを行うことはできません(yum update
)。
私のセキュリティ設定はすべて正しいと思います。インターネットゲートウェイ経由で発信HTTP/HTTPSリクエストを行うことはできませんか?作成時に、このインスタンスにパブリックIPを割り当てないように特別にリクエストしました。これは、WebサイトのDNSに高く評価されるElastic IPを割り当てることになるためです。私はNATプライベートサブネット内のインスタンスのセットアップを持っていますが、現在はそこで実行されているRDSインスタンスしか持っていないため、そこからの発信要求をテストしていません。
そのEC2インスタンスのセキュリティグループには、次の送信ルールがあります。
そのサブネットのルートテーブルには次の設定があります。
ネットワークACLには次の設定があります。
デフォルトのDHCPオプションセットには、次の設定があります。
domain-name = ec2.internal
domain-name-servers = AmazonProvidedDNS
デフォルト /etc/resolv.conf
設定は次のとおりです。
search ec2.internal
nameserver 10.0.0.2
VPCとサブネットのCIDRブロックは次のとおりです。
VPC: 10.0.0.0/16
Public Subnet: 10.0.0.0/24
Private DB Subnet in US East 1A: 10.0.1.0/24
Private DB Subnet in US East 1C: 10.0.2.0/24
STILL WONDERING
この場合、提供されたAWS DNSサーバーが機能しないのはなぜですか?
[〜#〜]問題[〜#〜]
問題は、DNS名が local DNSサーバーを介して、Amazonが最初にVPC を作成したときに提供したDNSサーバーよりも解決されないことでした。解決するためにDNSサーバーに接続する必要がないIPアドレスへの発信HTTP/HTTPS接続を作成できることがわかりました。
[〜#〜]ソリューション[〜#〜]
Amazon VPC AWSコンソール内でカスタムDHCPオプションセットを作成し、GoogleのパブリックDNS IPをdomain-name-servers = 8.8.8.8, 8.8.4.4
として設定する必要がありました。
次に、/etc/resolv.conf
を同じものに設定して更新する必要がありました:nameserver 8.8.8.8 nameserver 8.8.4.4