DEVELOPER BLOG

開発者ブログ

HOME > 開発者ブログ > 【AWS入門】CloudWatch、SNS、ChatbotでSlackへのアラート検知を組む - PrismScaler

【AWS入門】CloudWatch、SNS、ChatbotでSlackへのアラート検知を組む - PrismScaler

1. はじめに

こんにちは!株式会社Definerのライターチームです! 今回は、CloudWatch、SNS、ChatbotでSlackへのアラート検知を実装する方法について気になりますよね。 実際の画面や、資源を見ながら詳しく解説していきましょう。

2. 目的・ユースケース

この記事では、CloudWatch、SNS、Chatbotを使ってSlackへアラートを飛ばしたいときに、参考になる情報やプラクティスをまとめています。

3. ステップ1 SNS/CloudWatch構築

Slackへのアラート検知の全体像としては、CloudWatchで異常を検知し、キューであるSNSを経由してChatbotがSlackへ通知を送ります。 早速、アラート検知に向けてリソースを構築していきます。   ①SNSトピックの作成 「aws sns create-topic 」コマンドでSNSトピックを作成します。 TopicArnが返ってきたら、作成成功です。   ②CloudWatchアラームの作成 続いて、「aws cloudwatch put-metric-alarm」コマンドでCloudWatchアラームを作成します。 今回はサンプルとして、EC2のCPU使用率が90%を超えたら発砲されるアラームを作成しました。  
## SNSトピックを作成するコマンド
[cloudshell-user@ip-10-0-xx-xx ~]$ aws sns create-topic --name test_sns
{
    "TopicArn": "arn:aws:sns:ap-northeast-1:xxxxxxxxx:test_sns"
}
[cloudshell-user@ip-10-0-xx-xx ~]$                
## Cloudwatchアラームを作成するコマンド
[cloudshell-user@ip-10-0-xx-xx ~]$ aws cloudwatch put-metric-alarm \
--alarm-name "ec2cpuAlart" \
--alarm-description "EC2のCPU使用率が90%を越えました" \
--alarm-actions ${先ほど作成したSNSのARN} \
--ok-actions ${先ほど作成したSNSのARN} \
--namespace AWS/EC2 \
--dimensions "Name=InstanceId,Value=${EC2インスタンスのID}" \
--metric-name CPUUtilization \
--threshold 90 \
--comparison-operator GreaterThanOrEqualToThreshold \
--period 300 \
--evaluation-periods 1 \
--datapoints-to-alarm 1 \
--statistic Average \
--treat-missing-data missing
[cloudshell-user@ip-10-0-xx-xx ~]$                  

4. ステップ2 Chatbotの設定

続いて、Slackと連携するChatbotを作成していきます。   ①チャットクライアントの設定 AWS Chatbotのコンソールへアクセスし、チャットクライアント「Slack」→「クライアントを設定」 WebでSlackの連携画面が表示されるので、連携するワークスペースを選択します。 これでSlackとの連携が完了しました。   ②Chatbotの作成 AWS Chatbotのコンソールから、「新しいチャネルを作成」 「Slackチャネル」で、どこに通知を送るかを選択します。 今回は、パブリックチャネルの「random」を指定しました。 IAMなどの権限まわりは、デフォルトのまま進みました。 通知で、先ほど作成したSNSを指定して、「設定」をクリックすれば設定完了です。   ③Slackへの通知テスト 実際にCloudWatchアラームを発砲させてみます。 無事にSlackに通知が届きました。  

5. 引用・参考記事

6. 独自ソリューション「PrismScaler」について

PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。 エンジニアの大変な作業を肩代わり ・自動構築 ・自動監視 ・構成可視化 クラウド基盤に関わる作業を以上のように効率化します。 SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。 高品質な汎用クラウド基盤の実現 ・クラウド基盤構築/クラウド移行 ・クラウドの保守運用・コスト最適化 など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。 興味を持たれた方には、無料で資料を提供しております。 お気軽にご相談ください。

7. お問合せ

株式会社Definerでは、 ・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。 ・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。 ・少ないエンジニアで事業が成長する仕組みづくりの実現。 ・エンジニアが喜ぶ、採用しやすい環境づくりの実現。 ・高速なアジャイル開発環境の実現。 ・自社プロダクトとしてPrismScalerを展開。 上記事業内容を進行しております。 ※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。 ご相談やお問い合わせは「株式会社Definer」へ。

8. Definerに関して。

・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。 ・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。 ・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。 ・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。