最近HerokuのDynoで以下のようなエラーが出るようになった。アプリケーションから接続するMySQLのホスト名の解決が失敗しているっぽい。
Jan 18 08:20:25 ***** app/web.1: {"level":"error","ts":"2018-01-17T23:20:24Z","msg":"InternalServerError","error":"errors.Internal: Failed to gorm.Open(): dial tcp: lookup ******** on 172.16.0.23:53: write udp 172.18.167.70:36855->172.16.0.23:53: i/o timeout
なんで?って思って /etc/resolv.conf を見てみたら
$ cat /etc/resolv.conf options timeout:2 nameserver 172.16.0.23 search ec2.internal
↑のように timeout が2秒に設定されていた... 妥当な値かもしれないけど、ログにエラーが残るのが嫌だったのでIP直指定することで対応した... なんかいい方法ないかな。