【AWS】CloudWatch

# はじめに
タダです。
AWS認定試験勉強のためにCloudWatchのドキュメントを読んだ自分用メモになります。
あくまで個人用のメモになるので、その点はご了承ください。
※違う内容書いているなどありましたらご指摘いただけると幸いです。
※随時アップデートがあれば更新していきます。

# サービス概要
* AWSリソースと、AWSで実行されているアプリをリアルタイムでモニタリングするマネージドサービス
* ClouWatchアラームはユーザーが定義したルールに基づいて通知を送信したり、モニタリングしているリソースに自動的に変更を加えられる
	* EC2のCPU使用率およびディスク読み書きをモニタリングし、増加する負荷を処理する追加のインスタンスを追加のインスタンスを開始できるかをはんだんする
* EC2のモニタリングタイプ
	* 基本モニタリング：無料、データは5分間隔
	* 詳細モニタリング：追加料金が必要、データは1分間隔
* アラームのステータス
	* OK : 定義された閾値を下回ってる状態
	* アラーム : 定義された閾値を上回っている状態
	* 不足 : データが不足のため、状態を判定できない
		* データポイント自体が存在しない状態
		* OKとアラームはデータポイントが存在する状態で評価
			* したがって必ずしも不足状態が障害を表すステータスじゃない

## 専門用語
* 名前空間
	* CloudWatchメトリクスのコンテナ。 AWS/ *Service* という命名規則。
		* ex: AWS/EC2、AWS/RDS、AWS/ELB 
* メトリクス
	* CloudWatchに発行された時系列のデータポイントのセット
		* データの粒度は最小が1分〜3分や5分間間隔のものまである
	* メトリクスはリージョンごとに管理される
	* 最大15ヶ月まで保管される
		* 期間が 60 秒 (1 分) のデータポイントは、15 日間使用できる
		* 期間が 300 秒 (5 分) のデータポイントは、63 日間使用できる
		* 期間が 3600 秒 (1 時間) のデータポイントは、455 日 (15 か月) 間使用できる
		* https://aws.amazon.com/jp/cloudwatch/faqs/
* ディメンション
	* 監視の範囲

## 他のサービスとの連携
* SNS
	* CloudWatchアラームを使う時に連携する
* AutoScaling
	* ユーザー定義のポリシー、ヘルスステータスチェックおよびスケジュールに基づいてEC2を自動的に起動、終了できる
* CloudTrail
	* CloudTrailログにCloudWatch API実行を記録できる
* IAM
	* CloudWatchの操作権限を管理する

## アクション機能
モニタリングの状態によってアクションを定義する

* SNS通知
* EC2アクション
	* EC2 Auto Recovery(対応するインスタンスはC3,4/M3/R3/T2で、EC2-Classicとハードウェア専有インスタンスは未対応)
	* EC2 再起動/停止/起動
* AutoScaling

# CloudWatch Events
AWSリソースの変更を示すシステムイベントのほぼリアルタイムのストリームを、EC2インスタンス、Lambda、SQSキュー、ECSタスク、ステップ関数ステートマシン、SNSトピック、Kinesisストリーム、組み込むターゲットに振り分けるのがCloudWatch Events

## 専門用語
* イベント
	* AWSリソースにおける変化で、CloudWatch Eventsのトリガーとなる。
* ターゲット
	* イベントを処理する
* ルール
	* 一致した受信イベントを検出し、処理のためにターゲットに振り分ける

## 他のサービスとの連携
* CloudTrail
	* CloudWatch Eventsのログをとれる
* CloudFormation
	* CloudWatch Eventsのルールを作れる
* Config
	* Config Rulesがトリガーされると、CloudWatch Eventsによってキャプチャできるイベントが生成される
* Kinesis Stream
* Lambda

## イベントタイプ
* EBSイベント
	* スナップショット通知
	* ボリューム通知
* EC2イベント
	* インスタンスの状態変更通知
* EC2 System Managerイベント
	* RunCommandの実行の通知
	* EC2 Automationステップステータス変更の通知
* EC2メンテナンスウィンドウイベント
* ECSイベント
	* ECSコンテナインスタンスの状態変更
	* ECSタスクの状態変更
* EMRイベント
	* クラスター状態の変更
	* EMRステップ状態の変更
* AutoScalingイベント
	* EC2インスタンス起動のライフサイクルアクション
	* EC2インスタンスの起動/失敗
* APIコールイベント
* CodeDeployイベント
	* デプロイ状態変更通知
* AWSマネジメントコンソールサインインイベント
* AWS Healthイベント
* KMSイベント
* スケジュールイベント
* TrustedAdvisorイベント

# CloudWatch Logs
* CloudWatch Logsは、EC2、CloudTrailおよびその他のソースのログファイルの監視、保存、アクセスができる
* 特徴として、EC2インスタンス/CloudTrailのログをリアルタイムでモニタリングできる他に、ログデータをアーカイブできる

## 専門用語
* ログイベント
	* モニタリングされてるアプリまたはリソースによって記録されたアクティビティの記録
	* イベント発生時のタイムスタンプおよび生のイベントメッセージ(UTF-8)
* ログストリーム
	* 同じリソースを共有する一連のログイベント(ログフォルダのサブフォルダのイメージ)
* ロググループ
	* ログの出力箇所(ログフォルダのイメージ)
* メトリクスフィルタ
	* ログイベントから特定の文字列のフィルタリングが可能
* 保持設定
	* ログの保持期間を設定する

## 他のサービスとの連携
* CloudTrail
* Kinesis Streams
	* ITインフラのログデータ、アプリのログ、SNSメディア・マーケットデータフィード、ウェブのクリックストリームデータの取り込みと処理をリアルタイムでできる
	* CloudWatch Logsに収集されたログをリアルタイムにKinesis Streamに転送可能
* Lambda
	* ログの出力先がCloudWatch Logs
* S3
	* ログデータをS3にエクスポートする
	* ログデータはエクスポート出来るようになるまで最大12時間かかる場合ある

# 参考
* [サービス概要](https://aws.amazon.com/jp/cloudwatch/)
* [よくある質問](https://aws.amazon.com/jp/cloudwatch/faqs/)
* ドキュメント
	* [CloudWatch](http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
	* [CloudWatch Events](http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
	* [CloudWatch Logs](http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
* [SlideShare](https://www.slideshare.net/AmazonWebServicesJapan/black-belt-online-seminar-amazon-cloudwatch)

# 更新日時
* 2017/04/29 初回投稿