AWS Systems Manager と Chef： 有償ライセンス必要なのか？

https://www.chef-sec.com/chef_%e6%9c%89%e5%84%9f%e5%8c%96/

上記記事で説明されている通り、今まで完全に無料で使えていたChefは、Chef v15以降はProgress社からライセンスを取得しなくてはいけなくなりました。

本記事では**AWS経由でChefを使う場合**にもChefのライセンスを購入する必要があるのかについてまとめます。

## AWS Systems Managerを使う場合

AWS公式（[リンク](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-state-manager-chef.html)）の回答は次の通りです。

![capture 2023-08-31 12.37.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352042/db3ed3bc-1f99-a847-2c65-541dd3f43eea.png)

つまり、**Chefライセンスの購入が必要**ということです。
Chef社を買収した米国のProgress社からChefライセンスを事前に購入/取得する必要があります。

AWSはChefライセンス条項に対して責任を負うことはなく、AWS利用**ユーザーが自己責任でChefのライセンスを取得**する必要があります。

## 他のサービス経由でChefを使う場合

基本的にAWSを含むすべてのサードパーティ経由でChefを利用する場合も、**Chefライセンスの購入が必要**になります。

この点を今正しく認識する必要性についてまとめます。

## なぜ"今"、Chefライセンスについて考えるのか？

2019年にChefは有償化されました。4年も前のことになります。

企業によっては、今まで通り無料でChefを使い続けているかもしれません。そこにはなんの問題もありません。なぜならChef v14までは従来通りライセンスを取得せずに無償で使い続ける事ができるからです。

しかし、LinuxやWindowsなどのサーバーOSのバージョンが上がるにつれて、**互換性の問題**でChef v14が動作しなくなる環境がでてきます。自然な流れとしてChefのバージョンもv15+に上げていく必要があります。遅かれ早かれChefを使うすべての企業がいずれはChef v15+を使うようになります。

この時に、真剣に考慮すべきライセンスの問題が発生します。

---

Chef v14の時と同じ感覚で、Chef v15を使ってしまうと、**ライセンス違反**を犯してしまうことになるのです。

_ーーどういうことでしょうか。_

故意にライセンス違反を犯す、ということではなく、社内のインフラエンジニアが何も気にせずに、今まで通りにChefを使い続けてしまう危険性があります。Chef v14 までは何の問題もありませんでした。無料で使う事ができていたからです。しかしChef v15以降を使う場合、**事前に**Progress 社からライセンスを取得する必要があります。Chefのバージョンを気にせずにChefを利用し続けている企業は、**重大なリスク**がそこに潜んでいることを認識しておく必要があります。

_ーー「リスクが潜んでいる」、とは？_

Chefのライセンス販売を行っているのは米国のProgress社です。米国の企業であり、ライセンス規約違反に対して強いアクションを取る可能性があります。**訴訟問題に発展するリスク**があります。

_ーーリスクが放置されているのは、なぜか。_

一つには、**無断でChefを使い続けることが技術的に可能**であることが挙げられます。つまり、ライセンスの取得をせずにChefを利用し続けてしまい、組織ぐるみで**知らぬ間にライセンス規約違反**を犯してしまう可能性があるのです。

そのためにChefのライセンスについて正しく理解する必要があるのです。

## 無断で使い続けることができてしまうのか？

できてしまいます。

十分に理解するために、有償化がどのようにして行われているかを知る必要があります。

次のようなターミナル出力をご覧になった事があるでしょうか。
Chef v14では出力されず、Chef v15以降から出力されるようになったものです。初回実行時だけ出力されるものです。

```
mask@MBP:~$ chef install                                            
+---------------------------------------------+
            Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
  * Chef Workstation
  * Chef Infra Client
  * Chef InSpec

Do you accept the 3 product licenses (yes/no)?
```

現場で働くインフラエンジニアの方々は、見たことがある、とお答えになると思います。
この出力に'yes'と入力することでChef v15+を使うことができるようになります。
それは以下の Agreement に同意したことを意味します。

https://www.chef.io/end-user-license-agreement/

この Agreement には次の文言が含まれています。

>"IF...YOU INTEND TO USE THE PRODUCT FOR COMMERCIAL PURPOSES, YOU MUST CONTACT PROGRESS DIRECTLY TO OBTAIN A COMMERCIAL LICENSE FOR THE PRODUCT."

つまり、商用目的でChefを利用する場合、Progress社から商用ライセンスの購入を義務付けており、そうした上でChefを使うことに同意することをすべてのChef利用者に課しています。

既に会社としてライセンスを取得済であれば問題にはなりません。
しかし、万が一、エンジニアが勝手に Agreement に同意していることを会社が把握しておらず、ライセンスを取得していない状態でChefを使い続けてしまうなら、無断でソフトウェアを利用していることになり、**組織ぐるみのライセンス規約違反**を犯してしまうことになってしまうのです。

さらに深刻なこととして、当該Agreementは一度、'yes'と入力してしまうと便宜上2度と出力される事がないために、ライセンス違反に企業が気づくことすらない、ないしは発見が遅れてしまう危険性もあるのです。

## どの機能が無料で使えなくなるのか？

基本的に**すべてのChef機能**が有償になります。
レシピやCookbookをローカルで実行するChef SoloやChef Workstationの利用を含むすべてのChef機能においてライセンスの取得が必要になります。

OpsWorksやState Manager などのAWSが提供するChef関連サービスにおいてもライセンスの取得が必要になります。

## ライセンスに関して問い合わせる

社内で利用されているChefのバージョンを把握しChefライセンスについて**国内代理店に問い合わせる事**ができます。

現状、Chefの技術サポート・コンサルやライセンス販売を国内で行っているのは、以下の1社のみのようです。

www.chef-sec.com