概要
IaC(Infrastructure as Code)は今やITインフラを効率的に運用・保守する上で欠かせない考え方になっている。ここではIaC(Infrastructure as Code)を実現するためのIaCツールを比較してみる。
IaCツール一覧
ツール名 | 対応リソース | コード定義 | 特徴 |
---|---|---|---|
Terraform | ・クラウドプロバイダー(AWS,Azure,GCP,OracleCloud,Tencent Cloud,Alibaba Cloud,etc...) ・オンプレ用ソフトウェア(VMWare,Nutanix,etc...) ・ネットワーク機器(CISCO,F5,etc...) ・SaaS(GitHub,NewRelic,etc...) |
HCL | ・複数のクラウド プラットフォーム対応 ・各クラウドサービス が提供しているwebAPIで 操作できる範囲のみ が管理可能 |
Pulumi | ・クラウドプロバイダー(AWS,Azure,GCP,OracleCloud,Tencent Cloud,Alibaba Cloud,etc...) | TypeScript JavaScript Python Go .NET Java YAML |
・複数のクラウド プラットフォーム対応 ・各クラウドサービス が提供しているwebAPIで 操作できる範囲のみ が管理可能 |
AWS Cloud Formation | AWSのリソースのみ | YAML | |
Azure ARMテンプレート | Azureのリソースのみ | JSON | |
Deployment Manager | GCPのリソースのみ | YAML JINJA2 Python |
|
Serverless Framework | ・AWS ・Azure ・GCP ・TencentCloud ・AlibabaCloud |
YAML | ・複数のクラウドプラットフォーム対応 ・サーバレスと呼ばれるサービス(Faasなど)のみ対応 |
SAM | AWS | YAML | ・AWSのみ対応 ・サーバレス と呼ばれるサービス(Faasなど)のみ対応 |
Ansible | ・サーバー(Linux、Windowsなど)の内部のソフトウェア ・クラウドプロバイダー(AWS,Azure,GCP,etc...)の一部リソース |
YAML | オブジェクトストレージやIaaSなど マネージドサービスも一部管理可能 |
Chef | サーバー(Linux、Windowsなど) の内部のソフトウェア |
Ruby-based DSL | |
Puppet | サーバー(Linux、Windowsなど) の内部のソフトウェア |
Ruby-based DSL | |
Packer | イメージファイル | JSON HCL |
プラットフォーム に依存しない |