LoginSignup
0
2

More than 3 years have passed since last update.

【SOA対策】CloudWatch

Posted at

CloudWatchとは?

AWSリソース、アプリケーション、オンプレミスのモニタリングを行ってくれるマネージドサービス

重要用語

◯CloudWatch メトリクス

各リソースから送られてくるデータポイント(一定期間で送られてくる数値情報)のまとまりをCloudWatch Metricsと呼ぶ。

□メトリクス種類

標準メトリクス
CPU使用率、ネットワーク使用率など

カスタムメトリクス
ディスク使用率、メモリ使用率など

※EC2モニタリング例

□メトリクスの保存期間

データポイント期間   保存期間
60 秒未満(高分解能カスタムメトリクス) 3 時間
60 秒(詳細モニタリング) 15 日間
300 秒(標準) 63 日間
3600 秒 455 日 (15 か月)

□Dimensions

メトリクスを特定するためのラベル、データポイントに付与されている文字列的な情報
=>インスタンスIDなど。

□Namespaces

大量のメトリクスを大きく分けるコンテナ
=>AWS/ApiGatewayのように分けられる。

□Statistics

指定した期間のメトリクスデータの集計

統計  説明
Minimum 特定の期間の最小値
Maximum 特定の期間の最大値
Sum 該当するメトリクスで加算されたすべての合計値
Average 指定した期間の Sum/SampleCountの値(平均値)
SampleCount 統計計算で使用するデータポイントの
pNN.NN パーセンタイル => なにそれ?な方はこちらで理解出来ると思います。

□Periods

Statisticsを何秒単位で集約するかを決めた数値情報で1秒単位で設定可能。
=>例) 直近5分間平均CPU使用率80%を超えたときにメールで通知

çCloudWatch メトリクスをもとにアラームを発行する機能。
メトリクスが特定の閾値を超えた際にアラームが発動し設定していたアクションを実行が可能
SNSを利用してEmail送信
AutoScaringで指定したAMIからEC2を起動
Lambdaの呼び出しなど

□Alarmのステータス

OK: 閾値内の値
ALARM: 閾値外の値
INSUFFICIENT: 収集し始めなどの理由により、データが不足していてアラームの状態を判定できない。

□Alarmの評価

Periods: 上記参照
Evaluation Periods: アラームの状態を決定するまでに要するデータポイントの数
Datapoints to Alarm: ALARM状態に移るために閾値を超過する必要がある評価期間内のデータポイントの数

□欠落データの処理方法の設定

処理方法 説明
notBreaching 欠落データポイントは閾値内。
breaching 欠落データポイントは閾値外。
ignore 直近のアラーム状態を維持
missing 過去のデータポイントに遡る。

◯CloudWatch Logs

ログ監視と保存を担う機能。
様々なAWSリソースのログをCloudWatch Logsダッシュボードに集約出来、
ログの分析、メトリクスフィルターを使用して状態の監視を行い、特定の状態でAlarmを発砲してエラーを検知出来るサービス。
ログデータ保存期間は無制限もしくは1日間~10年間

□ログの保存単位

ログイベント: リソースによって記録されたのログレコード1つ分
ログストリーム: ログイベントのまとまり
ロググループ: ログストリームのまとまり
例) EC2インスタンスが起動 => ログイベント情報流れてきてEC2インスタンスIDごとに分け、ログストリームに保存、ロググループEC2システムログという名前でグルーピング

□CloudWatch Logs agent

EC2やオンプレミスサーバーからシステムレベルのメトリクスを収集することが出来る。
CloudWatch Logs agentからログデータが送信される間隔は、デフォルトでは5秒。(設定可)

□サブスクリプション

サブスクリプションを利用するとCloudWatch Logsに保存したログデータをリアルタイムに処理し、下記のサービスに配信することが出来る。
Amazon Kinesis Data Streams
Amazon Kinesis Data Firehose
AWS Lambda

ログの転送条件を定義する為にサブスクリプションフィルタを作成し下記を設定

項目 説明
log group name サブスクリプションフィルタを適用するロググループ名。
フィルタパターン 特定の文字列を含むログデータのみを送信するなど、メトリクスフィルターで指定されたものに一致する語句や値を、ログイベントの中で検索出来る。
destination arn サブスクリプションフィードの送信先として使用する Kinesis Data StreamsKinesis Data Firehose、または Lambda関数のリソースネーム (ARN)。
role arn CloudWatch Logs が送信先のリソースにデータを置くのに必要な権限を与えるためのIAMロール
ディストリビューション Kinesis Data Streams にデータを送信する場合、メソッドを指定する。

◯CloudWatch Events

CloudWatch Eventsは、独自のトリガー(イベントソース)と何かしらの後続アクション(ターゲット)との組み合わせを定義するサービス。AWSの各サービスをよりシームレスに連携することが出来る。

□イベントソース

スケジュール: 期間・時間ベースのトリガー定義。
ターゲット: AWSリソースの状態変化をトリガーにする。

□ターゲット

ターゲットには既存のAWSリソースに対するアクションを定義
1つのイベントソースに対して複数のターゲットを定義することも可能。

・Amazon EC2 インスタンス
・AWS Lambda 関数
・Amazon Kinesis Data Streams のストリーム
・Amazon Kinesis Data Firehose の配信ストリーム
・Amazon CloudWatch Logs のロググループ
・Amazon ECS タスク
・Systems Manager コマンドを実行
・Systems Manager オートメーション
・AWS Batch ジョブ
・Step Functions ステートマシン
・CodePipeline のパイプライン
・CodeBuild プロジェクト
・Amazon Inspector の評価テンプレート
・Amazon SNS のトピック
・Amazon SQS キュー

組み込みターゲット: EC2 CreateSnapshot API call、EC2 RebootInstances API call、EC2 StopInstances API call、および EC2 TerminateInstances API call。
別の AWS アカウントのデフォルトのイベントバス
Amazon CloudWatch Events とは

参考

・【AWS】CloudWatch メトリクスを中心に6つの観点から徹底解説!
・AWS再入門ブログリレー Amazon CloudWatch 編

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2