【後編】インフラ作成をセルフサービス化: HCP Terraform の No-Code provisioning
前編では、HCP TerraformのNo-Code provisioningの概要について説明しました。今回はその後編として、実際にHCP Terraformを使ったプロビジョニングの操作方法について説明します。
次の流れでNo-Code provisioningを使用したインフラのプロビジョニングを行います。
ステップ1 Private Module Registryにノーコード対応モジュールを登録する
最初に、GitHubのリポジトリにモジュールを登録します。今回使用するモジュールは、AWSのVPC、RDSインスタンス、サブネットグループ、セキュリティグループを作成するように構成しています。モジュールのバージョンはタグで管理します。1.0.0というタグを作成し、mainブランチにプッシュしてバージョンを付与します。
次に、このモジュールをHCP TerraformのPrivate Module Registryにノーコード対応モジュールとして登録します。HCP TerraformのOrganization設定ペインにあるRegistryを選択し、右上の「Publish」-「Module」の順にクリックします。
Add ModuleではGitHubを選択し、モジュールのリポジトリ(ここではterraform-aws-rds)を選択します。
Module publishing typeではTagを選択し、No-code provisioningではAdd Module to no-code provision allowlistにチェックを入れます。
「Publish module」をクリックすると、Private Module RegistryにRDSモジュールとして登録されます
ここでは、利用者が誤って大きいDBインスタンスタイプを使用することがないよう、利用できるインスタンスタイプをプルダウンで選択するようにします。このようにしておくことで入力ミスを減らすことができます。画面右にある「Configure Settings」の歯車アイコンをクリックし、「Edit version and variable options」を選択します。そして、db_instance_class変数に対し、+ Add dropdown optionsの箇所に限定するインスタンスタイプを追加していきます。
入力が終わりましたら、「Save」ボタンをクリックして設定を保存します。
以上で、Private Module Registryにノーコード対応モジュールを登録する作業は終了です。
ステップ2 HCP Terraform UI でノーコード対応モジュールを選択する
ここから、ノーコード対応モジュールを使ってプロビジョニングを行います。HCP TerraformのOrganization設定ペインにあるRegistryを選択し、Filtersで「No-Code ready」にチェックを入れると、ノーコード対応モジュールが表示されます。
RDSモジュールをクリックして、プロビジョニング画面に移動します。No-Code Provisioningの下にある「Provision workspace」をクリックして、プロビジョニングを開始します。
ステップ3 モジュールの変数の値を入力する
変数の入力が求められますので、あらかじめ決めておいた変数を入力して作業を行います。ここでは、db_encryptedはTrueを選択し、DBインスタンスはdb.t3.mediumを選択します。db_name、db_password、db_usernameには任意の値を入力します。「Next: Workspace settings」をクリックして次に進みます。
ステップ4 Terraformのワークスペースを作成する
作成するワークスペースを設定します。Workspace nameに任意の名前を設定し、ワークスペースを作成するプロジェクトを選択します。Apply methodsでは、今回はApplyを手動で行うため、Manual applyを選択します。
入力が完了したら、「Create workspace」をクリックします。
ステップ5 プロビジョニングプロセスを開始する
ステップ4が終了すると、プロビジョニングが自動で開始されます。レビュー者はPlanやCost estimationを確認し、実行計画に問題がなければApplyを実行します。
作成したモジュールに変更を加えてバージョンを上げる場合は、GitHubで新しいバージョンのタグを作成し、ブランチにプッシュします。ノーコード対応モジュールにはGitHubの新しいタグが自動で反映されます。次回のプロビジョニングは、新しいモジュールのバージョンを選択して行います。
まとめ
いかがでしたでしょうか。No-Code provisioningを使うと、利用者はコードを書くことなくシンプルなGUIを利用できるため、効率よくプロビジョニングができるようになります。また、必要な変数を入力する際にエラーを防ぐ機能も備わっており、スムーズなプロビジョニングが可能です。
今回の記事が皆さまのご参考になれば幸いです。