⭐️terraform plan -minimal-refresh

参考: https://qiita.com/minamijoyo/items/92c094b554d090b54a17

公式ドキュメントは?

  • 2026-09-14 時点で plan のリファレンス には未掲載
  • 一次情報は Terraform の CHANGELOG(v1.17.0、未リリース)

A new -minimal-refresh planning option has been added, which will only refresh resources that have proposed changes. (#35290)

何をする?

  • 通常の plan: 全リソースを refresh(API で実環境の状態を取得)→ リソースが多いと遅い
  • -minimal-refresh: 変更するリソース(と依存するリソース)だけ refresh → 速い
    • 記事の検証: 200+ リソースで 45〜50 秒 → 3〜5 秒

なぜ「ローカルは -minimal-refresh、CI は通常 plan」が無難?

  • 変更しないリソースは refresh されない → コンソールでの手動変更などのドリフトに気づけない
    • 変更するリソース自体は refresh されるので、今回の apply が壊れるわけではない
  • CI の plan は apply 前の最後のレビュー。ここで全体のドリフトを出しておきたい

CI も速くしたいなら

  • PR の CI は -minimal-refresh にする
  • 代わりに main で定期的(例: 毎日)に通常の plan を回し、ドリフト検知はそっちに任せる