⛩️

TerraformCloudの使い方

2022/10/19に公開

Terraform Cloudとは

TerraformCloudとは、Terraformの開発元のHashiCorp社が提供している
マネージドサービスです。
Terraform を使用したInfrastructure as Codeをクラウド上で実行できます。

かんたんにTerraformCloudの便利な点を述べると

  1. tfstateを管理が不要になる
  2. 簡単にGithubと連携できて、ワークフローを構築出来る
  3. インフラのProvisioning履歴を残せる

tfstateを管理が不要になる

レスキューナウのインフラ構築は複数人で開発しているため、
現在のterraformの状態を示すtfstateファイルの管理に手間がかかります
tfstate管理の大変さはこちらの記事がわかりやすいです
TerraformCloudを使用するとtfstateの管理情報がCloud上で管理されて自分たちで操作する必要がなくなるので、管理用のストレージを用意したり、誤った操作で環境を破壊するリスクを格段に減らすことができます。


簡単にGithubと連携できて、workflowを構築出来る

ワークスペース作成時や、設定画面でGithubと連携することで、簡単に実行ワークフローを構築することができます。

ワークスペース作成時に連携先を選択できます


ワークスペースごとにワークフローも管理画面で細かく設定することができます。

Terraform Working Directory
ワークスペースで実行されるTerraformのディレクトリを選択できます。
複数の環境を用意する際に、ワークスペース単位で管理できるのでとても便利です。

VCS branch
Terraformを実行するdefaultブランチを指定できます
ここで指定したブランチにマージされた場合にワークフローを実行できるので
GithubでのPull Requestをチームでレビューしてもらい、レビューOKなら
ワークフローを実行するなど、安全なインフラ環境構築をおこなえるようになります。

Automatic Run Triggering
TerraformCloudのUIから手動でトリガー実行したり、Githubでリリース用のタグが付与された場合にapplyを実行して実行させるなどapplyの実行方法を選択できます。

GitHubActionsなどの仕組みを利用して構築していた
terraform実行のワークフローを、3箇所設定するだけで
簡単に構築することができます。


インフラの変更履歴を残せる

実行履歴の一覧からCurrentRunで現在適用されているバージョン
RunListで過去に実行されたPlanApplayの実行結果一覧を確認することができます。

CurrentRun一覧の詳細を見たい行をクリックすると
 その実行情報を表示できます

PullRequestからPlanのみ実行した場合はPlanの情報が表示されて、
デフォルトブランチにマージされて、applyまで実行された場合は
実行結果まで表示されます、CLIで実行した場合よりグラフィカルで直感的に差分が理解できると思います。
また、詳細画面に表示されているコミットハッシュをクリックすると
Githubの該当のコミットに遷移できるので、TerraformCloudから実際のコードの変更を確認することもできます。

まとめ

簡単にTerraformCloudの便利な点について説明させていただきました。
TerraformCLIを使用してlocalでてTerraformを実行する環境に比べると、複数人で管理する場合にはとても便利で簡単にInfrastructure as Codeを管理する環境を構築できると思います。
料金体系も1チーム5名までなら無料で使えるので、試しに導入してみても良いかもしれません。


hashicorpが提供しているチュートリアル
TerraformTerraformCloudについて体系立てて勉強できました。
https://developer.hashicorp.com/tutorials/library?product=terraform

レスキューナウテックブログ

Discussion