TerraformとAnsibleの違いを調べてみた

Terraform
Nishipy

TerraformというOSSを最近知りました。
Ansibleとの違いがわからず調査したのですが、
英語の記事しか見つからず、地味に苦労したのでまとめます。

1. Terraformとは?

TerraformというOSSがあることを今更知りました。
英語版WikipediaによるTerraformの説明は、以下の通りです。

Terraform is an infrastructure as code software by HashiCorp. It allows users to define a datacenter infrastructure in a high-level configuration language, …[Wikipedia]

 

日本語版Wikiには、まだ載っていないようです。雰囲気で訳すと、多分以下のようになります。

  • Terraformは、Hashi Corp製のInfrastructure as Codeソフトウェアである
  • ユーザーは、高度な階層的言語によりデータセンターを定義できる

Infrastructure as Codeのツールと聞くと、Ansibleを想像していましました。
次は、両者の違いに注目します。

301 Moved Permanently

2. TerraformとAnsibleの関係


本章は、↓の記事を参考にしています。日本語で調べても、良い記事が出てきませんでした。
Ansible vs. Terraform: Fight!

2.1. TerraformはOrchestrationツールである

TerraformはOrchestrationツールです。
つまり、サーバーを”楽器”に見立てると、Terraformはそれらの指揮者です。
新しい”楽器”を加えたり、各々の個数を管理したり、調子の悪い”楽器”を取り替えたりといった
全体を見渡した仕事をしてくれます。

一方、Ansibleは自動化ツールです。
個々の楽器のお手入れをするのが得意分野です。
指揮ができないこともないですが、もっと得意な人にやってもらった方がよいです。

2.2. TerraformはDeclarativeである

“Declarative”という単語の意味は、「宣言的」です。
これは、プログラミングでよく耳にする言葉です。
アウトプットに性質に着目するのが、「宣言的」ということみたいです。
つまり、コードを実行した後の状態に着目するTerraformだと言えます。

一方のAnsibleは、”Procedual”です。
これは、”Procedual”は「手続き型」という意味です。
コードを実行中に行われる処理について、着目しています。

3. Terraformを調べてみた感想

だいたいのことは、ふんわりとわかった気になりました。
Ansibleと連携できるみたいなので、使ってみたいですね。

以上

コメント

  1. イージー より:

    楽器の例えがとても分かりやすかったです。