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

AWSいまどきの監視(モニタリング)事情 -CloudWatchのその先に-

AWSいまどきの監視(モニタリング)事情 -CloudWatchのその先に-

Seigo Watanabe

October 15, 2023
Tweet

More Decks by Seigo Watanabe

Other Decks in Technology

Transcript

  1. NOTICE お話しすること • AWS の持つ監視 (モニタリング) 機能の紹介 • その先 お話ししないこと

    • 個々の機能の細かい説明 資料は後⽇公開します (「 DevelopersIO 」で検索!) • 撮影はご⾃由に(周りのひとの迷惑にならない範囲で!) • その分、情報量は積載超過状態です ← 2
  2. ⾃⼰紹介 https://dev.classmethod.jp/author/watanabe-seigo/ ▸ 所属 : クラスメソッド株式会社 アライアンス事業部 エンジニアG ◦ DevOpsソリューション

    ◦ Google Cloud ▸ 前職まで : いわゆるインフラエンジニア ▸ 指向 (芸⾵) : 運⽤‧モニタリング‧SRE ▸ 好きなAWSサービス : Certificate Manager (ACM) Route 53 CloudWatch metric streams ▸ ネタを挟まないと死んじゃう病 渡辺聖剛 (Seigo Watanabe) 2021 APN AWS Top Engineer / ALL AWS Certifications Engineer 2022 APN ALL AWS Certifications Engineer 2023 Japan AWS All Certifications Engineer 2019 Mackerel Ambassador 2023 New Relic Partner Trailblazer https://www.credly.com/users/seigo-watanabe.29d196c2 https://www.credential.net/profile/seigowatanabe992008/wallet 3
  3. 対処 Respond / Resolve 検知 Detect 計測 Measurement 監視(システム監視) https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html

    システムの異常を検知したら それに対処(発報)する (※発報したあとのことは  ここでは不問) “監視とは 情報収集を行った結果に応じて 適切な宛先に発報すること” ———— IPA 非機能要求グレード 2018 04_項目一覧 C.1.3.1「運用監視」 6
  4. ちなみに : 英語の “monitoring” https://www.oxfordlearnersdictionaries.com/definition/english/monitor_2?q=monitoring 対処 Respond / Resolve 検知

    Detect 計測 Measurement 必要な対処が出来るように 継続的に観測‧チェック ➡⽇本語の「監視」と  ニュアンスが異なる “to watch and check something over a period of time in order to see how it develops, so that you can make any necessary changes.” ———— Oxford Learner's Dictionary 7
  5. AWSの「監視」の⼀般的(?)な認識 対処 検知 計測 対象 CloudWatch (CW) AWSリソース OS (on

    EC2) EventBridge アプリケーション RDS Systems Manager AWSリソース X-Ray Performance Insights 10
  6. AWSの「監視」の⼀般的(?)な認識の現実 対処 検知 計測 対象 CloudWatch (CW) EventBridge Systems Manager

    AWSリソース CW Metics CW Metric Math CW Metrics Insights CW Metrics Explorer CW Metric Streams CW Agent CW Synthetics CW RUM CW Logs CW Logs Insights CW Logs Live Tail CW Container Insights CW Lambda Insights CW Contributor Insights for DynamoDB CW Application Insights CW Dashboard CW Alarms CW ServiceLens CW Resource Health CW Internet Monitor CW anomaly detection CW Evidently Explorer OpsCenter Incident Manager Automation Change Manager : Lambda EC2 - Auto Scaling - AutoRecovery SNS Chatbot : X-Ray Service map Trace Insights Analytics AWSリソース OS (on EC2) アプリケーション RDS Performance Insights 11
  7. 凡例 アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知 計測 対象

    計測対象 リソース Trace Log 収集 Metrics Profile API エージェント 計測した データの保存 収集した データの 算術・統計 計測データの 分析・可視化 計測結果を トリガーに した処理 計測値‧変化値(数値) ⾮構造データ(テキストデータ) 分散トレーシング アプリケーションプロファイリング どのようにして データを収集す るか? 計測したデータ をどこに蓄える か? 収集したデータ に対して加える 処理 計測データの可 視化や分析 14
  8. ELB (ALB) - EC2 - RDS アクション 加⼯‧分析‧可視化 変換 蓄積

    データソース 対処 検知 計測 対象 ELB EC2 RDS OS アプリ 収集 Metrics Log Metrics Metrics Log CW API S3 API CloudWatch (CW) S3 Metrics Log CW Agent X-Ray Agent Trace Log CW Logs CW - Dashboard - Metrics Insights - Anomaly Detection - Resource Health Athena QuickSight CW Alarm CodeGuru Profiler DevOps Guru CW Logs Insights Metrics CodeGuru Profiler Agent Profile EC2 Auto Recovery AutoScaling Systems Manager Route 53 failover CW Logs Console/Live Tail/ subscription filter Performance Insights Compute Optimizer CW Metric Math CW Logs Insights CLI / SDK X-Ray X-Ray Service map/Trace/ Insights/Analytics AWS Lambda : CW Logs subscription Kinesis Data Firehose 15
  9. うち CloudWatch‧X-Ray‧Performance Insights アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知

    計測 対象 ELB Metrics Log EC2 Metrics RDS Metrics Log CW API S3 API CloudWatch (CW) S3 OS Metrics Log CW Agent X-Ray Agent アプリ Trace Log 収集 CW Logs CW - Dashboard - Metrics Insights - Anomaly Detection - Resource Health Athena QuickSight CW Alarm CodeGuru Profiler DevOps Guru CW Logs Insights Metrics CodeGuru Profiler Agent Profile EC2 Auto Recovery AutoScaling Systems Manager Route 53 failover CW Logs Console/Live Tail/ subscription filter Performance Insights Compute Optimizer CW Metric Math CW Logs Insights CLI / SDK X-Ray X-Ray Service map/Trace/ Insights/Analytics AWS Lambda : CW Logs subscription Kinesis Data Firehose 16
  10. CloudWatchの新しめ/マイナーな(?)機能 #1 • CloudWatch Anomaly Detection ◦ CWメトリクスの異常値‧異常パターン検出‧アラーム • CloudWatch

    Resource Health ◦ EC2ホストの健全性‧パフォーマンスの⾃動的な可視化 • CloudWatch Logs Live Tail ◦ 収集されたログのリアルタイム表⽰ https://aws.amazon.com/jp/blogs/news/new-amazon-cloudwatch-anomaly-detection/ https://aws.amazon.com/jp/about-aws/whats-new/2021/05/announcing-amazon-cloudwatch-resource-health/ https://aws.amazon.com/jp/blogs/news/announcing-live-tail-feature-for-amazon-cloudwatch-logs/ 17
  11. CW‧X-Ray‧PI以外 アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知 計測 対象

    ELB Metrics Log EC2 Metrics RDS Metrics Log CW API S3 API CloudWatch (CW) S3 OS Metrics Log CW Agent X-Ray Agent アプリ Trace Log 収集 CW Logs CW - Dashboard - Metrics Insights - Anomaly Detection - Resource Health Athena QuickSight CW Alarm CodeGuru Profiler DevOps Guru CW Logs Insights Metrics CodeGuru Profiler Agent Profile EC2 Auto Recovery AutoScaling Systems Manager Route 53 failover CW Logs Console/Live Tail/ subscription filter Performance Insights Compute Optimizer CW Metric Math CW Logs Insights CLI / SDK X-Ray X-Ray Service map/Trace/ Insights/Analytics AWS Lambda : CW Logs subscription Kinesis Data Firehose 18
  12. 新顔 #1 • CodeGuru Profiler ◦ アプリケーションプロファイラ ◦ 姉妹機能として CodeGuru

    Reviewer もあり (こっちは所謂 SAST) • DevOps Guru ◦ CW だけでなく、CloudTrail などの情報も含めて システムの異常動作パターンを総合的に検出 • Compute Optimizer ◦ EC2リソースの過剰/過⼩プロビジョニングの検出 https://aws.amazon.com/jp/codeguru/ https://aws.amazon.com/jp/devops-guru/ https://aws.amazon.com/jp/compute-optimizer/ 19
  13. 余談:X-RayとPerformance Insights CloudWatchに集めていく気配あり? • X-Ray が CW のメニューに統合 (進⾏中) •

    CW Agent が X-Ray トレース情報の収集を サポート (ʻ23/08) • Performance Insights のカウンタ値を CW Metric Math で扱えるように (ʻ23/09) などなど https://dev.classmethod.jp/articles/cloudwatch-agent-opentelemetry-traces-x-ray/ https://dev.classmethod.jp/articles/cloudwatch-metric-math-rds-insights/ 20
  14. API Gateway + AWS Lambda + DynamoDB アクション 加⼯‧分析‧可視化 変換

    蓄積 データソース 対処 検知 計測 対象 収集 API Gateway Metrics Log アプリ Trace Log Metrics Profile Lambda Step Functions Metrics Log DynamoDB Metrics CW API X-Ray SDK CodeGuru Profiler Agent CloudWatch (CW) CW Logs CW - Metrics Insights - Dashboard - Anomaly Detection - Resource Health CW Alarm CodeGuru Profiler DevOps Guru CW Logs Insights Systems Manager CW Logs Console/Live Tail/ subscription filter CW Contributor Insights for DynamoDB Compute Optimizer X-Ray X-Ray Service map/Trace/ Insights/Analytics AWS Lambda : Kinesis Data Firehose CW Logs API CW Lambda Insights CW Metric Math CW Logs Insights CW Logs subscription 21
  15. 新顔 #2 • CloudWatch Lambda Insights ◦ ランタイムパフォーマンスメトリクスとログを 収集および集計 •

    CloudWatch Contributor Insights for DynamoDB ◦ 頻繁にアクセスされるキーなどを特定 https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/contributorinsights.html https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/monitoring-insights.html 22
  16. k8s / コンテナベースアプリケーション アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知

    計測 対象 収集 ECS Metrics Log EKS Metrics Log FluentD Fluent Bit FireLens アプリ Trace Log Metrics Profile CW API X-Ray SDK CodeGuru Profiler Agent CloudWatch (CW) CW Logs CW - Metrics Insights - Dashboard - Anomaly Detection - Resource Health CodeGuru Profiler DevOps Guru CW Logs Insights CW Logs Console/Live Tail/ subscription filter X-Ray X-Ray Service map/Trace/ Insights/Analytics CW Logs API CW Container Insight CW Metric Math CW Logs Insights CW Logs subscription CW Alarm Systems Manager AWS Lambda : Kinesis Data Firehose 23
  17. 新顔 #3 • FireLens for Amazon ECS ◦ FluentD /

    Fluent Bit からのログをルーティング • CloudWatch Container Insight ◦ コンテナ化されたアプリケーションとマイクロサービスの メトリクスとログを収集、集計 https://aws.amazon.com/jp/blogs/news/under-the-hood-firelens-for-amazon-ecs-tasks/ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/ContainerInsights.html 24
  18. アプリケーション‧フロントエンド クライアントサイド アプリケーション アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知

    計測 対象 収集 ネットワーク NLB/VPC (passive) CW RUM CW Internet Monitoring サーバーサイド アプリケーション CW Synthetics A/B テスト CW Evidently CW Alarm EC2 Auto Recovery AutoScaling Systems Manager Route 53 failover AWS Lambda : Kinesis Data Firehose Route 53 healthcheck CloudWatch (CW) CW Logs CW - Metrics Insights - Dashboard - Anomaly Detection - Resource Health CW Logs Insights CW Logs Console/Live Tail/ subscription filter CW Metric Math CW Logs Insights CW Logs subscription Kinesis Data Firehose S3 Athena QuickSight X-Ray X-Ray Service map/Trace/ Insights/Analytics Route 53 ARC 25
  19. CloudWatchの新しめ/マイナーな(?)機能 #2 • CloudWatch RUM (Real User Monitoring) ◦ ブラウザ上で動作するクライアントアプリケーションのためのAPM

    • CloudWatch Synthetics ◦ サーバーアプリケーションに対する定期的な合成監視 • CloudWatch Evidently ◦ アプリケーションのA/Bテスト • CloudWatch Internet Monitoring ◦ AWS上を流れるトラフィックを受動的に解析し健全性を可視化 https://aws.amazon.com/jp/blogs/news/cloudwatch-rum/ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html https://aws.amazon.com/jp/blogs/news/cloudwatch-evidently/ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-inside-internet-monitor.html 26
  20. 新顔 #4 • Route 53 healthcheck ◦ エンドポイントやCWメトリクスに対するヘルスチェック • Route

    53 ARC (Application Recovery Controller) ◦ マルチAZ / マルチリージョンのアプリケーションに対する 障害からのリカバリ⽀援 https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/health-checks-types.html https://dev.classmethod.jp/articles/route-53-application-recovery-controller-ga/ 27
  21. インフラストラクチャ‧その他 CloudFront Metrics Log Route 53 Metrics Log アクション 加⼯‧分析‧可視化

    変換 蓄積 データソース 対処 検知 計測 対象 収集 S3 API QuickSight Systems Manager AWS Lambda : コスト・請求まわり CW API CloudWatch (CW) CW - Dashboard - Metrics Insights - Anomaly Detection - Resource Health CW Metric Math Billing API Cost Explorer VPCフローログ CW Logs CW Logs Insights CW Logs Console/Live Tail/ subscription filter CW Logs API CW Logs Insights CW Logs subscription S3 Athena 28
  22. 新顔 #5 • AWS Billing ◦ Cost Explorer で可視化 ◦

    CUR (コスト使⽤状況レポート) ファイルを S3 や QuickSight に ※従量課⾦ x 円安のいま、コスト管理は重要! https://aws.amazon.com/jp/aws-cost-management/aws-billing/ https://dev.classmethod.jp/articles/quicksight-cur/ 29
  23. まとめられます 複数のAWSアカウント‧リージョンのモニタリングを1ヶ所で • Cross-account cross-Region CloudWatch console ◦ メトリクス ◦

    ダッシュボード ◦ アラート • CloudWatch cross-account observability ◦ CloudWatchメトリクス ◦ CloudWatch Logs ◦ X-Rayトレース https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html 31
  24. ここまでのまとめ • AWS の特⻑「(とにかく)⼤量の選択肢」 ◦ 「あれが欲しい」という機能も、探してみると案外⾒つかる • 機能セットや UI が整理されているか、というと...

    ◦ CloudWatch に寄せていこう、という動きは⾒られる ▪ X-Ray、Performance Insights など • CloudWatch 以外にも監視‧分析に使える機能は多い ◦ Management ではなく Development などに分類 ◦ CW では⾒れない情報の可視化に • AWS 名物(?)「ピタゴラスイッチ」 ◦ AWS のリソースを組み合わせると いろいろなことが「出来てしまう」 ◦ QuickSight は万能のダッシュボードツール 32
  25. 「出来てしまう」の例 • AWS Health Events Intelligence Dashboards and Insights •

    SIEM on Amazon OpenSearch Service • Cloud Intelligence Dashboards S3やOpensearch Serviceに溜まった計測データを QuickSightで可視化するCFn/CDKテンプレート https://aws.amazon.com/jp/blogs/mt/aws-health-events-intelligence-dashboards-insights/ https://github.com/aws-samples/siem-on-amazon-opensearch-service/blob/main/README_ja.md 33
  26. AWS Health Events Intelligence Dashboards and Insights AWS Healthイベントの可視化 •

    メンテナンス通知 • リタイアメント などなど https://aws.amazon.com/jp/blogs/mt/aws-health-events-intelligence-dashboards-insights/ 34
  27. そんなこともあろうかと by AWS • Amazon Managed Services for Prometheus (AMP)

    • Amazon Managed Grafana (AMG) • Amazon Distribution for OpenTelemetry (ADOT) • CloudWatch Metric Streams 39
  28. AMP‧AMG OSS として実績のある Prometheus と Grafana の AWS マネージド版 •

    ⾼可⽤性 • AWS リソースとの連携 ◦ AMG は CW メトリクスを 受信可能 • 特にコンテナ (k8s) 監視 ‧IoT 監視と相性よし https://aws.amazon.com/jp/prometheus/ https://aws.amazon.com/jp/grafana/ 41 Amazon Managed Services for Prometheus Amazon Managed Grafana
  29. ADOT AWS による OpenTelemetry コレクタの ディストリビューション • CNCF による統⼀規格の実装 •

    計装部分のオープン化 多様性の確保 https://aws-otel.github.io/ 42 Amazon Distribution for OpenTelemetry
  30. CW Metric Streams CloudWatch に送信されたメトリクス情報を Kinesis Data Firehose へストリーミング送信する機能 •

    データレイクへ送信‧保管 (S3, Redshift) ◦ ⻑期保存や独⾃の分析ダッシュボード作成に • AWS 外部( SaaS 製品)へ送信 ◦ パートナーサービス(New Relic, Datadog, Splunk ...) ◦ カスタムHTTPエンドポイント 44
  31. e.g. New Relic (NR) アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処

    検知 計測 対象 収集 CW Metric Streams EventBridge Webhook メール チャット 他製品 Systems Manager AWS Lambda : Kinesis Data Firehose NR Browser / Mobile OS アプリ AWS リソース Metrics Log クライアントサイド アプリケーション サーバーサイド アプリケーション コスト・請求まわり Metrics Log Trace Log Metrics Profile SCA VPCフローログ 変更管理 NR APM Agent/SDK NR Infrastructure Agent NR Synthetics New Relic NRDB NRQL Explorer Dashboard AIOps 46 ※コンテナ/k8sまわりや  開発支援、NW監視など  一部省略 NerdGraph
  32. まとめ • AWS には、運⽤‧監視に役⽴つ機能が⼤量にある ◦ CloudWatch だけじゃない! ◦ やりたいことは (たいてい)「出来てしまう」

    ◦ それらの機能が運⽤の助けになるかも! ▪ 現時点では、サービスレベル監視機能は標準で⽤意されていない (ある意味仕⽅ないけど再来⽉に期待) • カオスになる前に代替案の検討を ◦ 可観測性 (o11y) と DevOps の鉄則「サイロを無くす」 ◦ 持続可能性の⾼い⽅法を選択していきましょう!
  33. 成功させるには “短距離⾛ではなく、マラソンである” “Remember: it's a marathon, not a sprint” 49

    https://cloud.google.com/blog/ja/products/gcp/sre-success-starts-with-getting-leadership-on-board