Terraformって何
Terraformってなんなのか、調べた。
今回のゴールは、「Terraformで管理する」の意味がだいたいわかることとする。
ざっくりめで。
Terraformとは
- Infrastructure as Code(IaC)のためのツール
- インフラ構成(管理)ツール
- オープンソース
- Go言語で開発されている
Infrastructure as Codeとは
- Infrastructure
- サーバー、ネットワーク機器
- IaCの場合、クラウドなどの環境(の構成)を指すことが多い
- Code
- この場合のコード=規定、符号のような意味に近い
- 例)コーディング=プログラミング言語で記述すること
- "コードとしての"=コードとして規定された(プログラムされた)という意味
- 規定された書式でまとまった手順書という意味もある
- この場合のコード=規定、符号のような意味に近い
つまり IaC=インフラ構成をコードで管理すること
"as Code"ではないInfrastrucure管理
Infrastructure as Codeのメリット
≒コード化による自動化のメリット
- 再現が容易
- 作成〜破棄までの管理が容易
- (コードなので)バージョン管理が容易
IaC関連で他に気になること
今回は省略するが、おいおい調べる。
- IaCのためのツールにはTerraform以外どんなのがあるのか
- IaCのデメリット
Terraformの特徴
インフラ構成ツールの中でも
インフラ構成を実現する方法のうち、"宣言型"を採用している
作成手順を意識せず、定義だけを記載すればいい
なので、定義ファイルのバージョン管理=インフラ構成の管理になる
できること
インフラの構築・変更・破棄
管理する対象
いわゆるクラウドサービスだけでも、
AWS, Azure, GCP, Oracle, Alibabaなど多数
作業の流れ
- (環境を構築する)
- 定義ファイルを記載
- コマンドを実行する
- (Terraform側で)構成ファイルで宣言した状態を取得
- (Terraform側で)変更内容を宛先のプロバイダーにプッシュ
- 宣言された構成のサーバーなどがGCPやAWSに立ち上がる
Terraformの定義ファイル
どうやら「.tf」という拡張子のファイルらしい
既存インフラリソースをTerraformで管理する
それができるコマンドが存在している
既存リソースの構成を読み取り、定義ファイルを作成する
まとめ
「Terraformで管理する」とは
Terraform経由でクラウドなどのインフラを構築・修正・破棄すること