タダです.
最近,Terraform を業務で使ったのですがデプロイする環境が複数の AWS アカウントでした.同じコードをアカウントを変えてデプロイすることを初めてやってみてわかったのが tfstate ファイルを最初のデプロイ以降に Terraform 側でデプロイするたび参照するため別のアカウントにデプロイが難しかったです.そこで Terraform の WorkSpaces を使ったのでこの記事で使い方を整理しておきます.
Terraform における WorkSpaces とは
WorkSpace は Python の仮想環境のように環境ごとに設定を切り替えてデプロイを実行したい場合に有効です.Terraform ではdefault
という単一のワークスペースが割り当てられており,WorkSpace を切り替えることで tfstate ファイルも切り替えられるのが特徴です.
WorkSpaces の使い方
WorkSpaces の使い方を見ていきましょう.terraform workspace --help
で関連コマンドを確認できます.
» terraform workspace --help Usage: terraform workspace New, list, show, select and delete Terraform workspaces. Subcommands: delete Delete a workspace list List Workspaces new Create a new workspace select Select a workspace show Show the name of the current workspace
ワークスペースの作成
新しく WorkSpaces を作りたい場合は new
コマンドを使います.以下のはdev
というワークスペースを作った例です.
» terraform workspace new dev Created and switched to workspace "dev"! You're now on a new, empty workspace. Workspaces isolate their state, so if you run "terraform plan" Terraform will not see any existing state for this configuration.
現在のワークスペースの表示
現在のワークスペースを表示したい場合はshow
コマンドを使います.
» terraform workspace show dev
ワークスペースの一覧を表示する
ワークスペースを一覧の表示をするときはlist
コマンドを使います.*
が付いているのが現在のワークスペースになります.
» terraform workspace list default * dev
ワークスペースの切り替え
ワークスペースの切り替えはselect
を使って次のように行います.
» terraform workspace select default Switched to workspace "default". » terraform workspace show default
まとめ
Terraform の WorkSpaces を初めて使ったので概要とどう使うかの整理をしました.業務ではなかなか使えてないですが,引き続き学んだことはアウトプットしていきます!