Load to Professional...

AWSエンジニアの日常。地に足をつける。

【ハンズオン参加レポ】「AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる はじめての可観測性」に参加しました

f:id:oni_rb:20210529232414p:plain

初めに

今日はAWSエバンジェリストシリーズの「はじめての可観測性」というハンズオンに参加してきました。

awsbasics.connpass.com

例のごとく、メモをもとに参加レポートを書いてみました。

いきなりまとめ

  • 可観測性とは?を知った
  • New Relicについての概要を学んだ
  • AWSにおける可観測性をハンズオン形式で学んだ

New Relicさんのお話

Speaker:New Relic 清水さん

ゴール

  • 可観測性とは?を学べる
  • New Relicを知る
  • クラウド可観測性を学べる
  • すぐクラウド可観測性を初められる

Spaker紹介

  • Eコマースの会社(Works Applications)→AWS→New Relicの経歴
    • なぜNew Relicなのか?
      • 運用をサポートしたい
      • みんながやりたいことは監視ではなく、本業に集中したい
  • New RelicとAWSの関係:深い
    • AWS-New RelicでPixieというOSSを共同開発
      • Pixieとは?
        • Kubenetesの可視化をするOSS
        • Pixieの可視化をNew Relicでできるよ

可観測性ってなに?

  • 監視って何?
    • 旧来はサーバ自体の監視
      • サーバ監視だけだとうまく行かないことが多い
      • サーバの状態からMWの状態をなんとか追うことはできるが、、、
    • 現代はより複雑化
      • 本当に解決したいことは問題は、サーバの監視だけじゃわからないよね
    • 可観測性=常にシステム全容の状態把握と改善ができる状態  f:id:oni_rb:20210529222046p:plain
      • オブザーバビリティの範囲:広い   f:id:oni_rb:20210529222141p:plain
        • 全部見ることはできるが、広すぎる
        • インフラだけじゃなくてビジネスも全部見れる    f:id:oni_rb:20210529222208p:plain
          • New Relic オブザーバビリティプラットフォーム
          • フロントからエンドまで全てを観測
            • 全レイヤーで可視化できる
  • クラウドオブザーバビリティの今とNew Relic

    New Relicの公式ページ:https://newrelic.com/jp/platform

    • AWS運用ではいろんな問題が出る
      • 障害対応、ツール間連携など様々   f:id:oni_rb:20210529222245p:plain
        • New Relicは、全てのホストを監視対象にすることが可能
          • ホスト単位の課金じゃない

            →気軽に監視対象にできる(開発環境含む)

          • 監視ダッシュボードを一元化できる

        • 障害や性能劣化に対し、一気通貫でログを追跡できる    f:id:oni_rb:20210529222336p:plain
        • X-ray&Lambda連携で数クリックでユーザ体験をチェックできる
        • ノーコードでEKS監視も可能    f:id:oni_rb:20210529222402p:plain
        • AIを利用したログ基盤
          • 多いログの傾向はもちろん、少ないログの傾向分析もできる

デモ

  • 複数アカウントのCloudwatchの監視を一元で可能
  • 視覚的にCPUが上がったホスト、メモリ使用率が上がったホストを確認できる
  • モバイル用のAPIでどのURLでエラー率が上がったか、まで追跡できる
  • エラー毎にチケット管理できて、担当者も設定できる
  • フリートライアル:1ユーザ100GBまで無料

質問

  • オンプレ、クラウドのハイブリッドでもダッシュボード一元管理できる?
    • もちろんできますよ、ハイブリッド、マイグレーションどちらもできる
    • 移行中にも導入できるので、移行中の監視も可能

ここまでの感想

  • 一元化したダッシュボードが直感的で見やすい
  • AWS以外のパブリッククラウドはもちろん、マルチクラウドみたいな場面で活躍
    • AWS単体でもOrganizationを使用した複数アカウントの統合管理で役立つ
    • マルチクラウドや多彩なインフラ、アプリを駆使した複雑な環境で強みを発揮しそうだな、と思った
  • なによりも、清水さんの発表が熱かった
    • 製品に対する想いがすごく伝わった

ハンズオン

Speaker: AWS 亀田さん

目的

CFnやCDKを使用し可観測性のあるEKS環境を構築し、CloudWatch、X-Ray等のサービスを使用して構築したシステムの状態を監視する

事前準備

  1. CFnでCloud9環境を構築

    参考:https://github.com/harunobukameda/Observability

    • Cloud9はデフォルトで10GBのEBSを作成するが、今回のCFnでは30GBへリサイズを行う
  2. Cloud9環境で構築する
    • CDKをBootstrapする
    • EKS環境を構築する

本題

  1. CloudWatch ServiceLens
    • サービスレンズの実態はX-Layらしい
    • 作成した環境のサービスマップが確認できる  f:id:oni_rb:20210529223352p:plain
      • 各サービスを選択すると、稼働状態を表すダッシュボードが確認できる
      • サービス毎に線でつながっているが、これは別のECSで各サービスにリクエストを送理続けていることでリクエストが発生し続けている
      • 各サービスのトレースを確認できる   f:id:oni_rb:20210529223521p:plain
        • トレースの絞り込みやトレース内のセグメントのタイムラインも視覚的に確認できる
  2. X-ray

    • 遅延やエラーを視覚的に判断できる(色や円の大きさ)  f:id:oni_rb:20210529223649p:plain
    • トレース
      • サービスマップからトレースの内容を表示させる   f:id:oni_rb:20210529224700p:plain   f:id:oni_rb:20210529224728p:plain
        • エラーが発生していた場合、エラーの詳細も確認できる    f:id:oni_rb:20210529224849p:plain
        • APIコールの内容も確認できる     f:id:oni_rb:20210529224924p:plain
    • アナリティクス
      • どのURLで遅延が発生しているか?を確認できる   f:id:oni_rb:20210529225015p:plain
  3. CloudWatch Contributor Insights

    • DynamoDBの特定のテーブルに対し、update-contributor-insightsを有効化するとDynamoDBに対して何が負荷を与えているか、の統計がとれるようになる。
      • CloudWatchからどのパーティションキー・ソートキーが負荷を与えているか、を確認できる   f:id:oni_rb:20210529225629p:plain
      • DynamoDBのマネコンの「投稿者のインサイト」からも同じグラフを確認できる   f:id:oni_rb:20210529225610p:plain
      • カスタムルールも作ることができる(画面ではAPI-GatewayのURLを指定し作成)   f:id:oni_rb:20210529225553p:plain
  4. CloudWatch Synthetics

    • Syntheticsは外形監視、外部URLの監視に使用する。
      • 今回は、テストで作成したサイトのURLを外形監視するように設定した(Canaryを作成)
        • 作成したCanaryから下記の情報が確認できた
          • URLリクエストのStep     f:id:oni_rb:20210529225740p:plain
          • HTTPアクセス時のスクリーンショット      f:id:oni_rb:20210529225832p:plain
          • HTTPリクエストログ     f:id:oni_rb:20210529225805p:plain

            • スクリーンショットなど手動テストしたときに限りなく近いものが確認できる!

            • むしろ手でやったときより詳細(URL実行時、リクエスト成功時など)

          • HARファイル      f:id:oni_rb:20210529225916p:plain

            • HARファイルってChromeのF12で出るjsのレスポンス時間とか出るあれだ、、、ってなった
  5. CloudWatch Container Insights

    • 確認する対象のコンテナを選択し、監視対象に追加すると下記が確認できる
      • クラスター毎の稼働状態
      • 今回構築した環境のコンテナ全体像マップ   f:id:oni_rb:20210529230150p:plain
  6. CloudWatch Lambda Insights

    • Lambda関数全体の実行状態をグラフで確認できる  f:id:oni_rb:20210529230136p:plain
    • 画面下部の詳細のTraceからLambdaのメモリ使用率が確認できる  f:id:oni_rb:20210529230305p:plain
      • メモリ使用率が100%を超えているのはメモリ不足でキャッシュしているから?(説明聞きそびれました。。)
  7. CloudWatch Anomaly Detection

ハンズオンの感想

  • X-rayについて直感的に理解できた
    • SysOps Administratorの試験で概要は知っていたが、ハンズオン形式で体験したのは今回が初めてで、視覚的に理解が深まった
  • 使ったことがなかったCloudWatchの機能を学べた
    • CloudWatchは基本的な機能(メトリクス、logs、Event)しか扱ったことがなかったので、サービス全体を体験でき、概要を掴むことができた

全体の感想

  • New Relicさんのプレゼンを通じて、可観測性について理解が深まった

  • ハンズオンでは、普段のハンズオンや環境構築では、とりあえず詳細モニタリング有効にしておく、とかCloudWatchAgent入れておく、とかくらいで、CloudWatchのサービス全般を使ってみたことはなかったのでかなりいい経験になった。

  • エバンジェリストシリーズに初めて参加したが、「はじめての」とついている割に濃密なハンズオンで自分にとって負荷も高かったが、終わってみれば良いストレスだった。

以上