aws premier night #2 in osaka 運用補助の取り組み
TRANSCRIPT
運⽤補助の取り組み
2016.09.16 FriToshiaki Aoike
AWS Premier Night #2 in Osaka
⾃⼰紹介
⻘池 利昭
▷ cloudpack ⼤阪 MSP開発グループ エンジニア
MSP開発 is …
• MSP(Management Services Provider )向けのシステムや作業の⽀援の仕組みを構築・提供
• cloudpack ⼤阪で発⾜
• サーバーレス開発と運⽤が主体
• 請負の仕事もやってます
弊社の現状
• 昼夜問わず上がってくるインシデントインシデントはコチラの都合などお構いなし
• サーバーの増加 ≒ インシデントの増加サーバーが増えるとインシデントも増化する傾向にある
• インシデントの増加 ≒ Ops の負担増加インシデントが発⽣すると Ops はアクションを⾏うサービスはどんどん増えていく為、Ops のアクションも増
弊社の状況
取り組み
• インシデントが漏れない仕組みインシデントを管理する仕組みを提供
• インシデントの発⽣状況を可視化する仕組みサービス毎や時間毎などのインシデントを分析
• インシデント対応時の作業を補助する仕組み作業の⼀部をシステムで肩代わり
取り組み
• インシデントが漏れない仕組みインシデントを管理する仕組みを提供
• インシデントの発⽣状況を可視化する仕組みサービス毎や時間毎などのインシデントを分析
• インシデント対応時の作業を補助する仕組み作業の⼀部をシステムで肩代わり
漏れ検知機能
アラートをメールで受信して監視
漏れ検知機能
pagerdutyを導⼊して監視を強化
漏れ検知機能
pagerdutyを導⼊して監視を強化
漏れ検知機能
pagerdutyを導⼊して監視を強化
漏れ検知機能
メールとpagerdutyの内容を突合
Backlog不在通知
お客様との情報共有にBacklogを利⽤
Backlog不在通知
お客様との情報共有にBacklogを利⽤
休
Backlog不在通知
お客様との情報共有にBacklogを利⽤
休
Backlog不在通知
お客様との情報共有にBacklogを利⽤
休
Backlog不在通知
お客様との情報共有にBacklogを利⽤
休
Backlog不在通知
お客様との情報共有にBacklogを利⽤
休
取り組み
• インシデントが漏れない仕組みインシデントを管理する仕組みを提供
• インシデントの発⽣状況を可視化する仕組みサービス毎や時間毎などのインシデントを分析
• インシデント対応時の作業を補助する仕組み作業の⼀部をシステムで肩代わり
pagerduty
予め組み込まれた観点での可視化しか出来ない
可視化基盤
インシデントの発⽣状況を⾃分たちの⾒やすい観点で可視化
可視化基盤
インシデントの発⽣状況を⾃分たちの⾒やすい観点で可視化
取り組み
• インシデントが漏れない仕組みインシデントを管理する仕組みを提供
• インシデントの発⽣状況を可視化する仕組みサービス毎や時間毎などのインシデントを分析
• インシデント対応時の作業を補助する仕組み作業の⼀部をシステムで肩代わり
サーバー情報取得
サーバーの状態を取得
Backlog課題登録
インシデントの⾃動登録
通知の⼀元化
監視サーバーからいろいろな宛先に通知の設定を実施
通知の⼀元化
pagerdutyのWebHookから通知
URL監視
サーバーのResponseコードと画⾯キャプチャを取得
pagerdutyについて
pagerduty is …
https://www.pagerduty.com/監視サーバーからくるアラートをインシデントとして受け付け、スケジューリングされた監視メンバーにインシデントを配信し、
•Acknowledged(認め、操作した監視メンバーにアサインする)•Resolved(解決済み。Resolvedを選択するとインシデントはすでに解決した扱いとなる)
する事により、インシデントを管理出来るシステム
今回紹介するナレッジ
• WebHookインシデントのステート変化の通知
• WebAPIインシデントの詳細を取得等
今回紹介するナレッジ
• WebHookインシデントのステート変化の通知
• WebAPIインシデントの詳細を取得等
3:triggered4:resolved4:acknowledge
3:triggered4:resolved3:triggered
pagerdutyのWebHookのあれこれ
2:triggered2:resolved
1:triggered2:acknowledge
pagerdutyのWebHookのあれこれ
1:triggered2:acknowledge
pagerdutyのWebHookのあれこれ
1:triggered2:resolved
pagerdutyのWebHookのあれこれ
3:triggered4:resolved3:triggered
pagerdutyのWebHookのあれこれ
3:triggered4:resolved4:acknowledge
pagerdutyのWebHookのあれこれ
1:triggered2:acknowledge
1:triggered2:triggered2:acknowledge
ステート管理を実施
pagerdutyのWebHookのあれこれ
WebHookの5秒ルール
pagerdutyのWebHookのあれこれ
WebHookの5秒ルール
←5秒以内でないといけない
pagerdutyのWebHookのあれこれ
WebHookの5秒ルール
←5秒以内でないといけない
pagerdutyのWebHookのあれこれ
WebHookの5秒ルール
←5秒以内でないといけない
pagerdutyのWebHookのあれこれ
• 200が返ってこない場合は50秒後リトライ
• 7回リトライするので最⼤8回処理を実⾏
• 8回実⾏しても200が返らない30分通知停⽌
• 上記を最⼤6回リトライ
• 改善が無ければブラックリストに⼊り通知停⽌
今回紹介するナレッジ
• WebHookインシデントのステート変化の通知
• WebAPIインシデントの詳細を取得等
pagerdutyのWebAPIのあれこれ
• APIはv2の⽅が性能が良い
• APIキー単位で1分間2000回のアクセス制限
• アクセス制限時は専⽤レスポンスコードに(v1では403、v2では429)
• pagerdutyに⼀番近いリージョンはus-west-2
pagerdutyのサポートのあれこれ
• とてもフレンドリー
• 単語を並べればニュアンスを読み取ってくれる
• 時差の関係で回答は午前0時〜1時頃に多い
まとめ
• ⽤途に応じてAPIキーを使い分け
• WebHookインシデントのステートは⾃分で管理
• 5秒ルール対策の為、us-west-2を利⽤
• WebHookは通知を受ける以外の処理しない(処理は⾮同期で⾏う)