APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

HCP Terraform のタグ機能がパワーアップしました!

こんにちは、ACS 事業部の埜下です。

先日公開された HashiCorp ブログの中に HCP Terraform のタグ機能が強化されたという情報がありました!

www.hashicorp.com

今回はパワーアップした HCP Terraform のタグ機能について紹介していきます。 なお、本記事の執筆時点ではタグ機能の強化はパブリックベータとなっています。

1. おさらい

タグ機能のパワーアップについて説明する前に、HCP Terraform の「プロジェクト」や「ワークスペース」といった機能と、今までの HCP Terraform のタグ機能について軽く紹介します。

1.1 プロジェクトとワークスペース

Terraform は構築したクラウドリソースを「ステート」として管理します。 HCP Terraform を使う場合、ステートは「ワークスペース」ごとに管理されます。

HCP Terraform を活用していくとワークスペースの数がどんどん増えていき、管理が大変になっていきます。 そこで「プロジェクト」というワークスペースをまとめる機能が登場しました。

プロジェクトは後から追加された機能なためか、ところどころ使い勝手が気になるところがあります。 今回のタグ機能のパワーアップもプロジェクトの足りない部分を補完しています。

1.2 以前のタグ機能

以前までのタグ機能は次のようなものでした。

  • 単一値しか設定できない
  • ワークスペース毎に設定する必要がある

「単一値しか設定できない」タグとは、Key-Value 形式ではなく単なるラベルのようなものです。 以前までのタグでもワークスペースの検索やフィルタリングは可能でしたが、複雑な分類は難しい状態でした。 たとえば、「HR」「Production」といった単一値タグを付けていると「HR」というタグだけでは、それが部門を示すのか、プロジェクト名なのか、担当者なのかが不明確です。

「ワークスペース毎に設定する必要がある」というのは、HCP Terraform の GUI でタグを設定する場合は複数ワークスペースにまとめてタグが設定できないということです。 tfe プロバイダを使ってワークスペースを Terraform 管理しておくことでタグ設定の煩雑さを軽減できますが、Terraform 構成が少々複雑になります。

2. パワーアップしたタグ機能

そんな HCP Terraform のタグ機能ですが、次のような機能向上がされました!

  • Key-Value 形式のタグを設定できるようになった!
  • プロジェクトのタグをワークスペースに継承できるようになった!
  • タグを上書きできないように制御できるようになった!

2.1 Key-Value 形式のタグを設定可能

今までの単一値タグに加えて、Key-Value 形式のタグを設定できるようになりました。

これにより従来できなかったワークスペースに関する情報をより柔軟に整理、分類、取得できるようになります。 たとえば、「Department=HR」「Department=Finance」といった部門に分けるタグを付与して各部門が使っている RUM 数を算出し、費用を按分するために使う、といったことも簡単になります。

RUM: Resource Under Management とは HCP Terraform 上で管理されているリソースの数で、HCP Terraform は RUM 数に応じて費用が発生します。

余談ですが、Terraform の構成ファイルを HCP Terraform/Terraform Enterprise と連携する際には terraform ブロックでタグによるワークスペースとの紐づけが可能です。 Terraform の v1.10 からタグを使ったワークスペース指定でも Key-Value 形式が使えるようになっています。

developer.hashicorp.com

2.2 プロジェクトのタグをワークスペースに継承可能

冒頭でも紹介したとおり、HCP Terraform では複数のワークスペースをプロジェクトにまとめることができます。 今回の機能向上でプロジェクトに設定したタグがプロジェクト内のワークスペースにも継承されるようになりました。 これによりワークスペース一つ一つにタグを設定せずに済むようになります。

2.3 タグを上書きできないように制御可能

「予約タグキー (Reserved tag keys) 」という機能が追加されました。

予約タグキー (Reserved tag keys)

あらかじめ予約タグキーを作成しておくことで、プロジェクトやワークスペースにタグを付与する際にキーの候補として表示できます。 これによりタグのキーを標準化して、リソースの追跡に影響する重複を防げます。

タグキーの候補が表示される

候補として表示できるだけでなく、プロジェクトから継承させた予約タグの値をワークスペース側で上書きできないように制御できます。 これによりタグ管理のガバナンスを強化し、より組織化されたインフラ環境の管理を促進できるようになります。

プロジェクトから継承した Environment タグの上書きはできない

注意点としては、既にワークスペースに登録されているタグと同じキーの予約タグキーを後から追加しても、上書きされた状態をなかったことにできないということです。 既にあるタグを制御したい場合は一度ワークスペースからタグを削除する必要があります。

3. まとめ

今回はパワーアップした HCP Terraform のタグ機能について紹介しました。 長らく待ち望まれていた機能がついに追加されました。

あらためて、今回のタグ機能のパワーアップは次の 3 点です。

  • Key-Value 形式のタグを設定できるようになった!
  • プロジェクトのタグをワークスペースに継承できるようになった!
  • タグを上書きできないように制御できるようになった!

これにより HCP Terraform のコスト管理、自動化、ガバナンスを強化できるようになり、より HCP Terraform の使い勝手がよくなるのではないでしょうか。