1. ホーム
  2. 記事一覧
  3. 【Terraform】tfstate可視化ツール TFTUIの特徴と使い方

2025.03.12

【Terraform】tfstate可視化ツール TFTUIの特徴と使い方

    IaCツールであるTerraformでは、状態管理やリソースの操作は基本的にCLIで行います。

    今回紹介するTFTUI(Terraform TUI)は、Terraformのstate情報を視覚的に操作できるツールです。

    この記事では、TFTUIでどんなことができるのかを解説し、操作方法を紹介します。

    TFTUIとは

    TFTUI(Terraform TUI)は、Terraformのtfstateファイルの情報を視覚的に操作できるツールです。

    TFTUIはIdo Avraham氏によって開発され、Apache License 2.0のもとでオープンソースとして公開されています。

    idoavrah/terraform-tui

    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を実行するリソースを指定できますが、こちらも視覚的に実行可能です。

    操作方法は次のセクションで解説します。

    Resource Targeting

    Workspaceも切り替えできる

    Workspaceの確認、切り替えもTFTUIで実行できます。

    ターミナルではterraform workspaceコマンドを実行しますが、TFTUIを使うことでコマンドを実行せずに視覚的に操作が可能です。

    Command: workspace

    TFTUIのinstall

    TFTUIのinstallはHomebrew、PIP、PIPXから実行できます。

    Installation

    以下に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コマンドに該当します。

    Command: state rm

    terraform destroyの実行

    control + dキーで実際のリソースを削除するterraform destroyコマンドを実行します。

    画像のyesを選択するとdestroyのplanが表示され、その状態でaキーを押下でdestroyが実行されます。

    ダークモードへの切り替え

    mキーでダークモードへの切り替えが行えます。

    まとめ

    この記事では、TFTUIの特徴、使い方について解説しました。

    TFTUIはTerraformのtfstate情報を視覚的に操作できるツールです。

    通常はCLIで実行する必要があるterraform state listterraform state showの情報をGUIのような形で確認できます。

    また、terraform planterraform applyの実行、Workspaceの切り替えなど、Terraformの基本的な操作もTFTUIを通じて実施できるため、作業効率の向上が期待できます。

    TerraformのCLI操作に慣れている方はもちろん、より視覚的にTerraformを扱いたい方にも有用なツールなので、ぜひ活用してみてください。

    参考記事

    idoavrah/terraform-tui

    Resource Targeting

    Command: workspace

    Command: state rm

    Inspecting State

    【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

    IT未経験者必見 USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

    プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。

    「フリーランスエンジニア」

    近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。

    「成功する人とそうでない人の違いは何か?」

    私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。

    比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。

    多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、

    note記事3000いいね超えの殿堂記事 LINE登録で記事を見る

    エンベーダー編集部

    エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

    RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

    関連記事