AWS では、PHP ページで RDS の内部 DNS ルックアップが失敗するのはなぜですか?

AWS では、PHP ページで RDS の内部 DNS ルックアップが失敗するのはなぜですか?

EC2 インスタンス 1 つと RDS インスタンス 1 つを含む AWS Elastic Beanstalk 構成 (PHP) があります。これは QA 環境です。正常に動作していましたが、最近、次のエラーが発生して頻繁に失敗するようになりました (コードの変更はありません)。

「PDO::__construct(): php_network_getaddresses: getaddrinfo が失敗しました: 名前解決で一時的な障害が発生しました エラー: pdo_mysql データベースへの接続でエラーが発生しました: 接続試行に失敗しました: SQLSTATEHY000 2002 php_network_getaddresses: getaddrinfo が失敗しました: 名前解決で一時的な障害が発生しました」

それは一時的なものではありません。

ホスト名の代わりに RDS インスタンスの IP アドレスを置き換えると、AWS で正常に動作します。

ホスト名を使用してローカル開発マシン (AWS 外部) から AWS RDS インスタンスにアクセスすると、同じコードが完全に実行されます。

RDS ホスト名の nslookup は EC2 インスタンスからは正常に機能します。

ec2 インスタンスを停止して起動し、RDS インスタンスを再起動しましたが、効果はありませんでした。

断続的な AWS DNS 障害に関する投稿が散発的にありますが、私の問題に当てはまるものはありません。

この問題に気付いた人はいますか? 診断するためにさらにどのような検査を行えばよいか知っている人はいますか?

ありがとう

https://forums.aws.amazon.com/thread.jspa?threadID=141277

答え1

Apache を再起動すると、少なくとも次に ec2 インスタンスを再起動するまでは問題が解決することがわかりました。明らかに、私の AMI バージョン (2013 年 8 月に構築) に何らかの問題があります。現在構築されている (2013 年 12 月) Elastic Beanstalk バージョンではこの問題は発生しません。

関連情報