-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
さらに詳しく知るにはこちら
Terraform(テラフォーム)ラックは2019年8月にHashiCorp社との協業を開始しました。パブリッククラウドにおけるインフラ構築、運用管理自動化を目的とした同社製品の提案、販売に注力する中で、Infrastructure as Code(IaC)を実現するTerraformは多くのお問い合わせを頂いています。導入実績も増えてきました。
さらに詳しく知るにはこちら
Terraform(テラフォーム)お客様にTerraformをご提案する際、必ずと言っていいほど聞かれるのがTerraformとAnsibleの違いについてです。似ているように見えるツールなので、何が違うのか気になるところですよね。
「当社の環境にはTerraformとAnsible、どちらを採用すれば良いだろうか」
「既にAnsibleは導入しているので、Terraformは不要だろうか」
ラックではいつも、このようにお答えしています。
TerraformとAnsibleでは得意な領域が違います。
両製品は競合ではなく、組み合わせて使用することで効果が大きくなります!
今回はTerraformとAnsibleについて、両製品の違い、得意とする領域についてご紹介します。導入を検討する際のご参考になれば幸いです。
改めてTerraform、Ansibleとは
Terraform
AWSやAzure、GCPなどさまざまなクラウドインフラのプロビジョニング情報を特定のインフラベンダに依存しない形式でコードとして記述し適用できる、いわゆるIaCを実現する、HashiCorp社によって開発されたソフトウェアです。
Ansible
サーバ構築時に、予め準備した設定ファイルに従って自動でソフトウェアインストール、設定を実行する、RedHat社によって開発された構成管理ツールです。 Ansibleでは各クラウドプロバイダーのモジュールを提供しており、ミドルウェアと同様にクラウドの構成管理も行うことができます。
こう書くと両製品は、コードや設定ファイルの記述に基づき構成管理を行うという点でほぼ同じのように見えます。実際IaCを実現するツールとしては両製品ともデファクトスタンダードとなっています。
ですが、両製品は得意とする領域が異なります。両製品の違いについて概略を以下の表にまとめましたので、ご覧ください。
項目 | Terraform | Ansible |
---|---|---|
開発元 | HashiCorp | RedHat |
クラウドプロバイダ対応数 | 300以上 | 41※1 |
インフラ層の構成管理 | 優れている | 対応可能 |
OS・ミドルウェア層の構成管理 | 対応可能 | 優れている |
エージェントの要否 | 不要 | 不要※2 |
GUI | 有 | 有 |
オープンソース版 | 有 | 有 |
メーカーサポート付きの商用版 | 有 | 有 |
SaaS提供 | 有 | 有 |
項目 | Terraform | Ansible |
---|---|---|
開発元 | HashiCorp | RedHat |
クラウドプロバイダ対応数 | 300以上 | 41※1 |
インフラ層の 構成管理 |
優れている | 対応可能 |
OS・ミドルウェア層の構成管理 | 対応可能 | 優れている |
エージェントの 要否 |
不要 | 不要※2 |
GUI | 有 | 有 |
オープンソース版 | 有 | 有 |
メーカーサポート付きの商用版 | 有 | 有 |
SaaS提供 | 有 | 有 |
※1 以下資料を参照(2020年12月4日現在)
Cloud modules -- Ansible Documentation
※2 OS・ミドルウェア層の構成管理にはPythonの実行環境が必要
特に大きな違いになるのが、赤い線で囲っている「インフラ層の構成管理」と「OS・ミドルウェア層の構成管理」です。これらの機能が、両製品を組み合わせて使い分けるポイントです。具体的にどのような点が異なるのか説明していきます。
IaCモデルの違い
IaCツールとして、Terraformは宣言モデル、Ansibleは命令実行モデルを採用しています。宣言モデルはインフラのあるべき状態をコードで表現します。対して、命令実行モデルはリソースを作成する手順をコードで表現します。では、実際にクラウドをIaCで管理する場合に、宣言モデルと命令実行モデルでどのような違いがでてくるのでしょうか?
例えば、AWSにEC2インスタンスを5台作成する場合を考えてみましょう。Ansibleの命令実行モデルでは下記命令を複数回実行してしまうと、5台("count"の数)×命令実行回数分のインスタンスを立ち上げてしまいます。※3
一方でTerraformではインフラの構成を宣言的に定義しており、下記コードを複数回実行したとしても、宣言したインスタンス数("count"の数)である5台のみを立ち上げます。※3 実際コードを書く場合には、"exact_count"オプションを記述し、リソースのタグを指定することで、決めた数以上のインスタンの作成を防止します。
すなわちTerraformではコードと環境の一致について特別な配慮を行う必要がありません。
この点がインフラ層の構成管理においてはTerraformを使うべき理由となります。
Ansibleの場合
Terraformの場合
リソースの依存関係
Ansibleはリソースの作成順序をユーザが定義します。その順序を決める際にはリソースの依存関係を考慮する必要があります。例えばAWSにVPC及びサブネットを作成する場合は、サブネットより先にVPCを作成する必要があります。Ansibleでは、設定ファイルに記述した順序でリソースを作成するため、VPCより先にサブネットの記述をしてしまうと、まだ存在しないVPCリソースを参照しようとしてエラーになります。
一方Terraformは、リソースの依存関係を自動で解決してくれるので、作業順序をコードで定義する必要がありません。これによりマルチクラウドにまたがる数十のリソースを記述する場合であっても、開発者は構成定義のみに集中することができます。この点もインフラ層の構成管理においてはTerraformを使うべき理由となります。
Ansibleの場合
Terraformの場合
ミドルウェアの構成管理
Terraformでミドルウェア層の構築を行う場合はシェルで定義するのに対して、Ansibleには豊富なミドルウェアモジュールが用意されています。そのため、複雑なミドルウェア層の構成管理はAnsibleで行うことをお勧めしています。
Ansibleの場合
Terraformの場合
さいごに
TerraformとAnsibleにはそれぞれ得意なプロビジョニングレイヤがあり、対象とするリソースのライフサイクル(作成・更新の頻度など)も異なります。そこで例えばGithub Actions等のCIツールを利用することで、Terraformがインフラ層を構築した後に、AnsibleでOS・ミドルウェア層を構築するといった自動化も可能です。このように双方を効果的に使い分けることでIaCの効果を最大化することが出来ます。是非みなさんも試してみてください。
動画「正しいIaCツールの選び方Terraform vs Ansible vs Cloud Formation」
より詳しく知るにはこちら
Terraformは、インフラ構築においてコードによる設定変更作業や履歴管理ができ、さらにマルチクラウドやハイブリッドクラウドの作業の自動化も管理画面から容易に行うことができます。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR