「IaC(Infrastructure as Code)」を実現するソフトウェア製品を比較して紹介する本連載。今回はChef、Puppet、Pulumiを紹介します。ぜひ選ぶ際の参考にしてみてください。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
クラウドネイティブ実践に欠かせない要素として、システム構築、運用を自動化する「IaC(Infrastructure as Code)」があります。IaC自体は数年前から注目を集め、その意義やメリットに対する正しい理解もかなり浸透しましたが、ビジネス目的達成のためには「自社独自の狙いや事情」に即したツール選定が1つのカギとなります。
しかし、ご存じの通り、IaCを実現するソフトウェアは多くの種類が存在し、それぞれに担当する分野が異なったり、記述するコードの形式が異なったりします。またソフトウェア間で連携する機能もあるなど、それぞれ特徴を持っています。
製品名 | ベンダー/コミュニティー | 特徴 | |
---|---|---|---|
1 | Ansible | レッドハット | サーバを立ち上げる際に、あらかじめ用意した設定ファイルに基づいて、ソフトウェアのインストールや設定を自動で実行できるソフトウェア。「Playbook」と呼ばれる設定ファイルはYAML形式で記述し比較的学習が容易であることと、管理対象サーバに管理用のソフトウェアをインストールしないエージェントレスな構成が特徴。 |
2 | Terraform | HashiCorp | 設定ファイルに基づいてサーバなどのインフラを管理できるソフトウェア。各種パブリッククラウドや仮想化環境に対応している。インフラの構成管理に特化しており、サーバ内部の設定などは別のIaCツールを用いることが一般的。 |
3 | Chef | Chef Software Inc. | Ansibleと同様に、サーバを立ち上げる際に、あらかじめ用意した設定ファイルに基づいて、ソフトウェアのインストールや設定を自動で実行できるソフトウェア。「レシピ」と呼ばれる設定ファイルはRubyをベースとしたDSL(ドメイン固有言語)で記述する。Chef Serverを用いた大規模管理にも対応している。 |
4 | Puppet | Puppet, Inc. | AnsibleやChefと同様に、サーバを立ち上げる際に、あらかじめ用意した設定ファイルに基づいて、ソフトウェアのインストールや設定を自動で実行できるソフトウェア。「マニフェスト」と呼ばれる設定ファイルはRubyライクの独自DSLで記述する。スタンドアロン型とクライアントサーバ型の2種類の形態が存在する。 |
5 | Pulumi | PulumiCorp | Terraformと同様に設定ファイルに基づいてサーバなどのインフラを管理できるソフトウェア。各種パブリッククラウドや仮想化環境に対応している。インフラの構成管理に特化しており、サーバ内部の設定などは別のIaCツールを用いることが一般的。設定ファイルはJavaScript、TypeScript、Python、Goなど、複数の言語から選択して利用できる。 |
6 | Jenkins | Jenkins CI | ソフトウェア開発のビルド、テストおよびデプロイに関連する部分の自動化を支援し、継続的インテグレーション(CI)と継続的デリバリー(CD)を促進するソフトウェア。他のソフトウェアと異なり、インフラの管理ではなくソフトウェア開発を支援するソフトウェア。 |
7 | Packer | HashiCorp | マシンイメージの作成を自動化するツール。Amazon Web Services(AWS)なら「AMI」、Microsoft Azureなら「arm」を作成する。設定ファイルはjsonで記述する。AnsibleやChefなどと連携できる。 |
それぞれのソフトウェアをカテゴリーに分けたものが以下の表となります。
プロビジョニング | Terraform/Pulumi |
---|---|
コンフィギュレーション | Ansible/Chef/Puppet |
イメージ作成 | Packer |
継続的インテグレーション | Jenkins |
前回は、注目のIaCソフトウェア7製品の内、AnsibleとTerraformを紹介しました。
今回は上記ソフトウェアのうち、Chef、Puppet、Pulumiを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.