見出し画像

エンジニア通信Vol.7 ~AWS Tips: Slackに通知送信~

こんにちは。
開発エンジニアのAです。

最近、自宅用の眼鏡を新調しました。
画面に向かう仕事では、目の保養も大事ですね。


さて、今回も私からはAWS Tipsをご紹介します。

テーマはSlackへのエラーログ通知です。
一緒に見ていきましょう。




前回同様、webアプリケーションのシステムは構築済みである前提で
通知部分のみ確認していきたいと思います。

システムは構築してリリースした後、運用という新たなフェーズに入ります。
不具合は早急に検知・対応したいですよね。

普段のコミュニケーションにSlackを利用しているチームであれば
Slackに通知が飛ぶようにしておけば、
直接ログを確認しにいく手間も減り、誰かが周知する必要もなくなります。

全体の構成イメージは下記のようになります。
今回は赤枠の部分を見ていきます。

構成例

ECSで稼働しているアプリケーションのログを、CloudWatchLogsに出力している想定です。

Slack⇒AWS Chatbot⇒AmazonSNS⇒AmazonCloudWatchの順に
クライアント側から設定していきましょう。

まずSlackでは、送信先のSlackチャネルを決定します。
例. 通知 など

送信先のチャンネルを作成


次にAWS ChatbotとSlackを紐づけます。
AWS Chatbotの画面を開き、「新しいクライアントを作成」しましょう。

Slackをクライアントとして設定

ワークスペースとの紐づけが完了すると、設定済みクライアントとして表示されるかと思います。
設定済みクライアントからワークスペースの設定を開き、
「Slackチャネルを設定」します。
先ほど作成した通知用のチャネルを設定しておきます。

通知先を設定


続いて、AmazonSNSのトピックを作成します。
SNS(Simple Notification Service)が、CloudWatchとChatbotの橋渡しをするイメージです。

SNSの画面を開き、新規トピックを作成します。
トピックの設定はデフォルトで一旦問題ないかと思います。

トピックを作成したら、トピックの設定画面から
「サブスクリプションを作成」します。
トピックARNの欄で先ほど作成したChatbotの設定を選択します。

Chatbotを紐づける


SNSの設定が完了したら、最後にCloudWatchでアラーム設定を行います。

まず、CloudWatchLogsで対象のログストリームを選択し、
「メトリクスフィルターを作成」します。

メトリクスフィルターを作成

今回は、エラーログのみ通知したいので、
「ERROR」という文字列を検知の対象とします。
※出力内容に合わせて適宜調整しましょう。

メトリクスフィルターの設定


そのまま画面の指示に従ってメトリクスフィルターを作成できたら、
CloudWatchアラームを作成します。

CloudWatchアラームを作成

メトリクスの選択で、直前に作成したメトリクスを選択します。

その後、条件の詳細を設定していきます。
何件以上検知されたらアラーム状態とするか、
どのくらいの時間間隔でアラーム状態を切り替えるか、などプロジェクトに合わせて設定しましょう。

1件でも検知されたら通知する場合

次に通知先の選択をします。
先ほど設定したSNSトピックを選択し、アラームを作成すれば完了です!

通知先SNSトピックを選択


最低限の設定ではありますが
これで、対象ログストリームにエラーログが含まれていた場合、
Slackにエラー通知が飛ぶようになります。



以上、Tipsをご紹介いたしました。

今回はSlackとの連携でしたが、
SNSからメールを送信したり、連携先を変えたりすることもできますので
ご自身の環境に合わせて設定いただくことで、
情報共有がスムーズに進むかと思います。

またログ通知だけでなく、システムの稼働状況を通知するなど
色々な用途で利用できます。

駆け足でしたが、雰囲気を掴んでいただけますと幸いです。

それではまた。

~~~~

ドリームビジョンではエンジニアの採用を通年で行っております。
ご興味のあるかたはご連絡お待ちしております。

▼ドリームビジョン