Amazon SNSとCoudWatchの使い方

Amazon SNSとAmazon CloudWatch

この記事では、Amazon Web Servicesが提供するAmazon SNSとAmazon CloudWatchの2つのサービスについて説明し、そのサービスの活用方法について紹介していきます。

Amazon SNSとは

Amazon SNSと聞くと、Amzonが提供するSocial Network Serviceなのかと勘違いしてしまいそうになりますがサービスの正式名称はAmazon Simple Notification Serviceというサービスです。Amazon SNSはネットワークに接続しているPCやスマートフォンといった各種端末において、購入・購読しているコンテンツなどからのメッセージや通知をすぐに送受信できる機能を提供するサービスです。簡単に言うと、アプリケーションからの通知を実装することを可能にする機能を提供するサービスです。Amazon SNSには発行者と受信者の2つのクライアントが存在します。発行者は通信チャネルであるトピックを作成、定義します。トピックのイメージは一方通行のチャットルームです。発行者がこのトピックにメッセージを登録すると、そのトピックに紐づけられた送信先にメッセージが届きます。この送信先には、Webサーバー、Emailアドレス、Amazon SQSキュー、AWS Lambda関数などを設定することが可能です。設定する際には、Amazon SQSやHTTPといったプロトコルとセットで登録する必要があります。マネジメントコンソール、アプリケーションからサービスを起動することが可能なので、このサービスを活用することでメッセージの送信を簡単に実装することが出来ます。

Amazon CloudWatchとは

Amazon CloudWatchはAWSで実行するアプリケーションやサ各種ービス、CPUやメモリ、ディスク使用率などといった
AWSの各種リソースを監視するマネージド型のモニタリングサービス
です。AWSで構築したシステムに関わらず、システムを安定して運用するためにはシステムの監視を行い、異常が検知された際に迅速に対応を行うことが求められます。Amazon CloudWatchを用いれば、AWS上のシステムのログの収集などを通してシステムの監視を行い、異常な状態を検知した場合にはアラートを出しメールなどに通知することが可能であり、自動的に復旧を行うことも可能です。

Amazon CloudWatchには各種機能が備わっており、CloudWatchでAWSの各種サービスの監視を行いメトリクスの収集を行います。メトリクスというのは、AWSのサービスやアプリケーションの監視を行うことで得られる、仮想サーバーのCPU使用率などのパフォーマンスを示すデータです。これに際して導入作業やインストールなどの必要はありませんが、監視している過程で取得したメトリクスを独自にトリガーに設定して何らかのアクションを起こす場合には、CloudWatchで取得したログを参照する必要があります。このログを取得しているサービスがCloudWatch Logsであり、監視しているサービスにおいて設定したメトリクスが一定の閾値を超えた場合にCloudWatch側で起こすアクションを設定することを可能にします。アクションの設定にはCloud Watch Eventsを利用します。監視しているサービスにおいて、特定のイベントが発生した時、例えば先述したようにメトリクスが設定した閾値を超えた場合などに合わせてCloud Watch側で起こすアクションを実行に移します。このアクションというのは、自動的に復旧を行うのか、メールを送信するのか、などこちらで決めることが出来ます。

Amazon CloudWatchを利用することのメリットはやはりAWSの各種サービスと組み合わせたときの便利さです。Amazon Cloudwatchを用いれば、AWS上で使用している各種サービスやアプリケーション、メモリやディスク使用率といったリソースのログとメトリクスをほぼリアルタイムに一つのコンソールで統合して管理できる、というのは非常に大きな強みです。さらに収集したメトリクスデータなどは15ヶ月間保存出来るため、何か外的要因などによって特殊なイベントが起きた際などに、過去のデータと比較することにより高度な分析を行うことも可能になります。また、その分析結果を用いて同様のイベントが起きた際のアクションを決定することも出来ます。しかしながら、AWSのサービス以外も併せて統合環境で使用する場合にはAmazon CloudWatch以外のモニタリングサービスを利用することも考えた方が良いでしょう。

Amazon CloudWatchとAmazon SNS

Amazon CloudWatchとAmazon SNSは統合されていますので、例えばAmazon SNSを連携させればAmazon CloudWatchのアクションにメールによってサービスに生じた異常などを通知することが可能になります。メトリクスに設定した閾値を超えた際にアラームをメールで瞬時に受け取ることが出来るので、その後の迅速な対応にもつながります。

終わりに

ここまでお読みいただきありがとうございます。いかがだったでしょうか。システムを継続的に運用する以上、その監視・管理はどうするのかといった問題が生じます。もしもAWSを用いてシステムの構築を行っているのであれば、Amazon CloudWatchとAmazon SNSを用いた管理方法を試してみてはいかがでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の記事

Vue.js × AWS AppSyncでSPA開発