Terraformで「dial tcp connection refused」が出たら並列数を疑ってみる

何度も実行したTerraformの定義で、別の環境から実行したらエラーが出ているという話を聞いて調べてみた、エラー対応メモです。

内容としては以下のようなメッセージです。「terraform plan」で発生します。

何度か目の前で叩いてもらうと、エラーが出るサービスがその度に違ったりします。

dial tcp: lookup spanner.googleapis.com on 169.254.169.254:53: read udp 172.17.0.2:42005->169.254.169.254:53: read: connection refused

これはもう一つ下のレイヤの話だなと思いつき、並列度を下げてみようと設定してみました。

Terraformは処理の並列度として、デフォルトで10が設定されています。

-parallelism=n - Limit the number of concurrent operation as Terraform walks the graph. Defaults to 10.

引用元:https://www.terraform.io/docs/internals/graph.html#walking-the-graph

これを5や3に下げてみたところエラーは解消しました。

設定方法はこちらのブログに複数種類紹介されているので参考にしました。(こちらのブログは並列度上げてパフォーマンスアップを図っているので反対の内容になりますが)

あなたのterraform planを手軽に高速化する(かもしれない)魔法の言葉 - Qiita

例えば、以下のような感じです。

terraform plan --parallelism=5

誰か同じ事象が発生している時の助けになれば。