【AWS Summit Japan 2022】AWS の Observability(可観測性) の全体像 〜 Amazon CloudWatch とオープンソースの活⽤〜(AWS-21)

AWS

2022.6.1

Topics

こんにちは、yasujunです。
AWS上でサービスを扱う以上、避けることのできない運用面を学びたかったので、5月26日に開催された「AWS の Observability(可観測性) の全体像 〜 Amazon CloudWatch とオープンソースの活⽤〜」のセッションを視聴しましたので、学んだことのアウトプットも兼ねて記事を書いてみようと思いました。

セッション概要

タイトル

【AWS Summit Japan 2022】AWS の Observability(可観測性) の全体像 〜 Amazon CloudWatch とオープンソースの活⽤〜(AWS-21)

スピーカー

AWS 技術統括本部 ソリューションアーキテクト 津和﨑 美希様

概要

システムのモダナイゼーションが進み、マイクロサービスやマルチアカウントといった、従来になかったシステム構成の運用に取り組まれるお客様が増えてきました。 本セッションでは、AWSにおける最新の Observability(可観測性)を実現するアーキテクチャの全体像をご紹介します。Amazon CloudWatch だけでなく、オープンソースソフトウェア、SaaS、そして運用にインテリジェンスをもたらす機械学習サービスなど、Observability 実現の選択肢についてご紹介いたします。

レポート

発表内容

  • AWSにおける可観測性
  • Amazon CloudWatchにおける可観測性の選択肢
  • オープンソース・SaaSも含めた可観測性の選択肢
  • DevOps全体に広がる可観測性と機械学習活用

見てほしい人

  • AWSを使用されるすべての人
  • その中でも、AWSでのシステム運用に関わる人

可観測性とは何か?

  • システムの全体像が把握できている状態
  • システムを運用する上で、判断に必要な情報が取得できている状態
    この2つを指すようです。
    要するにシステムを運用する上で、「どんな構成図か?」「どんなフローか?」「運用中に変更を加えるうえで必要な情報がそろっているか?」が確認できる状態にあるかどうかを指す言葉かと思います。

可観測性はどんな場面で役立つか?

  • アプリ・インフラ監視
  • データの可視化
  • 監視した中で傾向を見つけて課題の関連性を知る・探る
  • アクセス数が急激に増加した場合に備えてアプリ側とインフラ側で連携が取りやすくなる
  • 開発者が知ることで今後の開発に役立つ知識が得られる
  • 復元性の高いアプリを構築する
  • 既存のサードパーティツールとの統合
  • 現実のユーザ体験を定量化する

AWSでの可観測の全体像

Amazon CloudWatchやAWS X-Rayでサービスのメトリクスを検知
可視化や監視で有名なOSSのGrafanaやPrometheusなどをマネージドサービス化させたAmazon Managed GrafanaやAmazon Managed Service for Prometheusを使ってメトリクスをもとに可視化

クラウドネイティブな可観測性の活用例

  • 経営者
    • KPIの状況を確認したい
      • AWS X-Ray
        マイクロサービスの健全性・パフォーマンス・可用性の視覚化と分析をAWS X-Rayと連携して確認できる
        API・AWSサービスごとのレイテンシをブレイクダウンとして表示できる
  • 開発者
    • マイクロサービスのトラブルシュートがしたい
      • Amazon CloudWatch ServiceLens
        マイクロサービスの健全性・パフォーマンス・可用性の視覚化と分析をAWS x-Rayと連携して確認できる
  • インフラエンジニア
    • ネットワークのアクセス状況を確認したい
      • Amazon CloudWatch Logs Insights
        UDP接続に絞って、SourceIPごとのアクセス数を見える化する

Amazon CloudWatch RUM(Real-User Monitoring)

エンドユーザーが感じるメトリクスを可視化させるためのツール

  • リアルユーザーのパフォーマンスをモニタし、ブラウザやデバイスの種類、物理的ロケーション、ネットワークの接続性の問題を把握できる
    • ダッシュボードでページの読み込み順序やjs/httpレスポンスのエラーなどパフォーマンス問題に関する情報を可視化
    • 同じ問題の影響下にあるユーザセッション数を提示するため、改修の優先順位を付けることが容易
    • Amazon CloudWatch ServiceLens、AWS X-Rayと組み合わせるとクライアント・サーバサイドの相関関係トレースも実現できる

Amazon CloudWatch Evidently

  • 機能変更・リリース時に、データに基づいた良否の判断を可能に
  • A/Bテストやフィーチャーフラグといった手法でどちらの選択肢が望ましいか検証する際に、ユーザの挙動をモニタリングするサービス
  • A/Bテストやフィーチャーフラグで検証を行う際に、データに基づいた判断を支援し、開発者が新機能を安全に評価できる
  • トラフィックをコントロールするスケジュール機能や、問題発生時にロールバックするアラーム機能を備える
  • Amazon CloudWatch RUMと統合されており、RUMのメトリクスを利用可能

Amazon CloudWatch Agentの新機能(2022/2)

よくあるお悩みとして
Amazon CloudWatchにログを集約したいが、ログ出力が膨大で料金が心配

解決策として出されたのが
Amazon CloudWatch Agentのログフィルタ式のサポートで、指定した条件を満たすログイベントのみを収集可能になった

このログフィルタ式のサポートで出力するログの量を減らすことで料金の節約に繋がるようになった

オープンソース・SaaSも含めた可観測性の選択肢

監視のオープンソースがAWSで利用可能になっている
例として、Grafana、Cortex、Splunk、DATADOG等がサポートされている

機会学習を用いた可観測性の例

  • CodeGuru Reviewer Secrets Detector
    • ソースコードや設定ファイル内に機密情報の埋め込みを検知
      これにより、ソースコードや設定ファイルを公開できる形で送ってしまった際のヒューマンエラーが低減されそうです。
  • Amazon DevOps Guru for RDS
    • 機械学習を用いてRDSに関する性能問題の検知と解決策を提示
  • Amazon CloudWatch anomaly detection
    • 機械学習を用いてメトリクスの期待値のモデルを作成しアラームに活用

まとめ

  • ログ・メトリクス・トレースを取得し、可観測性を向上させることで定量的なデータに基づく意思決定に役立つ
  • Amazon CloudWatchなどのマネージドサービスを活用することで、運用負荷の低減や可観測性の実現が可能
  • オープンソースを活用する場合も、マネージドサービスで従来の管理負荷を低減しながら、コミュニティのノウハウも取り入れられる
  • 機械学習を用いることで、DevOpsの様々な場面での人力での作業・判断を低減できる

感想

視聴前は、可観測性による意思決定はインフラエンジニアだけが関係するものと思っていましたが、Amazon CloudWatch RUMやCloudWatch Dashboardsを活用することで、経営者や開発者の意思決定にも役立つ情報を取得できるので、この可観測性という観点はインフラだけではなく、様々な視点で役に立つということが新しい気付きとして得られました。

yasujun

インフラの勉強と趣味の武道をバランス良く両立していきたいエンジニアです。 よろしくお願いいたします!

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら