hoomin.kani

KANISAN WEB

インフラ・サーバーサイドを頑張るカニが学んだあれこれ。

Terraform Planの実行速度を上げる3つの方法

f:id:hoominkani:20220210190232p:plain

管理するリソースが増えるにつれ、terraform planコマンドの実行に
とんでもなく時間がかかる……。

そんな経験はありませんか?

この記事では、インフラエンジニアの頭を悩ませるそんなお悩みを解決し、
Terraformでの変更を高速化する3つの方法を共有します。

--parallelism オプションで 並列処理の数を増やす

Terraform公式で -parallelism というオプションが存在します。

説明は以下の通りです。

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

Terraform document


parallelismオプションを活用し、並列処理の数を増やします。(デフォルトは10)

自分のPCのスペックにもよりますが、20や30に変えると
ある程度の改善が見込めるでしょう。


terraform plan -parallelism=20


環境変数として設定することも可能です。

export TF_CLI_ARGS_plan=20


.terraformignore を使う

変更しないファイルを .terraformignore に追加すると
その分は差分検知されないので、
terraform planの実行速度が向上します。

example: .terraformignore

/dir
ec2.tf


-target オプションを使う

terraform plan , terraform apply といったコマンドを実行する際は
-target オプションを使って、特定のリソースだけに対象を絞ることができます。

たとえばEC2インスタンスにだけterraform planを実行したい場合、

以下のようなリソース名を設定していれば

resource "aws_instance" "this" {
 ... 
}

このようにtargetを指定することが可能です。

terraform plan --target=aws_instance.this 


いかがだったでしょうか。
ぜひ様々な手法を用いてTerraformを快適に使いましょう。