はじめに
Terraformを触るにあたり、Ansibleと機能的に何が違うのか混乱していたので調べてみたメモです
それぞれの特徴
- メイン:クラウドインフラストラクチャオーケストレーション
- サブとして構成管理もできる
- サーバー自体をプロビジョニングするように設計されている
- 厳密に宣言的(コードで最終状態を指定する)
- マルチクラウドを効率的に管理する
- 新しいサーバに対してhogehogeする
- クラウドリソース(サーバ、LB、DNS)の管理に優れている
- メイン:構成管理
- サブとしてオーケストレーションタスクも実行できる
- 既存のサーバにソフトウェアをインストールして管理する
- 手続き型(最終状態を達成する方法を指定する)
- サーバーとサービスを目的の状態にする為のツール
- プロビジョニングもできる
- 既存のサーバに対してhogehogeする
- ソフトウェアの管理に優れている
- パッケージのインストール、アプリケーションのデプロイ、設定管理
まとめ
クラウドのインフラ構築(サーバ調達、ルーティング設定)はTerraformで、
それ以降の、
アプリケーション稼動環境の構築(ミドルウェアの導入、アプリデプロイ)はAnsibleにやらせると
双方の得意分野を活かせそう。
参考リンク
Ansible vs. Terraform: Fight!
Terraform vs. Ansible vs. Puppet
Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation
Ansible vs Terraform