基本情報
概要
Terraform(テラフォーム)とは、インフラストラクチャ用プロビジョニングツールです。コードからインフラの構築/変更/バージョン管理を行えます。
基本説明
Terraformは、インフラ状態をコードで管理するためのコマンドラインツールです。クラウド用仮想マシン(リソース)を管理します。管理台数が増えるほど効果を発揮します。
構成管理ツール「Chef」「Puppet」などと組み合わせて利用できます。
経緯
Terraformは、「Vagrant」「Packer」なども開発するHashicorp社によるオープンソースプロダクトです。
主な特徴
インフラのコード化(Infrastructure as Code)
Terraformは、インフラを安全かつ効率的に管理するために、高レベル設定構文コードによってインフラの状態を定義します。
インフラ状態の管理効率化を図れます。
・バージョン管理
・コード比較
・共有
・再利用
・設定適用前チェック など
設定ファイル
設定ファイルには、「どこの環境なのか」「どのような仮想サーバスペックなのか」などのインフラ状態をコードとして記述しておきます。
使用言語
設定ファイル記述用として、JSON互換「HCL(HashiCorp Configuration Language)」言語を使用します。
管理対象インフラ
Terraformが管理対象とする「インフラ」には、ローレベルからハイレベルなものまで含まれます。
・仮想マシン(インスタンス)
・ストレージ
・ネットワーク(CDN)
・ロードバランサー
・DNS
・データベース
・SaaS機能 など
実行計画
Terraformは計画ステップで、どのように処理が行われるかを定義した「実行計画」が作成されます。
「実行計画」を確認することにより、想定外の挙動を防止できます。
リソースグラフ(並列処理)
Terraformはコード定義が与えられると、リソース間関係を示すグラフを作成します。「依存関係」や「影響範囲算出」を把握できます。
「依存関係」の把握により、依存関係がないリソースに対して並列処理を実行できます。
変更適用の自動化
人間による最低限のコード指示で、Terraformがインフラに対して複雑な変更を適用します。
どのように変更を行なうかについては、Terraformが自動的に決定します。
プロビジョニング
複数プラットフォームに対して、統一的な手法でプロビジョニングが行えます。
対応プラットフォーム
「AWS」「Azure」「Google Cloud Platform」などを含めて、多くのプラットフォームに対応しています。
→Terraform →PROVIDERS
プラグイン機構で、未対応プラットフォームへの対応も行えます。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
ライセンス情報
Terraformのライセンスは「Mozilla Public License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
参考元サイト
・Terraform
・Qiita →Terraform と CI で実現するインフラのコード化と構築の自動化
・Qiita →Terraform入門 日本語訳
・Think IT →インフラの構成管理を自動化するTerraform入門
・さくらのナレッジ →Terraform v0.7が誘う「Infrastructure as Code」の世界
・さくらのナレッジ →Terraform for さくらのクラウド スタートガイド (第一回) ~インストールから基本操作 ~
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。