クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

記事がバズってサイトがダウン!?の舞台裏

サービスプランナーのyumeです。
私は、数千件の記事を扱うメディアサイトを担当しているのですが、嬉しいことにたまに突然アクセスが集中することがあります。いわゆる「バズ」ですね。

このとき、開発運用チームでは「編集チームが丹精込めて作った記事が日の目を見るチャンス!1人も逃したくない!」と思い対応するわけですが、具体的には何をしているのか?という流れを紹介したいと思います!

状況)サイトが重くなる

自分たちの施策やイベント等、予め対策ができる場合もあるのですが、だいたいは準備していないときに限ってサイトダウンは訪れるんですよね。 事象としては、ページの表示が異常に遅い、ステータス500を連発する、という感じです。

1)アラートが飛ぶ

私たちが運用しているサイトはすべて監視ツールを入れて負荷状況を見ています。
負荷が高まるとチャットにアラートが飛ぶ仕組みです。

業務時間外でチャットを見ていない場合もあるので、気づいた人が担当者に連絡したり、可能な範囲で状況をチェックしたりします。

2)駆けつける

ミーティングから抜け出したり、飲み会から抜け出したり、帰りの電車に乗っていたところを折り返したり。
このときはめんどくさいというより使命感で燃えまくっています。

今回は、インフラエンジニア(弊社ではSREチーム)×サービスプランナーで対応した場合の、プランナー目線の流れを記載します!

3)アクセス集中ページの特定

まず、GoogleAnalyticsのリアルタイムを確認

f:id:aimstogeek:20200312142514p:plain
GAリアルタイム

サーバが完全に死んでいない場合は、このページを見ると、見慣れないページにアクセスが集まっていることに気づけます。
※サーバが完全にお亡くなりになった場合は確認ができなくなるのでそのときはアクセスログを見るしかないです。

各ページの仕様をだいたい把握しているので、ページが分かると、Web/DB/その他のどこに負荷がありそうか推測が可能。

私がこのように対応しているとき、SRE側でもサーバ負荷チェックやアクセス集中パスの調査を行ってくれます。
結果、「とりあえずDBを増やそう」などの一旦の対応方針を決めることができます。

4)原因の特定

流入経路の確認

引き続きGoogleAnalyticsのリアルタイムで、該当ページへのアクセス元をざっくり割り出し

f:id:aimstogeek:20200312152614p:plain
GAリアルタイム_トラフィック
担当サイトのケースでは、

  • ソーシャル
  • オーガニック

のどちらかで、だいたいオーガニックです。
要は、「話題になったキーワードでSEO上位を獲得していた」ケースですね。

今回も、ここで「オーガニックの流入が多いぞ!」となったパターンで紹介します。

検索キーワードの確認

ページと流入経路が特定できたので、どのキーワードでアクセスが集まっているのかを確認します。
これには、SearchConsoleを使用。リアルタイムの情報は見れませんが、流入キーワードの傾向はわかるので結構役に立ちます。

こんな感じで、ページのURLを指定してフィルタをかけて…

f:id:aimstogeek:20200312152621p:plain
SearchConsoleでページにフィルタ設定
キーワード傾向を抽出。
f:id:aimstogeek:20200312152632p:plain
通常時のこのページの流入キーワードが分かる
こうすることで、検索数が急激に増えたキーワードのあたりをつけることができます。

SNSで話題調査

キーワードのあたりがついたので、今度はそのキーワードがSNSでどのように言及されているかを調査。
これには、「Yahoo!リアルタイム」が便利です。
https://search.yahoo.co.jp/realtime

塗りが多くてもはやなにを表しているか分からないと思いますが、SNSの検索結果に加えて、右側に言及数の推移も表示されて便利です。

f:id:aimstogeek:20200312152636p:plain
わかりにくいけど非常に便利だぞ!

これらをかけ合わせて、以下を推測・予想!

  • どうしてそのキーワードが話題になったのか
  • いつから話題になったのか
  • それがどのくらい継続しそうか

担当サイトのケースでは、テレビで特集が組まれたキーワードだったとか、医療ドラマで意味深につぶやかれたキーワードだったとかが多いです。
ちなみに、医療ドラマの場合は編集チームの誰かが絶対見ているので、「〇〇ってワードでバズったんだけどなんかあった?」と聞けば一発で答えてくれます。笑

原因が分かったので、今後の予測をたて、対応を検討!

例:テレビ関係

  • 放送された瞬間とその後のCMがタイミングとしてはピーク
  • そこからは割と急速にアクセスが落ちるので、その時点の負荷に耐えられる構成にして一旦の対応を完了

例:Yahoo!ニュースに載ったケース

  • 数時間単位でコンスタントにアクセスが来る
  • どこでピークがくるか不明。余裕を持ったインフラ構成にしておく

この辺の予測はもう経験と勘です。他社の事例とか超知りたい。

5)対応

実際の対応はインフラがメインなので、SREチームがやってくれます。臨機応変に対応してくれるのでとても心強い。

実際の指示も、「Webサーバ3台増やして」なんて具体的なことではなく、「医療ドラマでこのページがバズってるみたいなんだけどどうしよう!」というような情報を共有して、一緒に対応を考えることが多いです。

まとめ

バズは嬉しいものですが、対応できなければせっかく来てくれたユーザーとの縁が持てなくなってしまいます。
私たちも多くの失敗を経て、現時点ではこのような形で対応していますが、まだまだ対応しきれないことも多く。。
オートスケールもしたいし、そもそももっとキャッシュとか活用して負荷も減らせるのでは?とか、考えることはいっぱいあると思います。日々精進ですね!



\\世の中とユーザーの動きを見ながらアレコレ動きたい仲間を募集!! // 919.jp