HCP Waypoint が Terraform Cloud の Project に対応しました
HashiConf 2023でアナウンスがされた様に、HCP Waypointは従来のPaaSライクなアーキテクチャから変更され、Terraform CloudのNo-Code Provisioningと連携する事を前提にしたアーキテクチャへ変更されました。
以下のドキュメントに記載がある通り、HCP WaypointのApplication templates、Add-onsはTerraform CloudのNo-Code Provisioningの機能を通じて提供されます。
プラットフォームチームはTerraform CloudのNo-Code Provisioningの機能を活用し、アプリケーションチームが良く利用するインフラストラクチャパターン、その上で追加で必要となるアドオンを、それぞれNo-Code Ready ModuleとしてTerraform Cloudに準備します。
更に、プラットフォームチームは、HCP WaypointにTerraform Cloudで作成したNo-Code Ready ModuleをApplication template、Add-onとして登録し、アプリケーションチームがTerraform Cloudへログインする事なく、HCP Waypointのインターフェースからアプリケーションチームが必要とするインフラストラクチャをプロビジョニング出来る様にします。
HCP Waypointを利用する場合、プラットフォームチームが行う事の一例
アプリケーションチームは、プラットフォームチームが準備したApplication template、Add-onをHCP Waypointからセルフサービスで利用し、アプリケーション開発に必要なインフラストラクチャをいち早くプロビジョニングできる様になります。
HCP Waypointを利用する場合、アプリケーションチームが行う事の一例
表でまとめると以下のような形でしょうか。
チーム | Terraform Cloudで行うこと | HCP Waypoint で行う事 |
---|---|---|
プラットフォーム | No-Code Ready Moduleの作成、登録、管理。Projectの管理。Dynamic Provider Credentials等認証情報の設定 etc | No-Code Ready ModuleをApplication template、もしくはAdd-onとして登録。 |
アプリケーション | - | 登録されたApplication template, Add-onを利用し、アプリケーション開発に必要なインフラストラクチャをプロビジョニング |
HCP WaypointはTerraform CloudのNo-Code Provisioning機能を利用するためのラッパーの様な位置付けでもあり、アプリケーションチームにするとアプリケーション開発するためのレビュー済みのインフラストラクチャスタックをLook&FeelでHCP Waypointから数クリック実行すれば用意出来るというところがメリットでしょうか。
Projects in Terraform Cloud integrated with HCP Waypoint
ここからがタイトルと繋がるところですが、HCP Waypointを経由してNo-Code Ready Moduleを利用する場合、HCP Waypointで入力された情報を元にTerraform Cloud上でWorkspaceが作成され、リソースが管理される事になります。HCP Waypoint側では、No-Code Ready Moduleの中で利用されているTerraform providerの認証情報を設定する必要はないので、これはプラットフォームチームが予めTerraform Cloud側で設定しておく必要があります。
以前はHCP WaypointでApplication templateを登録する際、Terraform CloudのProjectを選択する事が出来なかったのですが、2024年1月5日においてはHCP WaypointでApplication templateを登録する際、Choose your Terraform Cloud project フィールドからHCP Waypointと関連付けられたTerraform CloudのOrganization内にあるProjectと紐付ける事が必要になっています。
Terraform CloudのProjectとの紐付けを行う事がApplication templateの登録時に必要
これにより、アプリケーションチームが利用するApplication templateを利用するProjectをTerraform Cloud上で作成しておき、このProjectでのみ利用出来る認証情報をVariable Setsとして定義しておく事で、認証情報の利用範囲を絞った上でセキュアに管理出来そうです。
また、HCP Waypointと紐付けられたNo-Code Ready ModuleがTerraform CloudのDynamic Provider Credentialsに対応しているAWS, Azure, GCP, Kubernetes/Helm, VaultのTerraform providerを用いて実装されている場合、よりセキュアに認証情報を管理できそうです。
Terraform CloudのPlus Editionをご利用頂いている方で、HCPのアカウントがあればHCP Waypointを直ぐにお使い頂けますので、ご興味あれば是非お試し下さい!
Discussion