AWS DevOps Monitoring Dashboardを試してみた

# はじめに

「AWS DevOps Monitoring Dashboard」という、CI/CDのアクティビティが可視化されるいい感じのソリューションがあったので、試してみました！



https://aws.amazon.com/jp/solutions/implementations/aws-devops-monitoring-dashboard/

CloudFormationテンプレートが配布されているのでリソースの立ち上げは簡単なのですが、ちょっとしたハマりどころがあったので共有します。

ちなみに、**料金が発生**します。

> Q: このソリューションの費用はいくらですか？
> 
> A: 2021 年 3 月の時点で、米国東部 (バージニア北部) の AWS リージョンでこのソリューションをデフォルト設定で実行するためのコストは、開発チームによるコードの変更やコードのデプロイなどの CI/CD アクティビティから 1 か月あたり 100GB のデータが生成され、QuickSight の作成者が 1 人、閲覧者が 10 人いて、それぞれが月に 2 回ダッシュボードにアクセスすると仮定すると、約 34.20 USD/月です。 各 AWS のサービスのコスト内訳などの詳細なコスト見積もりについては、ソリューション実装ガイドをご参照ください。

よくある質問

https://aws.amazon.com/jp/solutions/implementations/aws-devops-monitoring-dashboard/resources/

## 前準備
### QuickSight立ち上げ
CI/CDのアクティビティを可視化するツールとして、QuickSightを利用します。

https://aws.amazon.com/jp/quicksight/


QuickSightは、ほかのAWSサービスとは少し違い、AWSアカウント以外に専用のアカウントを作成する必要があります。
そのため、まずQuickSightのアカウントを作成します。

マネコンの検索窓からQuickSightと入力し、アクセスします。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/563b5b22-246d-2053-06fb-2f5015b11de2.png)


「Sign up for QuickSight」を押下するとエディション選択画面になるのですが、ここで**エンタープライズエディション**を選択します。(ガイド参照)

> Amazon QuickSight deployment
> This solution requires Amazon QuickSight resources to be deployed in an Amazon QuickSight Enterprise edition account in the same Region. If you plan to use the Amazon QuickSight dashboard feature, you must subscribe to Amazon QuickSight Enterprise edition in the account where you deploy the solution. Refer to Signing Up for An Amazon QuickSight Subscription if you do not have an Amazon QuickSight Enterprise account set up. Ensure that you have the QuickSight Principal ARN, as you will need it later when you deploy the solution. For information, refer to Retrieve the Amazon QuickSight Principal ARN.

https://docs.aws.amazon.com/solutions/latest/aws-devops-monitoring-dashboard/deployment-considerations.html

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/568618e8-3972-8946-8128-1dd703f6af60.png)

エディションを選択するとアカウント作成画面になるので、案内に沿って作成します。
(リージョンは普段使っているものを選択することをお勧めします。)

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/2e0c4d50-2fcc-1814-7776-03c40aecbf49.png)


以下のコマンドをCLIで打ち、作製したアカウントのARNを入手します。

```
$ aws quicksight list-users --region <REGION> --aws-account-id <ACCOUNT ID> --namespace default
>  ... "Arn": "arn:aws:quicksight:<REGION>:<ACCOUNT ID>:user/default/<USER NAME>" ...
```

## リソースの立ち上げ
### スタックの作成
[ソリューションのページ][link-1]からCloudFormationテンプレートをダウンロードします。
[link-1]:https://aws.amazon.com/jp/solutions/implementations/aws-devops-monitoring-dashboard/

ダウンロードしたテンプレートをもとに、スタックを作成します。

「スタックの詳細を指定」のページにQuickSightのARNを入力する箇所があるので、先ほど入手したARNを入力します。

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/278f79ec-cf15-9e57-0f99-b3240d0f0708.png)

少しするとスタックが作成されるので、作成されたらQuickSightにアクセスし、ダッシュボードから確認します。

### ハマりどころ

**アクセス権限がない**と怒られました。
なのでアクセス権限を付与します。

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/2949e7b5-3ab2-3be5-ec7d-b567827e239e.png)


QuickSightの右上、「QuickSightの管理」→「セキュリティのアクセス権限」から付与を行います。

S3とAthenaのアクセス権限があればよいと思います。
スタック作成時に自動生成されたバケットとCloudTrailの証跡ログを保管しているバケットのアクセス許可を行うとうまくいきました。

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/ac88d196-c38c-6031-af36-f4d49d935573.png)

S3バケットを選択、更新してもアクセス権限が反映されない場合は以下を試してみてください。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/quicksight-permission-errors/

## 実際に動かしてみる

適当に作ったCodePipelineを動かしてみます。

CodeCommitのPushをトリガーにCodeBuildでビルドを行い、デプロイフェイズでデプロイを行うPipelineを作成しました。

Pipelineを動かして数分後QuickSightを見ると、Pushがカウントされていることがわかります。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675893/571b93a4-e671-8032-182f-eb0c830675c8.png)



# まとめ
誰がコミットしたか等が見える化され、CI/CDのマネジメントがより容易にできるようになるソリューションだと思います。
管理に大変さを感じている方は一度試してみてください。