Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
監視やモニタリングについてもうちょっとだけ考えてみよう / Think about monit...
Search
Takashi Nasu
March 19, 2020
Technology
0
820
監視やモニタリングについてもうちょっとだけ考えてみよう / Think about monitoring
Takashi Nasu
March 19, 2020
Tweet
Share
More Decks by Takashi Nasu
See All by Takashi Nasu
Lambda拡張機能を使ってLambdaパフォーマンスを上げよう
nasrinjp
1
940
障害対応のふりかえりとその後の取り組み / trouble shooting and future
nasrinjp
0
990
自宅付近の気温と湿度を可視化する時に気づいたAmazon Timestream導入時の注意点 / Important point of Timestream
nasrinjp
1
770
AWSリモートアクセス紹介/AWS remote access
nasrinjp
0
100
reInvent事前勉強会LT.pdf / prior-workshop-for-reinvent
nasrinjp
0
1k
ときめくものだけ残して考えたSAPonCloudのデザインパターン的なアレ / kommari-method-for-SAPonCloud
nasrinjp
0
1.8k
jawsdays2019_appstream20.pdf
nasrinjp
0
2k
Other Decks in Technology
See All in Technology
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
Can We Measure Developer Productivity?
ewolff
1
150
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
100
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
Taming you application's environments
salaboy
0
180
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
TypeScript、上達の瞬間
sadnessojisan
46
13k
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Scaling GitHub
holman
458
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
The Language of Interfaces
destraynor
154
24k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Teambox: Starting and Learning
jrom
133
8.8k
The Invisible Side of Design
smashingmag
298
50k
Transcript
1 Copyright © 2020 BeeX Inc. All Rights Reserved. 2020年3月19日
Takashi Nasu 監視やモニタリングについて もうちょっとだけ考えてみよう Ops JAWS Meetup#18 モニタリング
2 Copyright © 2020 BeeX Inc. All Rights Reserved. 那須です
那須 隆(なす たかし) 株式会社BeeX(びーえっくす) Japan APN Ambassador 2019(APN: AWS Partner Network) Twitter: @nasrinjp1 https://nasrinjp1.hatenablog.com/ 経歴 • 6年半:ネットワークエンジニア • 7年半:SAPコンサルタント(システム運用) • 4年:AWSメインのインフラエンジニア 今興味ある:API Gateway、セキュリティ周り
3 Copyright © 2020 BeeX Inc. All Rights Reserved. BeeXです
何やってる会社? • SAPをはじめとした基幹システムのクラウド移行 • クラウドネイティブ開発 • クラウド環境やSAPシステムの運用保守 お客様事例の一部です。 クラウドネイティブ開発でやっていることや、 SAPシステムのスピード移行の内容を 見ることができます。 詳しくは↓Webサイトでどうぞ! https://www.beex-inc.com/
4 Copyright © 2020 BeeX Inc. All Rights Reserved. 今日皆様と考えたい内容
• 監視/モニタリングの目的って何ですか? • 何を監視/モニタリングしますか? • アラートの出し方について考えていますか? • アラート受信した後はすぐに動けますか?
5 Copyright © 2020 BeeX Inc. All Rights Reserved. このセッションのターゲット
• AWS(に限らずクラウドの)運用および保守している人 • AWS(に限らずクラウドの)運用設計している人 • 監視の設計で困ってる人 • 担当システムの障害対応フローを改善したい人
6 Copyright © 2020 BeeX Inc. All Rights Reserved. 注意事項
今日お話する内容は、あくまで私が考えた内容になります。 参加されている皆さまの所属組織や提供されているサービ スごとに詳細は異なると思いますので、話を聞きながら自 分はこう思うなーと考えていただけると嬉しいです。
7 Copyright © 2020 BeeX Inc. All Rights Reserved. 監視/モニタリングの目的?(Why)
8 Copyright © 2020 BeeX Inc. All Rights Reserved. ちょっとだけゴールデンサークルの話
Why What How Why What How サイモン・シネックさんが提唱した理論
9 Copyright © 2020 BeeX Inc. All Rights Reserved. というわけで
WhyからHow/Whatについて考えて みたい
10 Copyright © 2020 BeeX Inc. All Rights Reserved. なぜ監視するのか?
監視した結果の通知がほしいわけじゃない(手段?) • 正常ではないと判断した状態から1秒でも早く復旧したいだけ • そのために復旧作業を自動化したい • 自動化できなくても通知からすぐに復旧作業に取りかかれるよ うにしたい
11 Copyright © 2020 BeeX Inc. All Rights Reserved. 目的(例)
1秒でも早く障害状態から正常状態もしくは 縮退運転状態にしてサービスに影響がない 状態にすること
12 Copyright © 2020 BeeX Inc. All Rights Reserved. こっちが目的?
その結果得られるであろう「運用負荷を下げる」 が目的かも?
13 Copyright © 2020 BeeX Inc. All Rights Reserved. 他の目的の例
• EC2インスタンスで稼働するお客様向けサービスの無停止提供 • EC2の問題?アプリの問題?ネットワークの問題? • CloudWatchやSaaSを使う • セキュリティ事故を0件にする • 悪意ある第三者からの攻撃をいち早く知る • セキュリティ基準が遵守されているかどうかを見る • GuardDutyやInspector等のセキュリティサービスや、セキュリティ チェックができるSaaSを使う
14 Copyright © 2020 BeeX Inc. All Rights Reserved. 何を監視/モニタリングするの?
15 Copyright © 2020 BeeX Inc. All Rights Reserved. 監視/モニタリングってなってるけど…
監視とモニタリングって日本語では2つとも見かける けど、意味は同じなのか異なるのか?
16 Copyright © 2020 BeeX Inc. All Rights Reserved. そもそも監視とモニタリングって何が違うの?
監視 警戒して見張ること。また、その人。「監視の目が光る」「火山活動を監 視する」 不都合な事の起こらぬように警戒して人の動きなどを見張ること モニタリング 状態を監視すること。 状態を把握するために,観測や測定を行うこと。製品・サービスについて の感想や評価を調べること 三省堂 大辞林 第三版から引用
17 Copyright © 2020 BeeX Inc. All Rights Reserved. そもそも監視とモニタリングって何が違うの?
モニタリング 監視 こんなイメージ?
18 Copyright © 2020 BeeX Inc. All Rights Reserved. 目的を思い出す
1秒でも早く障害状態から正常状態もしくは 縮退運転状態にしてサービスに影響がない 状態にすること
19 Copyright © 2020 BeeX Inc. All Rights Reserved. 何を監視/モニタリングするの?
URL等のエンドユーザがアクセスするポイント そもそもサービスが使える状態にあるのかどうかを監視する 異常検知したら必ず通知する 通知を受信したら1秒でも早く復旧させるように自動化するか、人が動く ※ウェブサイトの死活監視はされている方も多いと思います
20 Copyright © 2020 BeeX Inc. All Rights Reserved. 何を監視/モニタリングするの?
パフォーマンス 使えるけどなんか遅いって状態を見逃さないよう監視する 何が原因でパフォーマンス低下しているのかを調査する。 最初に調査のために実行するコマンド等が決まっているのであれば、パ フォーマンス異常検知と同時に自動で実行させてチャット等に通知する パフォーマンス異常通知のコンテンツにCWダッシュボード等へのリンクがあ ると嬉しい
21 Copyright © 2020 BeeX Inc. All Rights Reserved. [参考]Synthetics
Monitoring まだプレビューですが簡単にSynthetics Monitoringを試せます。 ウェブサイトやAPIの可用性とレイテンシをチェックします
22 Copyright © 2020 BeeX Inc. All Rights Reserved. [参考]あるようであまりない複数トリガーでのアラート
https://aws.amazon.com/jp/about-aws/whats-new/2020/03/amazon-cloudwatch-now-allows-you-to-combine-multiple-alarms/
23 Copyright © 2020 BeeX Inc. All Rights Reserved. 何を監視/モニタリングするの?
(他の目的のための監視/モニタリング例) リソースモニタリング例 ユーザへの提供サービスは問題ないがCPUが100%になっている等 すぐに知るべき情報かどうかは提供サービスにもよるが、ほとんどの場合は ダッシュボード等でいつでも見れるようにするもの • 平常時の状況確認等につかうために記録する • 近い未来に障害となり得る傾向を見つけるために記録する • Amazon Forecastを使えば傾向が見えるようになるかもしれない
24 Copyright © 2020 BeeX Inc. All Rights Reserved. 何を監視/モニタリングするの?
(他の目的のための監視/モニタリング例) セキュリティ標準の監視例 組織やサービスごとにセキュリティ標準は異なるが、違反に対しては修復 しないといけない • Security HubでCIS Benchmarkの標準チェックから始める • 設定等でセキュリティ違反を検知したらAWS Configで自動修復 • セキュリティ標準を守れば完璧!ではないので、GuardDutyでセキュ リティリスクの発生に気づくようにする
25 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
26 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
監視システムから送られてくる内容(昔はこうだった いつ、◦◦で××が発生しました。 しきい値:100 検知した値:200
27 Copyright © 2020 BeeX Inc. All Rights Reserved. 何度も目的を思い出す
1秒でも早く障害状態から正常状態もしくは 縮退運転状態にしてサービスに影響がない 状態にすること
28 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
…目的達成できますか? さっきのアラートが自分のところに飛んできたとして、 1秒でも早く対応しないといけない。 そんな状況で このアラートだけが飛んできたら… 目的達成できますか? もっと事前にできることないでしょうか? いつ、◦◦で××が発生しました。 しきい値:100 検知した値:200
29 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
今ではアラート内容のカスタマイズができるのは当たり前 昔のアラートは状況を知らせるだけのものが多かった 今ではアラートの内容は自由にカスタマイズできるものがほとんど
30 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
アラートの内容例 前職でDatadogを触っていたので、 思い出しながら雑にアラート発生させて Slackに通知してみた例
31 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
アラート内容として書く情報の例 発生日時や対象、障害内容以外にもこんな情報を付け加えてみては どうでしょうか? 障害対応手順 運用ドキュメントへのリンク 復旧目標時間
32 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
なぜ対応手順をアラートの中に書くのか?(1/2) アラートの中に対応手順が書かれていれば、対応に必要なドキュメントを 探す時間も0にできる。 対応手順がものすごく長いなら、対応手順が書かれたドキュメントへのリ ンクをアラートに書くだけでも手順実施までの時間が短くなる。 注意:ドキュメント更新等で場所が変わったら、アラートに書いているリン クも更新する。
33 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
なぜ対応手順をアラートの中に書くのか?(2/2) 対応手順をアラートの中に書くようにすれば、監視の設計をしている時に それぞれの監視項目での一次対応を決めることになる。 もし一次対応が書けないなら、そもそもそれを監視する意味ってある の?って考えるきっかけにもなる。 運用の負荷を下げるためにも、不要なアラートを飛ばすのはやめよう。
34 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
なぜ目標復旧時間をアラートの中に書くのか?(1/2) 運用や保守の契約で目標復旧時間がある場合は、それを守る努力を する必要がある。 障害発生からいつまでに復旧させる必要があるのかを書く。 目標復旧時間が書かれていれば、状況や保守担当のスキル等を基に 障害発生してから◦分経過しても状況が変わってなければエスカレーショ ンする、などのフローが作りやすくなる。
35 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
なぜ目標復旧時間をアラートの中に書くのか?(2/2) 同時に複数のアラートが発生している時、急いで対応しないといけないも のはどれか等、優先度を決めて対応の順序を決められる。 • サービスの継続提供 • 契約
36 Copyright © 2020 BeeX Inc. All Rights Reserved. 雑にアラート出してませんか?
以上のような工夫をすることで、場合によっては復旧までの時間が大幅に 短縮されることもある。 アラートはただの通知ではない。 次に進むためのガイドにもなり得ると思う。
37 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
38 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
一次対応を実施するのは誰か? アラートで一次対応手順を書けたので、障害検知後すぐに対応開始す ることができる。 それは、絶対に人間がやらないといけないのか? もし自動化できる余地があるなら自動化に挑戦しよう。
39 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
自動化の例(1/2) 障害検知時のアクションの自動化はこんな感じ。 • 監視サービスからWebhook • EventBridgeで特定のステータスを受信したらアクション実行 • Lambdaで復旧処理実行 • SSM Automationで復旧処理実行 • MonitみたいなツールでOSでの処理実行
40 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
自動化の例(2/2) セキュリティインシデント検知時は、Security Hub、Eventbridge、 Lambdaを組み合わせての自動修復の仕組みを作る。
41 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
https://aws.amazon.com/jp/blogs/news/automated-response-and-remediation-with-aws-security-hub/
42 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
自動実行した結果をアラートに続けて通知する
43 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
自動化は二次障害を防ぐためでもある 調査や復旧作業を自動化すれば、かなり時間短縮になる。 人間のオペレーションによるオペミスの発生確率も下げることもできる。 オペミスによる二次障害を起こさないためにも自動化に取り組む。
44 Copyright © 2020 BeeX Inc. All Rights Reserved. アラート受信したらすぐ対応できますか?
どこまで自動化したものを信用するか? でも自動化したものが必ず想定した動きをするとは限りらない。 アラートにはどんな場合でも人間が実施できるように対応手順は書くよう にすべき。
45 Copyright © 2020 BeeX Inc. All Rights Reserved. 目的を達成するために監視について考えたい
46 Copyright © 2020 BeeX Inc. All Rights Reserved. 今まで話した内容で正解かどうかはわからない
過去のネットワークの運用・保守や、SAPシステムの運用設計の経験を 踏まえて考えた結果が今日お話した内容です。 環境やシステムが変われば、全然違う目的や手段になると思います。 皆さん自身で一度考えてみてもらえると嬉しいです。
47 Copyright © 2020 BeeX Inc. All Rights Reserved.