質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1414閲覧

AWS CloudWatch メトリクスを使用した通知について

xxyyxx

総合スコア40

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/04/01 09:35

以下、2つのサービスの異常を検知しSlackに通知したいです。

  • Lambda functions
  • CloudWatch Events(cron)

Lambdaも複数あり、CloudWatch Eventsも複数設定してあります。
※CloudWatch Eventsはcron式で設定されており、複数ありますが、実行順序は気にしないものとしています。
※今回の異常としては、Lambdaはfailのみ。CloudWatch Eventsは、スケジュール通りに実行されたが、failになった場合です。

######試したこととして、
いずれもCloudWatchのアラームを設定すれば、SNSを経由してLambdaでSlack通知できそうなのはわかりました。

######そこで、疑問に思ったことが、
Lambda毎にアラームを作成すると、今回のように複数functionがある場合、アラームが大量生産されてしまうこと。
同様に、CloudWatch Eventsも複数あるので、アラームを設定する際に、CloudWatch Eventsの数だけアラームが作成されてしまうことでした。

なので、アラーム作成時に選択するメトリクスが1つであれば、
Lambda用に1つ、CloudWatch Events用に1つでアラームが合計2つで済むのではと思っています。

######困っていること
ただ、コンソールでメトリクスのページを触ってみたりしていたのですが、集約することができずにいます。
ググってもみたのですが、CloudWatch Events自体の異常検知方法がヒットせず困っております。

知識が浅はかで恐縮ですが、メトリクスをまとめる方法+そのメトリクスを基準としてアラーム設定する方法の記事や手順をご教授していただけますでしょうか。

また、もっと楽に設定できる方法などありましたら、教えて頂けますと嬉しいです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

今回のように複数functionがある場合、アラームが大量生産

おそらく、複合アラームを設定すればやりたいことが実現できないことはないと思います。
複合アラームの作成
しかし、仮にできたとしてもまとめないほうがいいんじゃないですかね…。
まとめてしまうと、どのLambda Functionでエラーになったのがすぐには判別できないと思います。
複数設定したものが複数落ちた、ということはそれ自体が情報なので、まとめることによってあるLambda Functionが落ちたという情報が欠落してしまうことが懸念されます。
エラーがきちんと検知できなくなっては本末転倒でしょう。
それとも、一つのLambda Functionが落ちた場合常に複数のLambda Functionが落ちるような使い方をしているということでしょうか?
それであれば、そもそもまとめないで必要なLambda Functionのみエラー通知させればいいだけかなと思います。

アラーム作成時に選択するメトリクスが1つであれば、

メトリクスはLambda Functionごとに存在するので、それは実質1つのLambda Functionにしかアラームを設定していないことになると思います。

CloudWatch Events自体の異常検知方法が

これはちょっと何がしたいのかわかりません。
異常検知サービスに対する異常検知をするのは現実的ではないでしょう。

CloudWatchアラームをSlackに通知する場合、Lambda Functionを経由する方法も多数出てきますが、今だとAWS Chatbotを使うと簡単です。
ついに来た! AWS Chatbot が一般公開(GA)になりました! Slack連携が捗ります!
AWS Chatbotで簡単にSlack通知!!&通知例いろいろ

また、CloudWatchアラームでLambdaのErrorsをトリガーにしてアラームを発生させるほか、Lambda Functionそのものに例外処理を入れて、途中でエラーが発生した場合に何かしら通知をさせてもいいでしょう。

投稿2021/04/01 16:39

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxyyxx

2021/04/02 00:07

ご回答ありがとうございます!! 非常に参考になります!! Lambdaに関しては、たしかにすべてのLambdaを異常検知というのは現実的でない気がしましたので、 必要なfunctionのみの検知が良さそうでした。 CloudWatch Eventsについて、 そうなのです。。異常検知サービスに異常検知はおかしいのですが、、、 どうしてもスケジュールされたイベントが実行できなかったのを検知するための方法は、AWSサービスで完結させたい場合なにかありますでしょうか?、、
yu_1985

2021/04/02 06:13

> すべてのLambdaを異常検知というのは現実的でない いや、そんなことはないと思いますよ。それぞれ設定すればいいだけなので。 数が多いならコード化するなり、工夫をすればいいのです。 設定の基準は楽かどうかよりも、必要かどうかです。 > どうしてもスケジュールされたイベントが実行できなかったのを検知するための方法は、AWSサービスで完結させたい場合なにかありますでしょうか? 難しいです。 AWSのサービスがどうこうよりも、まず何をもって「イベントが実行できなかった」と定義するのかを決められないと検知ができません。 サービスのことは忘れて、まず「イベントが実行できなかった場合何が起こるか/どうなっているか」を考えて、その状態を監視することを考えましょう。 どうやって監視するかはその後の話です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問