Terraform Cloudとは
Terraform Cloudとは、HashiCorpが提供するマネージドサービスで、SaaS型ホスティングサービスとして提供されます。不要なツール抜きに、簡単に本番環境で利用可能にします。
Terraform Cloudは、Terraformをチームで共同利用するために、アクセスコントロールやモジュール共有のためのプライベートリポジトリを提供します。インフラをリモート実行するために、セルフサービスインフラストラクチャを作成し、マルチクラウドのコンプライアンスと管理を実現します。
【参考】:Terraform Cloud
Terraformとは
Terraformとは、Infrastructure as Code(IaC)と呼ばれるインフラの構成管理ツールを指します。クラウドとオンプレミスのコンピュータリソースを、安全かつ効率的に構築・変更・バージョンアップすることができます。運用形態の異なるマルチクラウド・マルチプラットフォーム環境における、属人的な処理から解放します。
Terraformでは、リソース情報を人間が判読できる設定ファイルとして定義し、再利用・共有します。作成した設定ファイルを用いて、一貫性のあるワークフローを定義・使用し、ライフサイクル全体を通したインフラのプロビジョニングと管理を行います。
【参考】:Terraform
Terraform Cloudのメリット
Terraform Cloudは、クラウドベースの構成管理が可能であり、インフラの設定作業を自動化することができます。GUIからTerraformを操作可能で、作業の可視化や標準化が可能です。作業の効率向上により、作業品質向上・作業速度向上がもたらされます。
Terraform Cloudはクラウドホスティングサービスのため、専用のリソースを割り当てる必要がありません。初期コスト削減が可能で、スモールスタートにうってつけです。
Terraform Cloudのデメリット
Terraform Cloudのデメリットは、メリットの裏返しとなる部分です。具体的には、Freeプランではオンプレミスは対象外となり、有償のBusinessプランが必要です。そのほか、システムをローカルに割り当てないために、ネットワークパフォーマンスの制限を受けます。同時実行数も契約内容に従って、制限を受けます。
とは言っても、チームコラボレーションを念頭に置くと、勝手にローカルシステムで設定せずに一貫したコントロールが可能となるTerraform Cloudは、明らかにメリットが上回ると考えて良いでしょう。
Terraform Cloudの料金プラン
Terraform Cloudの料金プランは、「Free」「Team & Governance」「Business」の3つのプランが用意されています。プランの違いは以下の通りです。
・Freeプラン 名称通り、無料のプランで小規模チーム向けプランです。Terraformで提供するInfrastructure as Codeの機能に加えて、インフラの管理と共有機能、チーム管理のためのポリシー適応などが利用できます。このプランでは、アクティブメンバーが5人に制限されています。
・Team & Governanceプラン Freeプランの機能に加えて、チーム管理機能を必要に応じてオプション追加することができます。1ユーザーあたり、20USドルからオプションが選択可能です。
・Businessプラン Team & Governanceプランの機能に加えて、SSOや監査ログなどの高度なセキュリティ・コンプライアンス・ガバナンスを提供します。必要に応じて企業向けのサポートオプションが選択可能です。
【参考】:Terraform Cloud Pricing 【参考】:Terraform Cloud Plans and Features
Terraform Cloudの使い方
Terraform Cloudを使うために、最初にアカウントの作成など必要な手続きを進めていきます。クラウド連携を行う場合は、事前に連携先のアカウント登録が必要となります。具体的には、GitHubやAWSなどのアカウント登録を済ませておく必要があります。
【参考】:Get Started - Terraform Cloud 【参考】:What is Terraform Cloud - Intro and Sign Up
アカウントの作成
HashiCorp Cloud Platform(HCP)アカウントを、お持ちでない場合はアカウント作成を行います。アカウントをお持ちの方は、アカウント認証情報を用いてTerraform Cloudにログインし、手続きを行います。
【参考】:Terraform Create an account
組織の作成
アカウント作成の次の画面で、組織を作成します。5人までの組織は無料で、ワークスペースの共同利用やプライベートモジュール、プロバイダーの共有が可能です。もし、既存の組織に参加する場合は、組織の管理者にアカウント作成で使用したメールアドレスを伝えることで、組織参加の招待状を受け取ることができます。
【参考】:What is Terraform Cloud - Intro and Sign Up: Create an organization
Terraform Cloudへのログイン準備
Terraform Cloudをコマンドラインから使用するには、ログインが必要です。ログインにより、リモートでのプランや実行のトリガー、ステートのクラウドへの移行など、必要なリモート操作を行うことができます。事前にローカルにTerraform CLIをインストールしておきます。
【参考】:Log in to Terraform Cloud from the CLI 【参考】:Install Terraform
Terraform Cloudのログインフロー
Terraform Cloudのログインフローとして、最初にTerraform Cloudでの認証が必要です。”terraform login” コマンドを実行し、認証することを確認します。
その後、ブラウザが自動的に立ち上がり、Terraform Cloudのログイン画面が表示されます。Web UIでトークン名を入力するか、デフォルト名のterraform loginを設定します。ここで、「Create API token」をクリックして、認証トークンを生成します。
「Create API token」という画面がポップアップしますので、ここで表示されるトークンを格納しておきます。このトークンはTerraform Cloudの組織へのアクセスに必要です。Terraform CLIで、求められたターミナルに貼り付けます。これで、認証処理が完了となります。
【参考】:Log in to Terraform Cloud from the CLI
ワークスペースの作成
これまでのアカウント作成と組織の作成の手順で、Terraform Cloudが使用できる状態になっています。CLIドリブンのワークフローを使用するために、”terraform init”コマンドを実行し、ワークスペースを作成します。使用するリソースは、ワークスペースによって構成されます。
ここで、作成されたマークスペースのVariablesで、「Apply variable set」をクリックしVariable Setを新たに作成します。これにより、連携するクラウドサービスの認証情報などを保存し、使用可能にします。
【参考】:Create a Workspace
プランと実行
例えばクラウドサービスのプロバイダーを用いる場合、Variablesにインスタンスのタイプや名称を登録します。登録が完了したら、”terraform apply”でプランを登録します。確認の上、問題なければ「Confirm & Apply」でプランを実行します。プロビジョニング実行後の結果は、画面に表示されます。
実行が正常に完了した場合、Terraformのリソーステーブルに作成したリソースが表示されます。
Terraform Cloudのその他の操作
以降は、必要な処理の手順を「Get Started - Terraform Cloud」を見ながら進めるのが良いでしょう。Credentials Variable Set(CVS)やワークスペースの作成、インフラの作成・変更、リソースやワークスペースの破棄など必要な機能はそれぞれ4〜5分程度の情報にまとめてあります。
【参考】:Get Started - Terraform Cloud
Terraform Cloudはチーム利用の効率向上をもたらします
Terraform Open Source版ではCLIが主体でしたが、Terraform CloudではGUIを用いてTerraformを操作します。個人のローカルシステムで勝手にインフラの構成やプロビジョニングを行うわけではなく、クラウドホスティングサービスで統一的に管理しています。そのため、ワークスペースのアクセスコントロールが簡単にでき、CI/CD環境をスムースに構築可能となりました。
頻繁に構成変更が生じる業務では有効性を評価するために、Free版から試してみることをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから