JAWS-UG SRE支部#6でお話させていただいた資料です
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Mitsuaki TsugoSolution ArchitectsAmazon Web Service Japan G.K.「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用J A W S - U G S R E 支 部 # 6 2 0 2 3 / 5 / 2 9
View Slide
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.自己紹介津郷 光明 (Mitsuaki Tsugo)エンタープライズ技術本部ソリューションアーキテクト運用&DevOps系サービスの推進Observability / IaC
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Site Reliability Engineering「(ソフトウェア)エンジニアリングで運用を改善する」
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Site Reliability Engineeringサービスの可用性、レイテンシ、パフォーマンス、効率性、変更管理、モニタリング、緊急対応、キャパシティプランニング…
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 5サービスの信頼性・品質に責任を持つ
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.なぜモニタリング・オブザーバビリティが必要か• 状態を把握することができ、共通理解を得られる・判断につながる• サービスの利用状況は?ユーザビリティ(障害、レイテンシー、機能充足)は?• 障害の検知、対応の効率化につながる• 障害点の把握、原因の特定、傾向の分析と対処• 特定の状態をパターン化することができ、自動化につながる• 可用性の低下、高いレイテンシー、キューの滞留• チームのリソースをより高度なタスクに活用し、サービスをより早く改善
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.サービス状態や実際の利用状況をモニタリングする障害の把握や性能改善、機能改善につながる洞察を得るHWOSMWApplicationClient/FrontInternetNWモニタリング対象
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.サービス状態や実際の利用状況をモニタリングする障害の把握や性能改善、機能改善につながる洞察を得るインフラに限定せずアプリケーションまで含めてサービスを“総合的に”評価する必要があるHWOSMWApplicationClient/FrontHWOSMWApplicationClient/FrontInternet InternetNW NWモニタリング対象
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Amazon CloudWatchでサービスを総合的にモニタリングInfrastructure Application MonitoringInsightsコンソールからのメニューで19機能︕AWSサービス名 概要CloudWatch Metrics メトリクスCloudWatch Log ログCloudWatch Alarm アラームCloudWatch Dashboard ダッシュボードCloudWatch Metrics Explorer メトリックス検索CloudWatch Metrics Stream メトリックスのリアルタイム連携CloudWatch Events※Event Bridgeに統合イベントCloudWatch Resource Health EC2の健全性・パフォーマンス可視化AWSサービス名 概要CloudWatch Synthetics 外形監視CloudWatch RUM リアルユーザーモニタリングCloudWatch Evidently フィーチャーフラグA/BテストCloudWatch Internet Monitor インターネット監視CloudWatch ServiceLens トレースAWSサービス名 概要CloudWatch Contributor Insights ログの時系列分析CloudWatch Container Insights コンテナ分析CloudWatch Lambda Insights Lambda分析CloudWatch Application Insights アプリケーション分析CloudWatch Logs Insights LOG分析CloudWatch Metrics Insights メトリクス分析
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリング・オブザーバビリティの機能を網羅的に提供[アラーム]CW Alarms[イベント][メトリクス]CW Metrics[ログ]CW Logs[ログ分析]CW Logs Insights[統合]CW Dashboardsメトリクスを送信ログを送信メトリクスに応じたアクションログの可視化イベントに応じたターゲットによる処理[タグベースの視覚化]CW Metrics ExplorerAmazon KinesisData Firehose[メトリクスストリーム]CW Metrics StreamAmazon EventBridge/Amazon EventBridgeScheduler ※CW = CloudWatchAWSサービスオンプレミス/EC2CW AgentCW Metrics InsightInsightsApplication Monitoring[構造化ログによるメトリクス]CW Container Insights / Contributor Insights[Lambda拡張機能によるメトリクス]Lambda Insights[アプリケーションコンポーネントのメトリクス]Application Insights[外形監視]CW Synthetics[リアルユーザーモニタリング]CW RUM[フィーチャーフラグA/Bテスト]CW Evidently[インターネット監視]CW Internet Monitor[トレース]CW ServiceLens[ダッシュボードに統合]CW Dashboardメトリクスの可視化パートナーサービス、S3/RedshiftInfrastructure
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.サービスの品質・信頼性にむけてモニタリングすべき対象絶対の解はない11ビジネス要件やシステムによって千差万別本日はあくまで一例をご紹介
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ12ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ13ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.サービスを提供する側から見た正常性確認14サービス状態を提供側の環境から継続的にテストし、提供するサービスの品質・信頼性をモニタリングするInternetモニタリング範囲ユーザー/クライアント サービスプロバイダ
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch SyntheticsCanary を使用し、24時間365日、ユーザー体験を模擬した継続的な監視ウェブサイトおよび APIのエンドポイント監視クライアントサイドからサーバーサイドへ継続的なモニタリングCloudWatchSynthetics CloudWatch MetricsAmazon EventBridgeAWS X-Ray tracesカスタムアクションLambda(Provisionedcanary)S3(HAR、スクリーンショット)CloudWatchLogs
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Canary Blueprint166 種類の Blueprint が用意されており、基本的な用途であればコーディング不要No. Blueprint 特徴1 ハートビートのモニタリング 指定した URL にアクセスして、ページのスクリーンショットと HTTP アーカイブファイル (HAR ファイル) を保存2 API Canary REST API に対してリクエストを送信して、応答をテスト3 リンク切れチェッカー テスト対象のURL内のすべてのリンクを収集し、リンク切れがないかテスト4 Canary レコーダーGoogle Chrome の拡張機能である CloudWatch Synthetics Recorder を利用して、ユーザ操作を記録し、テスト5 GUI ワークフロービルダーWeb サイト上のユーザ操作ができるかを GUI ベースで作成してテスト6 ビジュアルモニタリングWeb サイトの表示が変化していないかをベースラインと比較し、テストCanary 設計図の使用https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Blueprints.html
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ17ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.サービスにおける障害点・ボトルネックの特定18障害原因の特定やパフォーマンスボトルネック特定は難しい一方で、サービス全体の性能・品質に影響を与える可能性があるServiceAServiceDServiceBServiceFServiceCServiceEServiceG
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch ServiceLensAWS X-Rayと連動することでサービス間の依存関係やレイテンシ、レスポンス状態について視覚的に把握することが可能参考:AWS X-Ray BlackBelthttps://www.youtube.com/watch?v=biYBazxFwxk&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=28Service mapでノードとメトリクスを関連付けて確認 Service mapでトレースの詳細を見るService mapでレスポンスタイムをチェック
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ20ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.インターネットが与える影響を確認する21モニタリング範囲Internetユーザー/クライアント サービスプロバイダインターネットの影響をモニタリングし、ユーザーのエクスペリエンスを向上する活動に役立てる
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch Internet Monitor• AWS 上のアプリケーションに対してインターネットからアクセスした際の可用性とパフォーマンスメトリクスをCloudWatch で可視化可能に• ユーザから見た場合の可用性と性能をチェックできる• AWS のグローバルネットワークから取得した接続データに基づきモニタリング。問題がある場合はその影響や場所、プロバイダーなどを可視化し、改善アクションを起こしやすくする• 例えば「概ね正常だがラスベガスからアクセスしているユーザはパフォーマンスが落ちている」といった状況が検出できる• VPC フローログや CloudFront ログの有効化は不要• 2023/02/28に一般提供開始顧客が利用するアプリケーションをホストする、VPC /CloudFront ディストリビューション/WorkSpacesディレクトリを選択インターネットの問題がパフォーマンスや可用性にどのように影響しているかを可視化
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ23ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.ユーザー視点でのレイテンシー、エラー24実際のユーザーの利用状況およびデータをモニタリングすることで環境差異による影響や想定していない問題の早期発見、改善検討につながるモニタリング範囲Internetユーザー/クライアント サービスプロバイダ
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch RUM(リアルタイムユーザーモニタリング)アプリのパフォーマンスに関するクライアントサイドのデータをリアルタイムで取得• ダッシュボードでページの読み込み順序やJavaScript / HTTP レスポンスのエラーなど、パフォーマンス問題に関する情報を可視化• 同じ問題の影響下にあるユーザセッション数を提⽰するため、改修の優先順位を付けることが容易• html ヘッダーにコードスニペットを挿入することで、クライアントサイドのパフォーマンスメトリクスをCloudWatch RUMに送信• Amazon CloudWatch ServiceLens、AWSX-Ray と組み合わせることも可能
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch RUMカテゴリ 主な情報Performance(パフォーマンス)ページのロード回数 ページロード時間(「⽇付・24時間別」グラフあり)エラー数 Webバイタルリソースリクエスト 経時的なページロードのステップアクセス元の地域/国Errors (エラー) エラー数と時間 エラーが発⽣したセッション数Sessions (セッション) 平均セッション⻑さ セッションあたりのエラー数Events (イベント) イベント数とイベント詳細Browser & Devices(ブラウザとデバイス)アクセスブラウザ種別内訳 ブラウザ別平均ページロード時間ブラウザ別のスループット(ページロード数/分)User Journey(ユーザージャーニー)ユーザーパス遷移とドロップオフ数Apdex(参考)(ユーザー満⾜度指標)Web バイタルデータをはじめ、Webブラウザ統計 や ユーザー挙動の可視化・分析のためのダッシュボードを提供https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-apdex.html
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.モニタリングの例)サービスの品質・信頼性の積み上げ27ユーザー/クライアントサービスプロバイダ通信経路提供サービスの正常性確認• サービス提供のエラー、パフォーマンス• マイクロサービスにおける各サービスの状態ユーザビリティの確認• ユーザー視点でのレイテンシー、エラー• ユーザー影響の詳細な分析通信経路がユーザーに与える影響• インターネットが与える影響スコープを切ってモニタリングし、品質・信頼性を積み上げるスコープ モニタリング観点
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.一歩踏み込んだ品質・信頼性の確認、分析28正常に見えてもユーザー視点で本当に問題がないか、様々な観点で分析を行う必要がある外形監視やリアルタイムユーザーモニタリングでは把握できない粒度で詳細なユーザー影響の分析が重要99.9%問題ない状況でも…ex.1) 特定のユーザーにエラーが偏る ex.2) 正常なレスポンスはレイテンシーが大きいリクエスト数レイテンシー3xx 4xx2xx5xx
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.一歩踏み込んだ品質・信頼性の確認、分析29正常に見えてもユーザー視点で本当に問題がないか、様々な観点で分析を行う必要がある外形監視やリアルタイムユーザーモニタリングでは把握できない粒度で詳細なユーザー影響の分析が重要99.9%問題ない状況でも…ex.1) 特定のユーザーにエラーが偏る ex.2) 正常なレスポンスはレイテンシーが大きいリクエスト数レイテンシー3xx 4xx2xx5xx
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch Contributor Insights• CloudWatch Logs の構造化されたログデータを解析• コントリビューターデータを表示する時系列グラフを作成• 異常値の抽出、最も重いトラフィックパターンの発見、上位のシステム処理に関するランク付けなどを行う• 例1)エラーを最も多く生成する Product Id• 例2)レスポンスタイムが大きいユーザー高カーディナリティなログを解析し、誰あるいは何が、システムやアプリケーションのパフォーマンスに影響を及ぼしているか発見
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Metric Math• METRICS関数、基本的な算術関数をはじめとした関数をサポート• メトリクスに[Id]フィールドを設定し、関数で利用コマンド 説明 例AVG データポイントの平均を表すスカラー メトリクスの平均値:AVG(METRICS())SUM データポイントの合計値を表すスカラー メトリクスm1,m2の合計値:SUM([m1,m2])METRICS CloudWatch メトリクスを表す メトリクスreqall:METRICS(“reqall”)ユースケース全リクエストのうち4XX,5XXレスポンスの割合を表示SUM([METRICS("res4xx"),METRICS("res5xx")])/SUM(METRICS("reqall"))etcCloudWatch メトリクスに数式を使用して、新しいメトリクスを作成
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Contributor Insights × Metric Math何%の顧客に影響があるのかを一目で判断できるリクエストエラーとなったクライアントの割合を算出するINSIGHT_RULE_METRIC(ruleName, metricName) の 関数 (Metric Math) を活用𝐼𝑁𝑆𝐼𝐺𝐻𝑇_𝑅𝑈𝐿𝐸_𝑀𝐸𝑇𝑅𝐼𝐶(𝐸𝑟𝑟𝑜𝑟𝑠𝑃𝑒𝑟Client, 𝑈𝑛𝑖𝑞𝑢𝑒𝐶𝑜𝑛𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑟𝑠)𝐼𝑁𝑆𝐼𝐺𝐻𝑇_𝑅𝑈𝐿𝐸_𝑀𝐸𝑇𝑅𝐼𝐶(𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝑠𝑃𝑒𝑟Client, 𝑈𝑛𝑖𝑞𝑢𝑒𝐶𝑜𝑛𝑡𝑟𝑖𝑏𝑢𝑡𝑜𝑟𝑠)• ruleName: Contributor Insights ルールの名前例)ユーザーごとのエラー数、ユーザーごとのリクエスト数• metricName: データタイプが決まる例)UniqueContributors – 一意のデータ数エラーとなったクライアント数クライアント総数
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.一歩踏み込んだ品質・信頼性の確認、分析33正常に見えてもユーザー視点で本当に問題がないか、様々な観点で分析を行う必要がある外形監視やリアルタイムユーザーモニタリングでは把握できない粒度で詳細なユーザー影響の分析が重要99.9%問題ない状況でも…ex.1) 特定のユーザーにエラーが偏る ex.2) 正常なレスポンスはレイテンシーが大きいリクエスト数レイテンシー3xx 4xx2xx5xx
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.CloudWatch Logs メトリクスフィルタ• ログデータから特定の文字列のフィルタリングが可能• フィルターとパターンの構文で指定できる範囲内で文字列をフィルターが可能• 特定文字列のエントリ頻度等によりアラーム作成、SNS連携が可能• メトリクスにパブリッシュされる値を設定(ERRORが含まれた単純なパターン数を求める時はメトリクス値1を指定)• 一致したログをカウントした値をメトリクスにできる• 定義したパターンに一致した時にCloudWatch Logsのログをフィルタしてメトリクスにパブリッシュ
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.メトリクスフィルタ × Metric Math正常なレスポンスのうちレイテンシの大きかった割合を把握できるメトリクスフィルタによるWebサーバのアクセスログのメトリクス化count ( status_code:200 and 高レイテンシ)count ( status_code:200)メトリクスフィルタ Metric MathWebサーバaccess_log
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.まとめ• SREはサービスの信頼性、品質に責任を持つ• 品質をモニタリングし定量的にサービスの状態を表すことがSREにおいて重要• CloudWatchはシステムを総合的にモニタリングする機能を網羅的に有する• 非機能・機能に跨いでサービスを総合的に把握・分析することが重要であり、CloudWatchの機能を組み合わせることでそれらを実現することができる36
「エンジニアリングで運用を改善する」ためのAmazon CloudWatch活用© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.Thank you!