初めに
インシデントが深夜に発生した場合に備えて、権限の管理、インシデントの解消をする担当者、責任者を定めておきましょう。
そうしないと私の二の舞になります。
今回のインシデントはコミュニティで起ったことであり、
複数人で管理しているサイトで問題が起きました。
インシデントレポート
深夜1時、ユーザーからこんな連絡が来た
「特定のブラウザでウェブサイトを見れない!!」
2時間後に連絡に気づき、「え?」と思いました。
何をしていたか
その前日の夜、DoSが来たため
Cloudflare の設定で「Under Attack!」にしていた。
Under Attack! モードにすると数秒待ってねと表示されます。
ここまでは普通なのですが、
ユーザーエージェントが普通と違うブラウザからアクセスするとループしてしまった...
つまり、数秒待ってねというのがループし、抜け出せなくなっていたのです。
ただ、Firefox、Chromeなどの有名なブラウザでは正常に動いたのが不幸中の幸いでした。
取れない連絡
さて、Cloudflareが原因だと分かったからそれを変更すればよかったのですが、
私には権限が無かったんです...あー、終わった。そう思いました。
ステータスページを更新したり、権限ある人を呼び出したり、Twitterにお知らせを投稿したりと、
一応やれることはやったのですが、それでも根本的な解決に至りませんでした。
権限がある人を今呼び出したところで、時計は午前3時を指しており、起きるはずもありませんでした...
深夜帯に起きている人なんてなかなかいないですからね...
3 hours later...
さぁ、朝になりました。私は寝てません。
さて、ようやく連絡が付いたため、Under Attack!モードを解除するとともに、WAFで対策し、
ここでインシデントは解消されました。
ここまで5時間ほどのインシデント。
1か月(30日)のうちの5時間となると稼働率は約99.3%になり、このような一部ダウンのインシデントもSLAの保証に入れてた場合は、
金銭的な損失も発生してしまうインシデントでした。
あとがき
今回のインシデントにより分かったのは、
- CDNの仕様を理解する
- 様々な環境での動作を調べる
- 深夜にも対応できるよう権限を管理する
以上です。
インシデントはいつかは起きます。(GoogleもAtlassianも障害が起きるので)
起こさないように対策をねる必要もありますが、
起きたときの対処法を定めることは非常に重要だと痛感されました。