HCP Terraformのephemeral workspaces(リソース自動削除設定)がProject単位で設定できるようになりました

HCP Terraformのephemeral workspaces(リソース自動削除設定)がProject単位で設定できるようになりました

Clock Icon2024.09.24

アップデート概要

HCP Terraform/Terraform Enterpriseにはephemeral workspacesという機能があります。

この機能は、特定の日付や一定期間非アクティブなWorkspaceのリソースを自動的に削除する機能です。

例えば、「7日後に削除」と設定すると、7日後にWorkspaceでDestroy用のRunが行われリソースが削除されます。

これまでは、Workspace単位での設定が必要でしたが、今回のアップデートで、Project単位(Workspaceをまとめた単位)の設定が可能になりました。

このアップデートによって、設定漏れのリスクと設定作業の負荷が軽減されました。

例えば以下のように活用することで、組織内の自動削除運用を簡単に実現できます。

  • Sandbox用のProjectを作って、ephemeral workspacesを設定
  • 各ユーザーは検証時にSandbox用のProjectを使う

https://www.hashicorp.com/blog/hcp-terraform-adds-run-queue-visibility-and-new-ephemeral-workspace-features

https://dev.classmethod.jp/articles/tfc-ephemeral-workspaces/

https://dev.classmethod.jp/articles/tfc-ephemeral-workspaces-no-active-destroy/

やってみた

ephemeral workspaces(自動削除)の設定

プロジェクトに対して、自動削除の設定をやってみます。

「Projects」 -> 「<Project名> Actions」 -> 「Edit project」の順に選択します。

Projects___classmethod-sandbox___HCP_Terraform.png

「Auto-destroy workspaces」を選択します。

削除までの日数を指定します。今回はLast 1dayを設定しました。

最終更新から1日経過したWorkspaceに対して、自動削除が行われます。

Auto_destroy_default___sato-masaki___classmethod-sandbox___HCP_Terraform.png

ちなみに、Workspacesの一覧画面からも、各Workspaceの自動削除の設定状況が確認できます。(設定されているWorkspaceはWorkspace名の下に、Auto-destroyが表示されます。)

Workspaces___classmethod-sandbox___HCP_Terraform.png

動作確認

1日置いて、自動削除が行われたことを確認します。

設定したProject配下のWorkspaceを確認しました。

削除用のRunが行われており、自動削除が正常に動作していました。

Runs___sato-epehemeral-workspace-test___classmethod-sandbox___HCP_Terraform.png

補足: Workspace側で上書きができるのか

All new and existing workspace created via self-service workflows in the project will inherit this setting as their default auto-destroy configuration while allowing individual workspace owners to override for fine-grained control. This ensures that temporary resources are cleaned up to reduce cloud costs and manual configuration burden.

Workspace側で上書き可能です。

Workspaceを選び、  「Settings」 -> 「Destruction and Deletion」順に選択すると以下の用に自動削除の設定が可能です。

Destruction_and_Deletion___sato-epehemeral-workspace-test___classmethod-sandbox___HCP_Terraform.png

ちなみに、現状(2024/9/23時点)Project側では以下の設定はできません。設定したい場合は、Workspace側に設定してください。

  • Stateの更新状況に関わらずX日後に削除
  • 時間単位の指定(現状、日単位のみ)

おわりに

HCP Terraformのephemeral workspacesがより便利になりました。

「便利な機能なんだけど、Workspace単位だと設定忘れちゃってあまり使ってないんだよね」という方も多かったのではないでしょうか。

Project単位で設定できるように上記の問題は解消しました。私も早速自分の検証用プロジェクトに設定しました。(これで設定漏れ無くなる!)

Terraformで検証用リソース作ることがある方は、是非使ってみてください。

以上、AWS事業本部の佐藤(@chari7311)でした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.