広告スペース(バナー)
🟪Terraform レッスン
Terraformの基本を知ろう5
リソースの定義と検証5
状態(state)を理解しよう4
変数と出力値4
モジュールとワークスペース5
プランの保存と高度な状態管理5
応用的なTerraformの機能8
レッスン 32 / 37

依存関係(depends_on)とは?

「このリソースは、あのリソースが出来てから作ってほしい」という順序をどう指定する?という人向けです。Terraformは通常、リソース間の参照関係から自動的に作成順序を判断しますが、明示的に順序を指定したいときに使うのがdepends_onです。

resource "aws_instance" "web" { depends_on = [aws_s3_bucket.data] }のように書くと、aws_s3_bucket.dataが作られた後にaws_instance.webが作られるようになります。

多くの場合、あるリソースの値を別のリソースの中で参照していれば、Terraformはそれだけで依存関係を自動的に理解し、正しい順序で処理してくれます。depends_onは、値の参照だけでは表現できない依存関係がある場合の補助的な手段です。

よくあるつまずきは、不要な場面までdepends_onを多用し、本来並列に作成できるリソースまで直列化してしまい、apply時間が無駄に伸びることです。

実務ではIAMポリシーの反映待ちなど、値の参照だけでは表現しづらい順序関係がある場合に使われます。

Terraform
試してみよう(疑似ターミナルへの入力例)
terraform plan

🧑‍💻 このコマンドは Terraformの疑似ターミナル に実際に入力して試せます(このページ自体には操作可能なターミナルはありません)。

🎯
ここまでできればゴール達成!
リソース同士の作成順序を制御する、依存関係の指定方法が理解できるようになります。
広告スペース(バナー)
広告スペース(記事内)