TL

Product Profile

Terraform

HashiCorp / IaC(プロビジョニング)

インフラをコードで宣言的に構築する IaC ツール多数のクラウド/サービスに対応し、状態管理で差分を適用する

TL;DR要点だけ先に
  • 1.インフラをコードで宣言的に構築する IaC ツール。
  • 2.巨大なプロバイダ網でマルチクラウドに対応。plan で事前確認。
  • 3.クラウド基盤構築の定番。設定中心で、手続き処理は Ansible 寄り。

Specifications

基本情報

Introducing

Terraform のロゴ
Terraformインフラをコードで宣言的に構築する IaC ツール。多数のクラウド/サービスに対応し、状態管理で差分を適用する。
種別
IaCプロビジョニング)
提供元
HashiCorp
ライセンス
BSL旧 MPL)
登場
2014年
最大の強み
宣言的マルチクラウド対応巨大なプロバイダ網
代表的な用途
クラウドインフラの構築マルチクラウド/サービス / 再現可能な環境

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. 宣言的・マルチクラウド対応
  2. 巨大なプロバイダ網
  3. plan で変更を事前確認できる

Trade-offs

考慮すべき点

  1. 状態(state)管理に注意が要る
  2. ライセンス変更(BSL)の議論
  3. 手続き的な処理は不得手

Deep Dive

もっと詳しく

どんなツールか

Terraform は、インフラを設定ファイルで定義・管理する IaC(Infrastructure as Code)の定番ツールです。サーバやネットワーク、データベースといったクラウド上のリソースを、コードとして記述して構築できます。

「結局なに?」を一言でいえば、インフラ構成をコードで宣言し、その通りに作る仕組みです。手作業でコンソールを操作する代わりに、構成をファイルに残し、再現・変更管理ができます。

特徴・仕組み

リソースは HCL という専用言語で宣言的に書きます。「何を作るか」を記述すると、Terraform が現状との差分を計算し、必要な作成・変更・削除を実行します。

resource "aws_instance" "web" {
  ami           = "ami-123456"
  instance_type = "t3.micro"
}

管理対象の現状は「state(ステート)」というファイルで把握します。複数のクラウドやサービスに対応しており、プロバイダを切り替えて使えます。

得意・不得意

  • 宣言的な記述で、インフラの構築・変更・破棄を再現性高く扱える。
  • マルチクラウドに対応し、同じ流儀で複数の基盤を管理できる。
  • 反面、state の管理が運用の要になる。state が壊れたり実体とずれたりすると事故につながる。意図しない破壊的変更にも注意が要る。

いつ使うか(他との違い)

クラウド上のリソースそのものを作り・管理したいときに向きます。適用前に変更内容(plan)を確認できるため、影響を見てから反映できます。

サーバの中身の設定やソフト導入は Ansible のような構成管理が担当で、Terraform は「土台となるインフラの構築」に主眼を置く役割分担になります。

Implementation View

Terraformを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

クラウドインフラの構築

比較で見る軸

種別: IaC(プロビジョニング) / 提供元: HashiCorp / ライセンス: BSL(旧 MPL)

導入後に効く点

巨大なプロバイダ網

先に潰すリスク

状態(state)管理に注意が要る

数字・仕様の読み方
種別
IaC(プロビジョニング)
提供元
HashiCorp
ライセンス
BSL(旧 MPL)
登場
2014年

判断チェックリスト

  • 自社の用途が「クラウドインフラの構築 / マルチクラウド/サービス」に近いか確認する。
  • 強みである「宣言的・マルチクラウド対応」が本当に評価軸になるか確認する。
  • 注意点の「状態(state)管理に注意が要る」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

クラウドインフラの構築マルチクラウド/サービス再現可能な環境

Best Fit

こんな用途に向く

クラウドインフラの構築マルチクラウド/サービス再現可能な環境
公式サイト