CloudWatchとは?
様々なAWSリソースを監視する仕組み。
CloudWatchを使うことで、
・監視結果に応じて、運用者にメール配信する
・監視結果に応じて、EC2インスタンスの増減アクションを発火させる
などが出来る。
CloudWatchを使うことで、
AWSの特徴である、「伸縮自在」「柔軟性(アジリティ)」を最大限使いこなせるようになる。
仕組み
・各AWSリソースから送られてきたモニタリングデータを保存する
・メトリックスごとにグラフ化して表示する
・モニタリングデータの保持期間は2週間。それ以降は破棄される
・月次のモニタリングレポートが必要な場合は、保持期間内にデータをダウンロードしておく必要がある
メトリックス
CloudWatchを使いこなす上で必須の用語。
「監視項目」という意味。
デフォルトで設定されているメトリックス
・EC2インスタンスのCPU利用率
・EBSのディスクI/O
・S3の格納オブジェクト総数
・RDSインスタンスのCPU利用率
・RDSインスタンスのメモリ空き容量
・RDSインスタンスのストレージ空き容量
・DynamoDBに書き込まれるユニット数
など
CloudWatchに送る仕組み/機能を各AWSリソース側で用意する
CloudWatchは「送られてきたデータ」を保存するので、
各AWSリソース側で、「送る」設定をしてあげる必要がある。
ただ、マネージドサービスであるRDSなどはデフォルトで様々なモニタリングデータを送信しる仕組みが最初から導入されている。
逆にマネージドサービスではないEC2などは、最低限のデータ(標準メトリックス)のみしか送信していない。
例)EC2の場合
標準(デフォルト)メトリックス
ハイパーバイザーが取得してClousWatchに送信する
・CPUCreditUsage:CPUクレジット利用数
・CPUCreditBalance:クレジット累積数
・CPUUtilization:CPU利用率
・DiskReadOps:1秒あたりのDisk読み込み回数
など
カスタムメトリックス
OSにインストールしたエージェントが取得してCloudWatcに送信する
標準メトリックス以外に取得したい場合は、カスタムを使う
モニタリングの種類
基本モニタリング
3種類のステータスチェックは1分間隔、その他は5分間隔
詳細モニタリング
標準メトリックスを全て1分間隔。追加料金が必要!!
アラームとは?
事前に設定しておいた閾値を超えたときに、
所定のアクションを呼び出す状態遷移のこと。
アクションの種類
・メードなどの通知
・EC2インスタンス数の増減(Auto Scalingポリシー)
・EC2の停止・削除・再起動・復旧(EC2アクション)
アラームの状態
3つの状態がある
・OK
・アラーム(Alarm)
・不足(Insufficient_data)
SNS(Amazon Simple Notification Service)
通知のサービス
用語
メッセージ
通知するメッセージ
サブスクライバ
受信者
トピック
単一/複数のサブスクライバをまとめたもの
CloudWatchのアラームのアクションでSNSを使って通知を送信する流れ
- 「TestTopic」というトピックを作成する
- 運用者のメールアドレスをサブスクライバとして「TestTopic」に登録
- CloudWatchでシステムのEC2インスタンスを監視。一分間の平均CPU利用率が80%を1回でも超えたというアラームが発生するよう設定
- アラームが発生すると「TestTopic」にメッセージを通知するアクションを設定
→ CPU利用率が80%を超えて、アラームが発生。
- 「CPU利用率が80%を超えた」旨のメッセージを「TestTopic」に送信
- SNSは、「TestTopic」 に登録されているメーリングリスト(サブスクライバ)にメッセージを送信する