記事の目的
- Terraformについての学習備忘録用
- TerraformでAWS環境構築までのフローの振り返り用
記事の概要
- Terraformとは?
- Terraformを使用する前提条件
- Terraformインストール(tfenv)
- Terraform基本ファイル
- Terraform基本コマンド
こちらでTerraformでAWS環境構築(VPCとサブネット)までについてもまとめているので、よければ見てみて下さい
Terraformとは?
HashiCorpが開発しているインフラ構成をコードを使って管理するためのツールです。
HCLという記法でコードを記述し、インフラの状態を管理することができます。
Terraformは IaC(Infrastructure as Code) を実現するツールのこと
サーバーやネットワークといったインフラの構成をプログラムのコードで書いて、書いたコードを元にインフラを構築することができます。
わかりやすくいうとコードで構築するものを書いてあげるとコマンド叩くだけで、AWSなどの環境をすぐに構築できる便利なものになるかと思います。
また、コードで管理しているので前作った環境なんだっけ?みたいにならずコードを見れば構築した内容を確認することができ、コマンドを叩けば同じものを構築できる素晴らしいものですかね!
つまり1回作成しちゃえば同じ環境をいくらでも短時間で作れちゃいますね
Terraformを使用する前提条件
TerraformでAWS環境を構築するには最低でも以下の前提条件があります
- Terraform CLIをインストールしていること
- AWS CLIをインストールしていること
- AWS accountと関連する認証情報でリソースが作成できる状態にあること
Terraform基本インストール
tfenv
をインストール
tfenv
をインストールしてからtfenv
を使用してTerraformをインストールすることでバージョンをすぐに切り替えられるので
まずはtfenv
を下記コマンドでインストールします
brew install tfenv
インストール可能なバージョン一覧を確認
tfenv list-remote
私の場合下記のように表示されました(どんどん更新されるので人によって異なります)
1.5.0-alpha20230405
1.4.6
1.4.5
1.4.4
1.4.3
省略〜〜〜〜〜〜〜〜〜
Terraformをインストール
最新と一個前をインストール
tfenv install 1.4.6
tfenv install 1.4.5
インストールされたバージョンのリスト確認
tfenv list
今回は下記コマンドで最新の方を使用していきます
tfenv use 1.4.6
Terraform基本ファイル
.tf
ファイル
AWSプロバイダー情報(IAM情報・リージョンなど)を記載する
.tfvars
ファイル
環境ごとに異なる値を記載する
.tfsatate
ファイル
Terraformで管理しているインフラソースをすべて記載されているJSONファイルで
AWSだとS3のバケット内で管理されている
JSON形式で記載されているが拡張子は.tfsatate
になりterraform.tfsatate
のような感じ
Terraform基本コマンド
terraform init
初めに必ず実行する必要があります。
ワークスペースの初期化やプラグインがダウンロードされる
terraform plan
変更内容が表示されます。
コードを作成、変更した場合は、terraform planすることで実行内容に問題ないかを確認します。
terraform apply
変更を実行します。ここで完了すると、実際にAWSにリソースが構築されます。
変更内容が表示されるので、問題なければyesを入力します。
terraform destroy
リソースを破棄します。
破棄対象のリソースが表示されるので、問題なければyesを入力します。
terraform fmt
インデントなどのスタイルをフォーマットするためのコマンドです。
インデントなどのずれを直してくれるので、実行しとくと良い
terraform validate
構文をチェックするためのコマンドです。
terraform apply
でもエラーは表示されるので、念の為実行する感覚で良さそう