
IaCツールであるTerraformでは、状態管理やリソースの操作は基本的にCLIで行います。
今回紹介するTFTUI(Terraform TUI)は、Terraformのstate情報を視覚的に操作できるツールです。
この記事では、TFTUIでどんなことができるのかを解説し、操作方法を紹介します。
TFTUIとは
TFTUI(Terraform TUI)は、Terraformのtfstateファイルの情報を視覚的に操作できるツールです。
TFTUIはIdo Avraham氏によって開発され、Apache License 2.0のもとでオープンソースとして公開されています。
2025年2月現在、TFTUIの最新バージョンは0.13です。
オープンソースの定義については次の記事で解説しています。
https://envader.plus/course/12/scenario/1136
Terraformのtfstateファイルについて
Terraformのtfstateファイルとは、terraform apply
コマンドを実行し作成したリソースの情報が管理されているファイルです。
tfstateファイルには現状のリソースの状態が保存され、terraform apply
が実行されるたびにこのファイルを参照・更新し、構築したいインフラの状態と現在のインフラの状態との差分を判断します。
通常、tfstateファイルの情報を参照する時には、terraform state list
コマンドやterraform state show
コマンドを実行し参照しますが、TFTUIを使うことでこのtfstateファイルをコマンドを実行せずに参照することができます。
tfstateファイルに関しては以下の記事で詳しく解説しています。
https://envader.plus/article/199
TFTUIで何ができるのか
TFTUIのversion 0.13で主にできることを紹介します。
tfstateの情報をツリー形式で確認できる
TFTUIを使用すると、applyを実行し適用済みのリソースのtfstate情報をツリー形式で表示できます。
上下キーでカーソルを移動することができ、選択しているstateには色が着くため視覚的に分かりやすいです。
画面上部には作業ディレクトリ、Workspaceも表示されるため、作業環境も確認しやすくなっています。
TerraformにはWorkspaceという作業環境を分ける機能があり、コマンド一つで環境を切り替えることができるため、開発環境やステージング環境にすぐに移行して作業することが可能です。
Terraform Workspaceについては次の記事で解説しています。
https://envader.plus/article/221
tfstateの詳細情報を表示できる
tfstateを選択することで、state情報の詳細を表示できます。
state情報をターミナルで表示するにはterraform state show
コマンドを実行する必要がありました。TFTUIではこのコマンドが不要になり、state情報を選択するだけでstate情報が確認できます。
plan、applyが実行できる
Terraformでどんな変更を行うのかを確認するためのterraform plan
、実際にリソースを作成するterraform apply
コマンドを実行できます。
操作方法は次のセクションで解説しますが、TFTUIではこれらのコマンドも視覚的に実行可能です。
plan、applyコマンドに関しては次の記事で解説しています。
https://envader.plus/article/162
Targetを指定したplan、applyも可能
ある特定のリソースのみを指定してplan、applyを実行したいといった場面にも対応できます。
ターミナルでは-target
オプションを使用することでplan、applyを実行するリソースを指定できますが、こちらも視覚的に実行可能です。
操作方法は次のセクションで解説します。
Workspaceも切り替えできる
Workspaceの確認、切り替えもTFTUIで実行できます。
ターミナルではterraform workspace
コマンドを実行しますが、TFTUIを使うことでコマンドを実行せずに視覚的に操作が可能です。
TFTUIのinstall
TFTUIのinstallはHomebrew、PIP、PIPXから実行できます。
以下にHomebrewのコマンドを記載します。
brew install idoavrah/homebrew/tftui
install完了後、パスが通っているか確認します。
which tftui
/opt/homebrew/bin/tftui
PIP、PIPXを使ったコマンドは以下です。
# PIP
pip install tftui
# PIPX
pipx install tftui
TFTUIを実行するための前提条件
TFTUIはtfstateの情報を表示するため、リソースが作成されてstate情報が存在する状態であることが必要です。
リソース作成前ではtfstate情報は存在しないため注意しましょう。
TFTUIの操作方法
ここからは、TFTUIの操作方法を解説します。
はじめに、Terraformの作業ディレクトリに移動し、次のコマンドを実行しTFTUIを起動します。
tftui
起動完了後、以下の画面が表示されます。
マニュアルの確認
?
キーを押下することで、マニュアルを表示できます。
表示を閉じたいときはESC
キーを押下します。
リソース間の移動と詳細表示
tfstateのリソース間を移動したい場合は、カーソルキーの上下で移動します。
選択されている箇所は画像のようにオレンジで表示されます。
詳細を表示したい場合は、enter
キーを押下します。
詳細を表示中にf
キーで全画面表示に変更できます。
詳細を閉じるときはESC
キーを押下します。
リソースを複数選択する
Space
キーを押下することで、複数のリソースを選択することができ、選択中は赤色でハイライトされます。
選択中のリソースで再度Space
キーを押下で解除できます。
この操作は、リソースをTarget指定してplan、applyを実行するときに役立ちます。
リソース名をコピーする
c
キーを押下でクリップボードにリソース名をコピーできます。
ブラウザなどでコピーする場合はcommand + c
が一般的ですが、TFTUIの場合はcommand
キーは不要です。
terraform planの実行
p
キーでterraform plan
コマンドを実行します。
リソースを複数選択した状態であれば、Target指定のplanになります。
選択肢が表示されるため、yesを選択した状態でenter
キーを押下するとplan実行です。
この画面では、マウスで選択肢をクリックすることも可能です。
terraform applyの実行
a
キーでapplyを実行します。
applyはplanを実行した状態で、a
キーを押下することで実行できます。
通常のapplyコマンド実行時は、planが表示されたあと、yesを入力してリソースを作成しますが、TFTUIでは一気にリソース作成まで実行されてしまう点に注意が必要です。
リソース名を検索
/
を入力すると、検索モードになります。
検索窓に文字を入力することで、特定のリソースに絞って表示することができます。
Workspaceの切り替え
w
キーでWorkspaceを切り替えることができます。
単純に、Workspaceを使うことでどういった挙動になるのか確認する際にも便利です。
リソース情報の削除
tfstateのリソース名にカーソルを合わせた状態でd
キーを押下すると、選択したリソースのstate情報を削除します。
これはterraform state rm
コマンドに該当します。
terraform destroyの実行
control + d
キーで実際のリソースを削除するterraform destroy
コマンドを実行します。
画像のyesを選択するとdestroyのplanが表示され、その状態でa
キーを押下でdestroyが実行されます。
ダークモードへの切り替え
m
キーでダークモードへの切り替えが行えます。
まとめ
この記事では、TFTUIの特徴、使い方について解説しました。
TFTUIはTerraformのtfstate情報を視覚的に操作できるツールです。
通常はCLIで実行する必要があるterraform state list
やterraform state show
の情報をGUIのような形で確認できます。
また、terraform plan
やterraform apply
の実行、Workspaceの切り替えなど、Terraformの基本的な操作もTFTUIを通じて実施できるため、作業効率の向上が期待できます。
TerraformのCLI操作に慣れている方はもちろん、より視覚的にTerraformを扱いたい方にも有用なツールなので、ぜひ活用してみてください。
参考記事
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

関連記事

2024.06.17
【Terraformハンズオン】AWS CloudFront&ALB構成を実現しよう
この記事では、CloudFrontとは何かを解説し、IaC(Infrastructure as Code)を実現するためのツールであるTerraformを使ってCloudFrontを構築するまでのハンズオンを行います。
- AWS
- ハンズオン
- Terraform

2024.09.22
【Terraformハンズオン】非同期呼び出しのLambda関数をデプロイしてみよう
こちらの記事では、Lambda関数の「非同期呼び出し」に焦点を絞って解説し、Terraformを使ったハンズオンを行います。
- AWS
- Terraform
- ハンズオン

2024.08.24
【Terraformハンズオン】NatGatewayを使ってプライベートな通信を実現してみよう
AWSを扱う実際の現場では、NAT Gatewayを使うことでより安全なインターネット通信を実現することができます。ぜひ一緒に理解を深めながら、Terraformでの実装方法を学んでいきましょう。
- AWS
- Terraform

2024.09.28
Trivyで実現するTerraformのセキュリティ強化 IaC脆弱性スキャンの方法
インフラのコード化による効率化が進みましたが、一方でコードに潜むセキュリティリスクも拡大しています。これらのリスクを管理するためには、適切なセキュリティスキャンを導入し、脆弱性を早期に発見することが重要です。
- サイバーセキュリティ
- インフラエンジニア
- Terraform