---
title: Teraformの「状態」について知ろう！
tags: 
author: [ぐらにゅ](https://convert.docswell.com/user/gurany_tou)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/47Z6MW8673.jpg?width=480
description: 2025/5/21 IaC Meetup【Finatext × YUMEMI.grow】
published: May 21, 25
canonical: https://convert.docswell.com/s/gurany_tou/K4VPEQ-2025-05-21-194345
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/47Z6MW8673.jpg)

Terraformの「状態」について知ろう！
IaC Meetup【Finatext × YUMEMI.grow】
株式会社Finatext
ぐらにゅ
© Finatext Holdings Ltd.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/YJ62NGPL7V.jpg)

自己紹介
● 名前: 山吹明里
○ 社内でも社外でも大体「ぐらにゅ」と呼ばれてます
○ 大体のSNSは @gurany_touでやっています
● 役職: インフラエンジニア
○ 主に証券事業でAWS・Terraformに関するあれそれをやってます
© Finatext Holdings Ltd.
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/GJ525VKMJ4.jpg)

会社紹介
株式会社Finatextについて
「金融を“サービス”として再発明する」をミッションに掲げ、次世代金融インフラの
提供を通して組込型金融を実現するフィンテック企業です。
証券・保険・クレジット・データ解析などの事業を展開し、「金融がもっと暮らしに
寄り添う世の中」の実現を目指しています。
© Finatext Holdings Ltd.
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LE3KNDZ9E5.jpg)

初学者の頃に思ったこと
● そういう挙動になることはわかったけど、なぜそうなるんだろう？
○ コードを書き換えてデプロイするとクラウド上にあるリソースが変更される
○ 手動でクラウド上にあるリソースの設定を変えると差分が発生する
デプロイ
手動での操作
クラウドリソース
コード
© Finatext Holdings Ltd.
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/8ED3WPR87G.jpg)

今回話す内容
● Terraformではどのように状態を管理しているのか
○ terraform stateとは何か
■ tfstateファイルについて
○ plan/apply時の挙動
○ terraform stateを操作する
© Finatext Holdings Ltd.
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/V7P49NWWE8.jpg)

Terraformではどのように状態を管理しているのか
terraform stateとは
Terraformでは、terraform stateというものを利用して、実リソースとコードの管理
を行っている
● terraform stateとは
○ Terraformが管理する状態ファイル（.tfstateという拡張子のファイル）
○ コードとクラウドリソースのマッピングを行っている
○ クラウドリソースの属性状態をキャッシュする役割も担っている
○ Terraformはこのファイルをもとに、リソースの差分を判断し、必要な変更を行う
© Finatext Holdings Ltd.
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2JVXMK897Q.jpg)

Terraformではどのように状態を管理しているのか
tfstateファイルについて
● JSON形式のファイル
○ JSON形式になっており、リソースのマッピング・属性情報が保存されている
○ この対応情報があるからこそ、Terraform は「差分」や「削除対象」がわかる
● チーム開発だと利用しているクラウドサービスが提供しているストレージサービス
で管理することが多い（AWSの場合はS3）
○ なので普段の開発ではあまりtfstateファイルを見る機会がないかなと
© Finatext Holdings Ltd.
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5EGVGQ54EL.jpg)

tfstateの中身（一例）
© Finatext Holdings Ltd.
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4JQ6XKZRJP.jpg)

terraform planの挙動
● 何が行われているか
○ stateとクラウドリソース/コードをそれぞれ比較する
○ 比較結果から差分（作成・更新・削除）を検知して表示する
● 処理の流れ
1. 既存のクラウドリソースとstateを比較し、tfstateの状態が最新であることを確
認する（ドリフト検知）
2. コードとstateを比較する
3. 1と2で比較した結果を元に差分を表示する
● stateとの関係
○ stateを利用して、コード・クラウドリソースとの比較を行う
○ 実リソースの最新状態とstateが一致しない場合もあるので確認を行っている
■ 手動で実リソースを操作した
■ クラウドサービス/Terraform Provider側の機能更新
© Finatext Holdings Ltd.
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/K7446P3Q71.jpg)

terraform applyの挙動
● 何が行われているか
○ planで算出された差分をもとに、クラウドリソースを実際に操作する
○ クラウドリソースの操作が成功した後、stateを最新の状態に更新する
● 処理の流れ
1. tfファイルとstateから差分を計算（terraform plan）
2. クラウドリソースの操作（作成・変更・削除）を行う
3. 新しい状態を.tfstateファイルに書き込む
● stateとの関係
○ stateに基づいて「何をどう変更するか」を算出し、その結果に基づいて操作を行
う
○ stateファイルが更新されることで、Terraformの「状態」も最新化される
© Finatext Holdings Ltd.
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ14V91LJG.jpg)

terraform stateを操作する
terraform stateは基本的に自動更新されるが、コマンドやコード上から操作可能
ここでは代表的な2つの操作を紹介する
● import
○ Terraform管理されていない既存リソースをtfstateに取り込む際に利用
○ importブロックを記述する or terraform importコマンドで実行可能
○ https://developer.hashicorp.com/terraform/cli/import
● moved
○ リソース名変更に利用する
○ movedブロックを記述する or terraform state mvコマンドで実行可能
○ https://developer.hashicorp.com/terraform/language/modules/develop/ref
actoring
© Finatext Holdings Ltd.
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJWXLQ8QE2.jpg)

（参考）他のIaCツールにおける状態管理
● OpenTofu
○ Terraformと同様にstateファイルがある（Terraformをforkしてきたものなので
それはそう）
○ https://opentofu.org/docs/language/state/
● Pulumi
○ Terraformと同様にstateファイルがある
○ デフォルトだとPulumi Cloudで管理される
○ https://www.pulumi.com/docs/iac/concepts/state-and-backends/#managin
g-state-backend-options
● 各クラウドが提供しているIaCサービス
○ どのサービスもクラウドサービス側で自動的に管理している
■ AWS: CloudFormation
■ Azure: Azure Resource Manager
■ Google Cloud: Cloud Deployment Manager
© Finatext Holdings Ltd.
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4EZ6MW83E3.jpg)



