AWS CloudwatchからChatbotを使ってコーディングなしでslackに通知を送る

### はじめに
ClowdwatchからSlackへ通知する方法はいくつかあるが、どれもコーディングを必要とする。
代表的な例は、ClowdwatchとLambdaを使用してSlackへ通知する方法である。
Lambdaを使用して通知を送ると通知の文面などをカスタマイズできるが、そこまでの必要がない場合、
Chatbotを使用することでコーディングなしでClowdwatchの通知を送る事ができる。

今回の例では、EC2インスタンスのCPU使用率が閾値を超えた場合にアラームを飛ばすように実装する

###　Chatbot設定


１．Chatbotページからチャットクライアント「Slack」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/473a0b00-f6d6-e77b-b5a3-0c48bddbe677.png)

2.Slackにリダイレクトされるので、使用したいSlackのチャンネルを選択して「Allow」

3.新しいチャネルを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/c1113193-3674-7b7e-bbc9-c5e6a9ea7c03.png)

4.任意の設定名を指定し、通知を送りたいチャネルを指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/b42e16e0-9552-6014-775d-b50c0fcc4bd3.png)

5.アクセス許可では任意のロール名を指定する（指定したいロールがある場合は、IAMロールのプルダウンから選択する）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/8ce05dfd-4b90-cb7f-5979-c68e80065f93.png)

6.Chatbot管理画面でチャネルの作成ができたことを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/ca56650a-06a6-02bc-f2fc-4e9147d70cab.png)

### Amazon SNSの設定
Amazon SNSはClowdwatchとSlackを連携する機能で、Clowdwatchのアラームを拾ってChatbotへ渡して上げることができる。

1.トピックの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/fb5a5224-2050-60fc-edba-0a1e0b2df952.png)

2.スタンダードを指定し、名前を決定する
　　　他の項目は特に指定がなければデフォルトのままで良い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/468f176d-ac48-e87c-6ee2-d2f57b160702.png)

3.トピックが作成されたので、トピックに紐づくサブスクリプションの作成を行う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/29eefd6b-aed8-86f2-9083-2c6f7be269b6.png)

4.プロトコルを指定
　　　　直接Slackを指定したいができないため、仮でEメールを選択し、メールアドレスを入力する。(Eメール認証があるため、仮であっても正しいメールアドレスを入れること)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/081ff707-bd22-9bbf-2b26-e0c7c3946507.png)

5.届いたメールでメール認証を行い、AmazonSNSでサブスクリプションが作成されたことを確認する

### ChatbotにSNS通知を紐付ける
1.Chatbotページに行き、先程作成したチャネル名をクリックする（この例だとslack-alert）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/8585e45b-d313-804a-8b6a-960c88c74d37.png)

2.右上「編集」ボタンから編集ページへ遷移する

3.通知-オプションで先程作成したSNSトピックを選択する（この例だとclowdwatch-slack-sns）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/4b995f31-bdd4-091d-8b7a-4f84c158966c.png)


### Clowdwatch
アラームの作成
　Clowdwatchからアラームを作成したいメトリクスを指定しても良いが、項目が沢山あり、探すのが大変なので、今回はEC2からメトリクスの作成を行う。

1.EC2画面でインスタンスを選択し、下部モニタリングタブからCPU使用率の右上３点・・・をクリック、「メトリクスで表示」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/810c281a-f43d-886c-1ccf-fe3cdff052ce.png)

2.指定したメトリクスのアクション列にあるベルマークを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/9c250986-15f4-e915-87cd-1f3f75d36940.png)

3.Clowdwatchのメトリクスと条件の指定に遷移するので、期間、閾値などを指定する
　今回の例では、5分間隔でチェックを行い、CPU使用率が10%以上のときにアラームを飛ばすように設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/006f039d-b364-3ffc-a0b3-25590a3ce477.png)

4.通知の送信先を作成したSNSにする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/82e60a45-1a0f-4d76-d162-89b7156648c7.png)

5.アラーム名を指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/9b4b0a4b-bdb9-d65b-f19d-84fc778cff31.png)

6.プレビュー画面で設定が間違っていなければ作成する

7.アラームが作成されたことを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/a9a674e8-4cac-3bba-b673-97ca22f5cc84.png)

Slackにエラーメッセージが飛んでくれば設定完了
![スクリーンショット 2021-09-06 11.14.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631498/36c27354-8ebb-e0a2-7885-6d18d9ea01bd.png)