業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【Hakkyの社内Wiki】Strapi
クラウドとオンプレの違いAIシステム導入時におすすめのクラウドシステムスクレイピングのためのプロキシサーバのAPI
AI

執筆者:Handbook編集部

別のTerraformディレクトリのアウトプットを利用する方法

概要

この記事では別の Terraform ディレクトリのアウトプットを利用する方法について解説します。

Terraform でリソースを作成する際に、他のディレクトリで作成したリソースのアウトプット(id や name など)を利用したい場合には二つの方法が考えられます。

  1. 別のディレクトリの apply の結果をハードコーディングする
  2. Remote state を使う

それぞれ解説していきます。

ハードコーディング

もっともシンプルな方法です。別のディレクトリのアウトプットの結果をコピーしてきてvarにハードコーディングします。大規模なシステム開発では拡張性がないというデメリットが出ることがありますが、小中規模な開発ではこちらの方がシンプルかつ効率的になることが多いです。

Remote state

Remote state は別のディレクトリの tfstate ファイルの output を参照することができる機能です。この機能を使うと s3 などの NFS を参照することもできるなどとても便利ではあるのですが作りすぎた結果構成が複雑になりすぎてしまうというデメリットがあります。利用は以下のようにterraform_remote_stateブロックを利用して定義します。また、新しく remote state ブロックを追加した際にはterraform initを実行する必要があります。

data "terraform_remote_state" "my_app" {
  backend = "s3"

  config = {
    bucket = "terraform-state-XXXXXXXXXXXX"
    key    = "production/my_app/terraform.tfstate"
    region = "ap-northeast-1"
  }
}

どちらが良いか

状況によりますが、ハードコーディングで収まり切らない規模であれば Remote state の利用を考え、それ以外は基本ハードコーディングを用いる方がシンプルでメリットが大きいように思います。

参考

info
備考

Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。

2025年06月15日に最終更新
読み込み中...