TerraformとAnsibleの使い分けについて

投稿者: | 2019年3月22日

これまでAWSを構成する際には手動でサービスを設定してきましたが、規模が大きくなり、それが難しくなってきたので、Infrastructure as Codeということで、サービスの構成をコードとして管理することにしました。

これまでに、ansibleを活用して管理したことがあったので、今回もansible一本で実現しようと考えていましたが、terraformも気になっていたので、それも調べた上でどちらを使うかを考えようと思いました。

 

結論

調べたところ、terraformとansibleは競合しあうツールではなく、互いに補完し合う関係にあるそうで、結果的にはどちらも利用することにしました。具体的には、AWSのサービスの設定などはterraformを利用して設定し、EC2インスタンス上にインストールするソフトウェアなどはansibleで記述するようにしました。

さらに、ansibleには、terraformを実行する記述ができるため、ansibleのコマンドを実行することで、全ての作業が完了するようにしました。

以降は調べた結果になります。それぞれの詳しい使い方については、後ほど、追記していこうと思います。

 

terraformについて

まず、terraformとは、オーケストレーションツールだそうです。そのため、全体のアーキテクチャを定義する機能に注力されており、例えば、最近流行りのサーバレスアーキテクチャを定義することに優れています。

そのため、AWSのPolicyの作成、S3バケットの作成、lambdaの作成などをterraformで定義しました。

ansibleについて

次に、ansibleとは、構成管理ツールだそうです。そのため、EC2など仮想マシンのOS上にインストールする手順を定義することに優れています。

そのため、EC2インスタンスにnginxのインストールとその設定を定義しました。

参考資料

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください