Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS研修 Amazon CloudWatch

Recruit
PRO
August 18, 2021

AWS研修 Amazon CloudWatch

2021年度リクルート エンジニアコース新人研修の講義資料です

Recruit
PRO

August 18, 2021
Tweet

More Decks by Recruit

Other Decks in Technology

Transcript

  1. Amazon CloudWatch 株式会社リクルート クラウドアーキテクトグループ

  2. Amazon CloudWatchとは︖ • AWSが提供するモニタリング/オブザーバビリティサービスです。 2

  3. Amazon CloudWatchの提供する機能 Amazon CloudWatchは以下の6つのサービスから構成されています。 1. Metrics Ÿ CPU使⽤率など各種メトリクスを収集管理するためのサービス 2. Logs(+

    Logs Insights) Ÿ システムから⽣成されるログを集約、管理、分析するためのサービス 3. Events(Amazon Event Bridge) Ÿ AWS上で発⽣したイベント(インスタンスの起動・停⽌)を集約、管理するためのサービス 4. Alarms Ÿ Metrics, Logs, Eventsの情報をベースにアラームを発報するためのサービス 5. Dashboards Ÿ 1~4の内容をダッシュボードとして表⽰するためのサービス 6. Synthetics(今回はスコープ外) Ÿ 実際のユーザを模した形でシステムの外形監視を⾏うためのサービス 3
  4. Amazon CloudWatchの提供する機能 1. Metrics 2. Logs(+ Logs Insights) 3. Events

    4. Alarms 5. Dashboards 4
  5. CloudWatch Metrics CPU使⽤率などのメトリクスを管理するためのサービス。 メトリクスをグラフ化して表⽰することなどもできます。 5

  6. CloudWatch Metrics 特定のメトリクスを指定する⽅法 CloudWatchのメトリクスを指定する際には、名前空間・メトリクス・ディメン ション・統計の4つの軸をもちいて指定します 1. 名前空間 • AWS/RDSなど特定のAWSサービスを表す 2.

    メトリクス名 • 特定のAWSサービスに紐づく メトリクス名(CPU使⽤率など)を表す 3. ディメンション Ÿ どのインスタンスに紐づくメトリクス なのかなどのフィルタリングを⾏う 4. 統計 Ÿ 1~3で取得できた1つ以上のメトリクスを 統計処理(最⼤・最⼩・合計・平均・p値計算など)した値 にまとめる 6 ⼤量のメトリクス 名前空間の指定 特定のAWSのサービス に紐づくメトリクス群 メトリクス名 特定のメトリクス名の値 (複数のインスタンス値) ディメンション(オプション) 単⼀の値 ディメンションで フィルタされた複数の値 統計 この結果が時系列グラフ 上の単⼀の点になる
  7. CloudWatch Metrics カスタムメトリクス CloudWatchには標準メトリクスとユーザ側で定義が可能なカスタムメトリクスが 存在します。 • 標準メトリクス • AWSの各種サービスから提供されるメトリクス •

    特別な設定は⼤抵の場合は不要(⼀部メトリクスの取得は有償なこともある) • カスタムメトリクス • 標準メトリクスではカバーしきれない詳細なメトリクスや、 特定のドメイン固有の値などをAPI経由で投⼊することができます • 有償(無料枠あり) 7
  8. CloudWatch Metrics Math – 複数のメトリクスを計算して新たな値を導出する 複数の既存メトリクスを演算して新しい値を導出することができます。 下図の例では、(Lambda関数の)呼び出し回数とエラー発⽣回数からエラー率を算出しています。 8 数式を記述 参考)

    https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/using-metric-math.html
  9. Amazon CloudWatchの提供する機能 1. Metrics 2. Logs(+ Logs Insights) 3. Events

    4. Alarms 5. Dashboards 9
  10. CloudWatch Logs AWSの諸サービスおよびアプリケーションから出⼒されるログの監視、保存、検索ができます 10 例) CodeBuildの実⾏ログ

  11. CloudWatch Logsの構造 CloudWatchログはロググループ・ログストリーム・ログイベントの3つの要素か ら構成される • ロググループ • 保持期間、監視設定、アクセス制御について 設定を共有するログストリームの集まり •

    ログストリーム • 同じソースから発⽣しているログイベントの集まり • ログイベント • 単⼀のログエントリ • テキストログなら単⼀⾏のログに相当 11 CloudWatchエージェントを⽤いて ログを収集する場合などに意識したほうが良い内容です
  12. CloudWatch Logs メトリクスフィルター CloudWatch Logsのロググループにメトリクスフィルターを設定することで、 特定⽂字列の出現回数などをカウントすることができます 12 ロググループ メトリクスフィルタ 特定のフィールドにbbbの⽂字列が含まれること

    などの条件を記述 メトリクス (a分以内にbbbの⽂字列 が出現した回数など) 参考) https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
  13. CloudWatch Logs メトリクスフィルター活⽤のポイント • 構造化されたログを出⼒する • JSONなどで構造化しているログを出⼒するように⼼がけると劇的にメトリク スフィルターが記述しやすくなります 13 参考)

    https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
  14. Amazon CloudWatchの提供する機能 1. Metrics 2. Logs(+ Logs Insights) 3. Events

    4. Alarms 5. Dashboards 14
  15. Amazon Event Bridge(旧CloudWatch Event) AWSの各サービスから⽣成されたシステムイベント(cronのような定期イベントを ⽣成することも可能)を検出して特定の処理を実⾏するためのサービスです。 以前はCloudWatch Eventという名称でCloudWatchのサブサービスでしたが、現在はAmazon Event Bridgeという名前で独⽴したサービスとなっています。

    15
  16. Amazon Event Bridgeの概念と動作 16 パターン定義 ターゲット定義 イベントの発⽣ Event Bridge ルール定義

    発⽣したイベントがパターン定義と マッチするかをチェック マッチング 処理のトリガー パターン定義に紐づくターゲット定義 を参照して特定の処理をトリガーする • イベント • AWS環境に⾏われた変更 • ルール • ⼀致した受信イベントを検出し処理 のための振り分けを⾏うフィルター • ターゲット • ルールからトリガーされる様々な処理
  17. 実⾏例 17 パターン定義 ターゲット定義 イベントの発⽣ Event Bridge ルール定義 発⽣したイベントがパターン定義と マッチするかをチェック

    マッチング 処理のトリガー パターン定義に紐づくターゲット定義 を参照して特定の処理をトリガーする EC2インスタンスの起動 マッチ or Notマッチの判断 Lambdaの実⾏
  18. Amazon CloudWatchの提供する機能 1. Metrics 2. Logs(+ Logs Insights) 3. Events

    4. Alarms 5. Dashboards 18
  19. CloudWatch Alarms CloudWatchのメトリクス情報を使ってアラームを発⽣させるための機能です。 アラームトリガー時にアクションに対しての連携が可能です。 19

  20. CloudWatch Alarms CloudWatchのメトリクス情報を使ってアラームを発⽣させるための機能です。 アラームトリガー時にアクションに対しての連携が可能です。 20 ⽣成された メトリクス CloudWatch 蓄積された メトリクス

    Alarm設定 OK・NG・ INSUFFICIENT_DATA の結果次第で アクションをトリガー アクション(例) Amazon SNS 経由のアラート発報 EC2インスタンスの オートスケール • 対象メトリクス • 評価期間 • 閾値設定 などなど from CloudWatch Metrics, CloudWatch Logs via Metric filter
  21. CloudWatch Alarmsの閾値設定について 閾値には静的なものと動的なものを設定することができます • 静的閾値 • 明⽰的に値を指定した閾値 • 例えばCPU使⽤率として80%以上など •

    動的閾値 • メトリクスの異常検出機能を利⽤した動的な閾値設定 • 参考) https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Create_Anomaly_Detection_Alarm.html 統計および機械学習アルゴリズムを⽤いて平常時のメトリクスと異常時のメトリクスの振り分けを⾏うことができます 21
  22. Amazon CloudWatchの提供する機能 1. Metrics 2. Logs(+ Logs Insights) 3. Events

    4. Alarms 5. Dashboards 22
  23. CloudWatch Dashboards CloudWatchのメトリクスやログをまとめて表⽰するための ダッシュボードの作成・表⽰機能です。 全員で同じ情報をみながら分析、トラブルシューティング、判断する上で重要な機能です。 23

  24. CloudWatch Dashboardの種類 • 通常のダッシュボード • GUIでダッシュボードを作成できます • ダッシュボード構成をIaC的にJSONで定義したりすることも可能です • Automatic

    Dashboard • AWS側で⼀部のサービスは標準的なダッシュボードを提供しています • まずはここからスタートしてみるのも良いと思います • 参考) https://aws.amazon.com/jp/about-aws/whats-new/2018/11/amazon-cloudwatch-introduces-automatic- dashboards-to-monitor-all-aws-resources/ https://dev.classmethod.jp/articles/cloudwatch-automatic-dashboards/ 24