なむなむ

@namb_nam による恥晒し

Terraformって何

Terraformってなんなのか、調べた。

今回のゴールは、「Terraformで管理する」の意味がだいたいわかることとする。
ざっくりめで。

Terraformとは

  • Infrastructure as Code(IaC)のためのツール
  • インフラ構成(管理)ツール
  • オープンソース
  • Go言語で開発されている

Infrastructure as Codeとは

  • Infrastructure
    • サーバー、ネットワーク機器
    • IaCの場合、クラウドなどの環境(の構成)を指すことが多い
  • Code
    • この場合のコード=規定、符号のような意味に近い
      • 例)コーディング=プログラミング言語で記述すること
      • "コードとしての"=コードとして規定された(プログラムされた)という意味
      • 規定された書式でまとまった手順書という意味もある

つまり IaC=インフラ構成をコードで管理すること

"as Code"ではないInfrastrucure管理
  • CLIGUIを使用して手動で行う
  • 手順書で標準化することがほとんど
Infrastructure as Codeのメリット

≒コード化による自動化のメリット

  • 再現が容易
  • 作成〜破棄までの管理が容易
  • (コードなので)バージョン管理が容易
IaC関連で他に気になること

今回は省略するが、おいおい調べる。

  • IaCのためのツールにはTerraform以外どんなのがあるのか
  • IaCのデメリット

Terraformの特徴

インフラ構成ツールの中でも

インフラ構成を実現する方法のうち、"宣言型"を採用している
作成手順を意識せず、定義だけを記載すればいい
なので、定義ファイルのバージョン管理=インフラ構成の管理になる

できること

インフラの構築・変更・破棄

管理する対象

いわゆるクラウドサービスだけでも、
AWS, Azure, GCP, Oracle, Alibabaなど多数

作業の流れ
  1. (環境を構築する)
  2. 定義ファイルを記載
  3. コマンドを実行する
  4. (Terraform側で)構成ファイルで宣言した状態を取得
  5. (Terraform側で)変更内容を宛先のプロバイダーにプッシュ
  6. 宣言された構成のサーバーなどがGCPAWSに立ち上がる

Terraformの定義ファイル

どうやら「.tf」という拡張子のファイルらしい

既存インフラリソースをTerraformで管理する

それができるコマンドが存在している
既存リソースの構成を読み取り、定義ファイルを作成する

まとめ

「Terraformで管理する」とは
Terraform経由でクラウドなどのインフラを構築・修正・破棄すること

参考文献

5分で分かるTerraform(Infrastructure as Code) | セキュリティ対策のラック

Terraform 入門 - Qiita

IaC から始まる幸せなエンジニアライフ - Qiita

IaC関連ツールまとめ - Qiita

10分で理解するTerraform - Qiita

https://registry.terraform.io/browse/providers