ちょっと話題の記事

[資料公開]「AWSいまどきの監視(モニタリング)事情 -CloudWatchのその先に-」というタイトルで登壇してきました #jawsfesta #jawsug

CloudWatchってマイナーでも便利な機能がたくさんあるし、そもそもAWSのモニタリングってそれだけで完結しない・その先があるんです… JAWS FESTA in Kyushu のメイントラックでそんな話をしてきました。その時の登壇資料を公開します。
2023.10.16

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

さる 10/7 (土) 開催されました JAWS FESTA 2023 in Kyushu、今回こちらのメイントラックにて 20 分お時間を頂いて、標題のタイトルで話してきました。

当日は目測で 40〜50 人前後は集まって頂いたかと思います。本当にありがとうございました!
何名かの方にはその後懇親会でも声をかけて頂き、登壇冥利に尽きます。

本記事ではその資料の公開と、簡単に「どんな話をしたか」を記述したいと思います。

資料

資料はこちらになります。20 分枠なのに 50 枚あるんですが、そういうものだと思って頂けますと幸いです。

以下、簡単にお話しした内容を。

内容

AWS の環視事情

「AWS の環視 (モニタリング)」と言ったら、多くの場合 CloudWatch が最初に思い浮かぶかと思います。が、それだけではない、というのがここで話した主題になります。

そもそも一口に「CloudWatch」といっても、膨大な種類の機能がありますよね?

例えば典型的な Web 3 階層アーキテクチャ、ELB + EC2 + RDS でいえば、環視 (モニタリング) とその分析に使える機能を図にするだけでこうなります。

これで全てではないですからね!

分析で用いられる Insights 系の機能の中には Lambda やコンテナなど、特定の環境に特化したものもありますし、またサービス・アプリケーションをもっと大局的に捉えるための Synthetics や Internet Monitoring といったものもあります。
さらにいうと、直接的にサービスの監視に関わるだけでなく、CloudWatch 自体を使いやすくしたりサポートするための機能もあったりします。そういったものも含め、このあとの資料で極力網羅したつもりです *1 *2

また「CloudWatch」とついていなくても、実質的に環視の目的で利用できるサービスもいろいろあります。それらも盛り込んでみました。
そして主に可視化ツールとして QuickSight を使う形で、複数の場所に散らばりがちなデータを可視化する CFn も公開されていたりします。

こういった形で、CloudWatch は非常にたくさんの機能があり、また複数の機能を組み合わせることで、ひととおりの監視作業は「出来てしまい」ます。

ただ、いちど考えて頂きたいのですが、それは本当に快適な監視環境でしょうか?
本来は頑張る必要のないところで頑張ってしまい、本来は別のところで使えるはずだったリソースが消費されてしまっていないでしょうか?

その先

その場合の選択肢となりそうなのが、「環視 (モニタリング)」を専門とするところが開発したツールを使うことです。

AWS には OSS のモニタリングツールである Prometheus と Grafana をマネージドで提供していたり、OpenTelemetry の独自ディストリビューションを用意していたりと、モニタリング手段の多様化にも取り組んでいます。

さらに CloudWatch Metric Streams を使えば、CloudWatch が収集した計測情報を AWS の外、つまりパートナー製品と連携することもできます *3

可観測性(オブザーバビリティ)の考え方に則って言うと、アプリケーションの「いまの」状態はなるべく 1 ヶ所で、かつチーム全員が同じツールを用いて確認出来ることが好ましいと言えます。
また、環視機能を(CFn テンプレートを使うとはいえ)自前で構築し運用するということは、その仕組みやインフラをも自前で運用するということです。

サービスというものは「作って終わり」ではありません。
何をするにも・しないでいたとしても、何かしらのコストは発生します。是非、長い目でみつつ「今はサービスにとって何をどうするのが適切か」を考えながら、ベストでなくても今できることを *4 選んで頂ければと思います。そのための選択肢を、AWS は提供してくれているのです。

最後に

当日は、時間配分を間違えて 1 分余らせるという痛恨のミスを犯してしまいました。
また、タイトルはなんとなくバズ・ライトイヤーのセリフ *5 を意識したんですが、微粒子レベルですら伝わらないということに最後まで気付かなかったのも痛恨です *6。もっと精進しようと思います。

それはさておき、ついつい「非機能要件」として後回しにされがちな監視 (モニタリング) 界隈ですが、サービスである以上それは必須の「機能」といえます。この登壇・ブログが「より良いモニタリング」を考える機会になったら幸いです。

最後になりましたが、JAWS FESTA 2023 in Kyushu の運営に関わられた方々、本当にお疲れ様でした&ありがとうございました!
よく分からない CfP を送りつけてすいません、選んで頂いてほんとうに感謝しています。

なおぼくは今後も、機会があるごとに「メトリックストリーム!」と言い続けて行きたいと思います *7。これからもよろしくお願いします!


脚注

  1. といいつつ、CloudWatch Application Insights のことをすっかり忘れていました。ここに懺悔します。まだありそう
  2. より正確には、一覧には書いたんですが解説することを忘れてました
  3. 外ではなく自前の分析アプリケーションに送信したり、S3 などに永続的に蓄積したりするときにも使えます
  4. すぐガンダム
  5. To infinity, and beyond!
  6. 翻訳では「無限の彼方へ、さあ行くぞ!」なので、そりゃ伝われという方が無理です
  7. 参考