AWS License Manager を使ったみた！

# AWS License Manager とは？

re:Invent2018 でリリースされた新しいサービスです。

```
(公式ブログより)

このサービスはライセンスルールを定義して、その中にエンタープライズ契約やライセンスされたソフトウェアの使用に適用される
その他の条件を考慮に入れるよう設定することができます。
そして、定義したルールは展開メカニズム（ゴールデンAMIまたは起動テンプレート）に関連付けることができます。
ルールが適用され起動されたEC2インスタンスは自動的に追跡されます。
また、1つまたは複数のAWSアカウントで使用状況を検出し、AWS管理コンソールからすべての使用状況を追跡することもできます。
```
[公式ブログ](https://aws.amazon.com/jp/blogs/news/new-aws-license-manager-manage-software-licenses-and-enforce-licensing-rules/)

# ざくっとやってみる
## 1. サービスへアクセス
残念ですが、現時点では英語のみの提供です。（2018/11/29）

|<img width="264" alt="スクリーンショット 2018-11-29 22.31.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/1d15e891-ec1f-4573-ac3e-440bfc7f302f.png">|
|:--:|

## 2. IAM の作成
サービスへアクセスすると「IAM permissions(one-time setup)」メッセージが表示されます。

- 「I grant AWS...」にチェックして、「Grant permissions」を選択します。

|![AWS-LM.png](https://qiita-image-store.s3.amazonaws.com/0/212868/40f1c26b-252d-ec11-ff92-5b232db47a10.png)|
|:--:|

- **AWSServiceRoleForAWSLicenseManagerRole** が作成されます。

|<img width="1229" alt="スクリーンショット 2018-11-30 21.39.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/788fc526-1c14-3bf4-db9c-367293f1f675.png">|
|:--:|


## 3. configuration を作成
AWS License Manager > License configurations へ移動して、「Create license configurations」を選択します。

|項目|内容|備考|
|:--:|:--:|:--:|
|License configuration name|ルール名|100文字以内|
|Description|説明欄|400文字以内|
|License type|ライセンス形態| vCPUs/Cores/Sockets/|
|Number of {License type}|ライセンスの閾値|最大 100,000|
|Enforce license limit| | |
|Rules| -下- | -下- |
|Rule type [Minimum {License type}]|最小値|デフォルトは1|
|Rule type [Maximum {License type}]|最大値|デフォルトは無限、10,000まで|
|Rule type [Tenancy]|テナント|Shard/Dedicated Host/Dedicated Instance|
|Tags| | |



|<img width="753" alt="スクリーンショット 2018-11-29 23.05.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/03ff5142-b6cc-9468-7e59-a1179216d219.png"><img width="753" alt="スクリーンショット 2018-11-29 23.05.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/12b4e2db-76d4-67c9-dd41-385a336bfafd.png">|
|:--|

- まずは、optional は設定せず、必須項目のみ、入力し「Submit」すると以下のように一覧に表示されます。

|<img width="1309" alt="スクリーンショット 2018-11-30 21.45.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/10325868-5c99-5cef-d3ca-e801256b625e.png">|
|:--:|

## 4. AMI の登録

configuration で作成したソフトウェアがインストールされているAMIを登録します。

- Actions > Associate AMI を選択します。

|<img width="387" alt="スクリーンショット 2018-11-30 21.46.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/fd1bef01-ba3b-5db1-f449-5e142df17ca2.png">|
|:--:|

- 管理したいライセンスがインストールされているAMIを指定して、「Associate」を選択します。

|<img width="1310" alt="スクリーンショット 2018-11-30 22.11.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/e7740b40-98e4-777b-7324-239ce0bb71e5.png">|
|:--:|

- configuration の詳細にAMIが登録されます。

|<img width="1073" alt="スクリーンショット 2018-11-30 21.57.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/a5b46bab-5659-5f04-2a2e-358b25a8cef6.png">|
|:--:|

## 5. ライセンスのインストールされたAMIからEC2 インスタンスを起動

- インスタンスが起動すると、「Licenses consumed」が、1つ増えています。

|<img width="1073" alt="スクリーンショット 2018-11-30 22.01.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/4cad417d-458a-0619-fb90-c792c3355531.png">|
|:--:|


# 検証1： ライセンスが不足した時の動作（SNS通知）
**「Enforce lincense limit」** の動作とSNS通知を使ってみます。

|<img width="822" alt="スクリーンショット 2018-11-30 22.13.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/fdb35ca0-a42f-66ee-dee7-2a9b94d8ee9d.png">|
|:--:|

## 「Enforce lincense limit」が、 "無効" でライセンス数をオーバーしたら？

さっき作成したAMIとEC2インスタンス 1台に加えて、3台追加して、4台にします。
ライセンス数が3つのため、1台分不足します。

- 追加で作成したEC2 は正常に起動します。

|<img width="691" alt="スクリーンショット 2018-11-30 22.19.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/59b72794-0b3b-a78b-ee0d-7cc883b1a731.png">|
|:--:|

- License Manager 側では
    - 「Licenses consumed」が、4 of 3 となっています。（オーバーしているのがわかります）
    - 「Associated resources」には、4台分 EC2インスタンスが登録されています。

|<img width="1076" alt="スクリーンショット 2018-11-30 22.18.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/6f5f541f-4bf3-d54c-7ec0-8fdb735a5593.png">|
|:--:|

## 「Enforce lincense limit」が、 "有効" でライセンス数をオーバーしたら？

一度、追加した3台を削除して、「Enforce lincense limit」を有効にしたのちに、また3台追加してライセンス数をオーバーさせてます。

- AWS License Manager > License configurations > anti-virus > Edit > 「Enforce lincense limit」にチェックし、「Update」を選択します。

|<img width="829" alt="スクリーンショット 2018-11-30 22.29.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/ec02876c-df66-b6a7-4d46-54670528dea7.png">|
|:--:|

- エラーメッセージが表示され、作成されません。

|<img width="750" alt="スクリーンショット 2018-11-30 22.33.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/168f9fd2-2481-c52b-e38f-fc54e199c312.png">|
|:--:|

## SNS 通知する場合

SNS Topic と Subscriptions を登録して、ライセンスオーバーさせてみます。

- SNS Topic には、フォーマットがあるため、適当に作成するとエラーになります。

|<img width="1067" alt="スクリーンショット 2018-11-30 22.43.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/cf2081b9-bd2b-17fa-64e3-7a86ed145f37.png">|
|:--:|

- AWS License Manager > Settings から登録します。

|<img width="1067" alt="スクリーンショット 2018-11-30 22.45.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/f7de0f04-955c-b5cc-965c-8dd8e330d427.png">|
|:--:|

- ライセンスオーバーになると以下のメールが通知されます。

|<img width="1120" alt="スクリーンショット 2018-11-30 22.52.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/212868/e62bb6a0-40e9-176d-5e36-4bf018a7ab93.png">|
|:--:|