Upgrade to Pro — share decks privately, control downloads, hide ads and more …

いい感じのシステムアラートをTwilioで

kohtaro24
August 07, 2018

 いい感じのシステムアラートをTwilioで

障害発生時のアラートをTwilioでいい感じに作った話

kohtaro24

August 07, 2018
Tweet

More Decks by kohtaro24

Other Decks in Technology

Transcript

  1. いい感じのシステムアラートをTwilioで @kohtaro24

  2. Twilio Developer Meetup 2018 Summer で話してきた内容です

  3. 自己紹介

  4. 皆さんは経験ありますか?

  5. _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y^ ̄

  6. Webサービスは突然死ぬ • 突然トラフィックが激増したり • 突然インフラに障害が起きたり • 突然某有名番組でオフィスが紹介されて企業HPに前代未聞のアクセスが殺到した り

  7. 運用者が気づけない場合もある

  8. 深夜のサービス障害のネック • 障害に気づきにくい ◦ 寝ている場合もありうる • 誰かがすでに対応開始しているかもしれない ◦ 作業が競合することによる 二次災害の不安

    • 個人で対処の判断が難しいケース ◦ 運用者が複数人いる場合など
  9. 既存事例① • 様々な監視ツールからの通知を集約できる SaaS • 通知ごとにエスカレーションパターンや手段を細かに設定できる ◦ 障害発生時にメール →15分後に認知されなければ電話など •

    料金が割高 • 電話がグローバル発信
  10. 既存事例② https://github.com/ryotarai/waker • PagerdutyのOSS版的な立ち位置 • 通知ごとにエスカレーションパターンや電話 /SMS/メールなど手段を細かに設定できる • Twilio使ってる •

    サーバーを自前で用意する必要がある
  11. スモールチームには少々敷居が高い • エスカレーションじゃなくていきなり関係者全員通知でいい ◦ 深夜待機者を年中立てられるほど人員がいない ◦ 対応できる誰かがすぐ気づければいい ◦ とはいえ二次災害は防ぎたい •

    コストもかけたくない ◦ 障害はそんなに起きない(はず)なので固定費かけたくはない ◦ とはいえ障害にはすぐ対応したい • 手軽にすぐ導入できると嬉しい
  12. Twilio Functions(サーバレス) + Twilio Conference(電話会議)

  13. health check tool Twilio Functions /alert /join_conference Webhook call call

    • 監視ツールからのイベントを受けたら、登録された番号に対して一斉発信
  14. Twilio Functions /join_conference health check tool /alert answerd answerd ConferenceRoom1

    join • 障害に気づいた(電話に応答した)人からConferenceに突っ込んでいく • 以後は障害状況を報告しあったりして連携しながら対応を進める • 自分以外がConferenceに入ってこなければとりあえず一人で頑張る
  15. Functionsで作成したWebhookURL https://hogehogehoge.twil.io/alert ?tels=+8170xxxxxxxx,+8180xxxxxxxx &message=サーバがお隠れになったよ 発信したい電話番号 (カンマ区切り) 着信応答時にSayで流すメッセージ

  16. Demo うごくかな

  17. None
  18. None
  19. 例えばTwilioで

  20. 例えばcurlで curl --data tels=+8170xxxxxxxx,+8180xxxxxxxx --data message= サーバがお隠れになったよ “https://hogehogehoge.twil.io/alert”

  21. health check tool /alert /join_conference Webhook call call 通知がメール限定ならSendGridのEvent Webhookとか

    Mail
  22. 実現したこと • 障害に電話で気づける ◦ Push通知よりは(寝てても)気づけそう • 気づいた者同士で通話しながら対処できる ◦ 二次災害の防止 ◦

    状況を共有しながら分担したり意思決定したりスムーズにやれる • (ほぼ)固定費ゼロ ◦ 固定費は発信元番号の維持費 ¥100のみ ◦ Functionsは毎月10,000アクセスまで無料 ◦ 通話費はかかるが障害が起きなければ 0! • Webhook URLを共有すれば他チームでも導入できる ◦ チームや通知固有の設定は Webhook URL parametersで完結 • 1時間程度の開発で実現できた
  23. これで安心して寝れるぞ!