Slide 1

Slide 1 text

AWS いまどきの監視事情 - CloudWatch のその先に - 渡辺聖剛 2023.10.07 JAWS FESTA 2023 in Kyushu モニタリング

Slide 2

Slide 2 text

NOTICE お話しすること ● AWS の持つ監視 (モニタリング) 機能の紹介 ● その先 お話ししないこと ● 個々の機能の細かい説明 資料は後⽇公開します (「 DevelopersIO 」で検索!) ● 撮影はご⾃由に(周りのひとの迷惑にならない範囲で!) ● その分、情報量は積載超過状態です ← 2

Slide 3

Slide 3 text

⾃⼰紹介 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

Slide 4

Slide 4 text

本⽇お話しする内容は https://www.fujitv.co.jp/bakasemaishi/ 4 Special Thanks クラスメソッド株式会社 JAWS-UG

Slide 5

Slide 5 text

みなさん 監視してますか!(挨拶

Slide 6

Slide 6 text

対処 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

Slide 7

Slide 7 text

ちなみに : 英語の “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

Slide 8

Slide 8 text

AWSで⾔えば?

Slide 9

Slide 9 text

CloudWatch !

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

‧‧‧ ● CloudWatch 多すぎ ● いつ何を使うのかよくわからん ● X-Ray と Performance Insights の他にも あったような? 12

Slide 13

Slide 13 text

ということで ケース別でまとめてみました ⾒逃しあったらごめんなさい

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

うち 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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

新顔 #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

Slide 20

Slide 20 text

余談: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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

新顔 #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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

新顔 #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

Slide 25

Slide 25 text

アプリケーション‧フロントエンド クライアントサイド アプリケーション アクション 加⼯‧分析‧可視化 変換 蓄積 データソース 対処 検知 計測 対象 収集 ネットワーク 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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

新顔 #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

Slide 28

Slide 28 text

インフラストラクチャ‧その他 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

Slide 29

Slide 29 text

新顔 #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

Slide 30

Slide 30 text

ところで CloudWatch、 リージョンごとなのがつらい... ですよね?

Slide 31

Slide 31 text

まとめられます 複数の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

Slide 32

Slide 32 text

ここまでのまとめ ● AWS の特⻑「(とにかく)⼤量の選択肢」 ○ 「あれが欲しい」という機能も、探してみると案外⾒つかる ● 機能セットや UI が整理されているか、というと... ○ CloudWatch に寄せていこう、という動きは⾒られる ■ X-Ray、Performance Insights など ● CloudWatch 以外にも監視‧分析に使える機能は多い ○ Management ではなく Development などに分類 ○ CW では⾒れない情報の可視化に ● AWS 名物(?)「ピタゴラスイッチ」 ○ AWS のリソースを組み合わせると いろいろなことが「出来てしまう」 ○ QuickSight は万能のダッシュボードツール 32

Slide 33

Slide 33 text

「出来てしまう」の例 ● 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

Slide 34

Slide 34 text

AWS Health Events Intelligence Dashboards and Insights AWS Healthイベントの可視化 ● メンテナンス通知 ● リタイアメント などなど https://aws.amazon.com/jp/blogs/mt/aws-health-events-intelligence-dashboards-insights/ 34

Slide 35

Slide 35 text

SIEM on Amazon OpenSearch Service https://github.com/aws-samples/siem-on-amazon-opensearch-service/blob/main/README_ja.md 多くのログを⼀元的に可視化する SIEM アプリケーション GuardDuty / Security Hub / Inspector / CloudTrail / Config / CloudFront / WAF / Route 53 / VPC / Transit Gateway etc ... 35

Slide 36

Slide 36 text

Cloud Intelligence Dashboards AWS W-Aフレームワークに そったコストやKPIなどの ダッシュボード例 https://wellarchitectedlabs.com/cloud-intelligence-dashboards/ https://dev.classmethod.jp/articles/aws-well-architected-labs-dashboard-deploy/ 36

Slide 37

Slide 37 text

‧‧‧

Slide 38

Slide 38 text

(使ってるのは  AWS だけじゃないんだけどな...)

Slide 39

Slide 39 text

そんなこともあろうかと by AWS ● Amazon Managed Services for Prometheus (AMP) ● Amazon Managed Grafana (AMG) ● Amazon Distribution for OpenTelemetry (ADOT) ● CloudWatch Metric Streams 39

Slide 40

Slide 40 text

AWS:選択肢に関する姿勢は伊達じゃない ● モニタリングツールの開発は AWS だけが⾏っているわけ ではない ● 個々のニーズにマッチする モニタリングツールの選択を (AWS re:Invent 2020 Keynote) https://dev.classmethod.jp/articles/202012-report-reinvent-keynote-observability/ 40

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

ADOT AWS による OpenTelemetry コレクタの ディストリビューション ● CNCF による統⼀規格の実装 ● 計装部分のオープン化 多様性の確保 https://aws-otel.github.io/ 42 Amazon Distribution for OpenTelemetry

Slide 43

Slide 43 text

クラウドウォッチ メトリックストリーム!

Slide 44

Slide 44 text

CW Metric Streams CloudWatch に送信されたメトリクス情報を Kinesis Data Firehose へストリーミング送信する機能 ● データレイクへ送信‧保管 (S3, Redshift) ○ ⻑期保存や独⾃の分析ダッシュボード作成に ● AWS 外部( SaaS 製品)へ送信 ○ パートナーサービス(New Relic, Datadog, Splunk ...) ○ カスタムHTTPエンドポイント 44

Slide 45

Slide 45 text

APIポーリングとの⽐較 https://dev.classmethod.jp/articles/202104-breaking-cloudwatch-metric-stream/ 45

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

参考 : SaaS‧マネージドサービスの強み https://forge-vtt.com/features “SaaS を使えば数分で動く仕組みが 手に入り、しかも始めたタイミングから ドキュメントなども手に入ります。” —— Mike Julian 「入門 監視」 47 がんばらなくていい!

Slide 48

Slide 48 text

まとめ ● AWS には、運⽤‧監視に役⽴つ機能が⼤量にある ○ CloudWatch だけじゃない! ○ やりたいことは (たいてい)「出来てしまう」 ○ それらの機能が運⽤の助けになるかも! ■ 現時点では、サービスレベル監視機能は標準で⽤意されていない (ある意味仕⽅ないけど再来⽉に期待) ● カオスになる前に代替案の検討を ○ 可観測性 (o11y) と DevOps の鉄則「サイロを無くす」 ○ 持続可能性の⾼い⽅法を選択していきましょう!

Slide 49

Slide 49 text

成功させるには “短距離⾛ではなく、マラソンである” “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

Slide 50

Slide 50 text

No content