運用

Terraform Cloud でState ファイル (tfstate)を管理する。

はじめに

Terraform Cloud が登場しました。
https://app.terraform.io/signup
何をするのかというとStateファイル(tfstate)を管理するものです。
個人や小規模チームで利用する場合は無料みたいです。
GitHubのTerraform Stateファイル版のようなものです。

利用までの過程をStep by Stepで見ていきたいと思います。

サインアップ

最初にサインアップは必要です。

ユーザー名、Email、パスワードを入力しアカウント作成します。
作成後は登録したEmail宛てに確認メールが送信されるので確認します。

アカウント作成後ログインします。
https://app.terraform.io
次にOrganaizationを作成します。

名前は既に利用されている場合は作成できないので注意が必要です。
Emailのアドレスを入力します。

以上でアカウントの準備は完了です。

Terraform Cloud と連携

以下はAWSにt2.microでubuntu18.04を立ち上げるサンプルコードです。

main.tf
メインになるtfファイル

terraform.tfvars
アクセスキーとシークレットキー

remote-state.tf
作成したOrganaizationとWorkspacesを指定します。
Workspacesはない場合、新規作成されます。
WorkspacesはGitHubでいうレポジトリのようなものです。

.terraformrc
接続するためのtokenを指定します。
https://www.terraform.io/docs/commands/cli-config.html
ホームディレクトリにファイルを配置

上記のTokenはメニューからWorkspacesに移動し、右上からUser Settingsを開きます。

メニューからTokensを開き、説明分を入力、作成します。

作成されてTokenを上記のファイル内で指定います。

以上で連携の準備は完了です。

次にinit(初期化)します。
注意:すでにローカルにStateファイルがある場合は0バイトになり中身が空っぽになります。

init後にWorkspacesに指定したexampleが作成されます。

次にapplyします。

applyが完了すると通常、フォルダ内に作成されるstateファイルがTerraform Cloud上にアップロードされます。

以上で動作の確認が行えました。

差分を確認

Terraform Cloud はGitHubに似たものなんで差分も表示してくれます。
試しにインスタンスサイズをt2.microからt2.smallに変更してみます。

main.tf

applyします。

apply後にTerraform Cloudのコンソールから確認します。

差分を表示してくれます。

ちなみに

ちなみにApply最中はロックされます。

まとめ

Terraform CloudというStateをクラウド上に保存できるようになりました。これで、個人やチームでのTerraformの運用が楽になると思います。
また、GitHubライクな部分も導入しやすい感じがします。

Related post

  1. Azure

    リリース前にリソースはLockしようぜ。間違って削除したらおバカです。

    はじめにくどうです。例えば、Azureで仮想マシンを使って…

  2. Azure

    Runbook ギャラリーの Start Azure V2 VMs / Stop Azure V2 …

    メモ:Start Azure V2 VMs / Stop Azure …

  3. Azure

    AKS ( Kubernetes ) のPod からログをfluentd を使って収集してelast…

    はじめにくどうです。今回はKubernetesでのログ…

  4. Azure

    リソースのLockは大事です。ポータルからも設定できます。

    はじめにくどうです。以前、リソースのロックの話を書きました…

  5. 運用

    SCOMでWebコンソールのタイムアウトを無効にする方法

    くどうです。メモです。SCOMでWebコンソールのタイムアウトを…

  6. Azure

    他社さんの、社内勉強会に行ってきた。

    はじめにくどうです。9/8にNTTPCコミュニケーションズさんの…

  1. Kubernetes

    kubernetesに展開するfluentd-daemonset-elastic…
  2. AWS

    Deep Security as a Service (DSaaS)でProxy…
  3. Azure

    Azure PowerShell 1.0 Preview を導入してみよう。ちょ…
  4. 未分類

    Project Looking Glass 1.0のリリース(前編)
  5. Azure

    App Service (Web Apps) でPerl CGIを動作させる。立…
PAGE TOP