ネット関係

サーバーダウンによりアクセス制限がかかる悲劇を体験!原因追求

サーバーダウン

つい最近、メインで運営しているブログのアクセスの増加に伴いサーバーがダウンしてしまいました。

サーバーダウンといえば、記事に関係している内容がテレビで放送されて、急激なアクセスが集まってダウンする。

というイメージが強いのですが、今回はそのような雰囲気も感じられず、いつも通りにパソコンに向かっていた時に、1通のメールがエックスサーバーから届きました。

サーバーダウンのお知らせメール

2017/03/27 13:52

【重要】Xserver お客様のサーバーアカウントにおける著しく高いCPU負荷について

平素は当サービスをご利用いただき誠にありがとうございます。
Xserver カスタマーサポートでございます。

お客様のサーバーアカウントにおいて、
CPU負荷が著しく高い状況が確認されましたのでお知らせいたします。

※3/26 22:16頃 高い負荷を検知しました。
※FastCGIプロセスにて非常に高い負荷が発生していることを確認いたしました。
※簡易的に調査したところ、
 ドメイン名「〇〇〇〇.com」に対するアクセスが多いようでございます。
 原因特定の参考にしていただければと存じます。

一瞬何が起きたのかわからず、2度見。

まだこの時点では、サイトも見ることができていましたし、アクセスも鋭角な山の急激なアクセスでもなかったので、そこまで緊急性のものではないのかなと思いつつ、なんとなく嫌な予感もし始めました。

状況を把握するために、エックスサーバーからのメールをきちんと読み進めていきました。

事後のご案内となり大変申し訳ございませんが、
同収容サーバーをご利用のお客様への悪影響が懸念されたため、
お客様のサーバーアカウントに対し下記の制限を個別に設けております。

▼サポートにて実施した制限内容
----------------------------------------------------------------------
・同時に実行可能なプロセス数(プログラム数)の制限を強化

 ※当制限下においては、CGI、PHPプログラムへのアクセスが集中した際に
  リソース制限エラー(500エラー)が発生しやすくなります。
----------------------------------------------------------------------

お手数ではございますが、
早急に負荷軽減対策を行っていただきますようお願いいたします。


CPU負荷対策を行っていただきましたら、
お客様がなさった負荷対策の詳細を必ずサポートまでご連絡ください。

ご実施いただいた負荷対策を元に改めてCPU負荷を調査し、
負荷状況に問題がないことを確認しましたら、
段階的な制限の緩和や、制限の解除を検討いたします。

ブログにアクセスが集まったから、アクセス制限しますよー。負荷軽減対策とったら連絡くださいね。負荷状況が良くなったら、アクセス制限解除しますよ。

という内容でした。

「事後のご報告により、大変申し訳ないのですが」と言われても、いきなり制限されたんでは、たまったもんじゃありませんよ。。

ここまで読んだ頃には、状況が大まかに把握できて、血の気がサーっと引いていく感じです。慌てて負荷対策を行いました。

CPU負荷軽減対策

サーバーダウン

CPUとは何か?これはCentral Processing Unit(中央処理装置)の略で、プロセッサーともいわれています。

全体の処理を行う頭脳のような働きをしている重要な部分です。

CPUの負荷軽減対策には2つの提案が書かれていました。

  • プログラムの実行回数を減らすために、キャッシュインプラグインを導入する
  • プログラム処理そのもののCPUを減らすために「PHP高速化設定(FastCGI)」および「APC」「OPcache」の導入

 

1つ目のキャッシュインプラグインは現在の導入しているプラグインとの相性もあるので、どのキャッシュ系プラグインを導入すればいいのかいきなり決断するのは(この時点でかなり動揺しているので、)難しいかなと判断。

「WordPress Popular Posts」もCPUに負荷をかけるプラグインということで使わない方がいいとメールに書いてありましたが、いきなり人気記事をなくすのはどうなのかなと悩んで、2つ目の方法「PHP高速化設定(FastCGI)」を試してみようと思いました。

 

そこで、PHP高速化設定をサーバーパネルから行うことにしました。

サーバーダウン

エックスサーバーの「サーバーパネル」→「PHP高速化設定(FastCGI化)」から行います。同じ状況で詳しく操作手順を知りたい方は、こちらの公式ページをご参照ください。

しかし、案内のメールに下記のような注意書きがありましたので、他の対策も行うことにしました。

「PHP高速化設定(FastCGI)」および「APC」「OPcache」のご利用により
 プログラム実行時のCPU負荷が減少しますが、
 これら機能の仕組み上、劇的な改善につながるものではございません。

 「PHP7」への変更

サーバーダウン

CPUの負荷軽減対策2つの提案の他にPHPのバージョン変更の提案が書かれてありましたので、早速行うことに。

「PHP7」は「PHP5」に比べ2倍以上の実行速度を誇り、
メモリ使用量が大幅に改善されたPHPの最新バージョンです。

現在ご利用のPHPバージョンが「7.0未満」の場合、
「PHP7」への変更により一定の負荷軽減が見込まれますので、
「PHP7」への変更をご検討ください。

何これ!?もしかして、このサーバーを契約したの何年も前だから、PHPのバージョンが古いんじゃ….?

サーバーダウン

早速確認して見ると、PHP5バージョンでした。。早速PHP7に変更しました。
詳しい手順はこちらの公式ページをご覧ください。

 

最新のサーバー環境への移転希望

サーバーダウン

さらに「最新のサーバー環境への移転に関するご提案」というのもありましたが、最新サーバー環境への移転を希望の場合は、サポートまで連絡を入れないといけないということでしたので、

最新サーバー環境への移転希望を伝えるためにメールで連絡。

※後から振り返ると、この最新サーバー環境への移転をする前に、他のサーバー会社に移転した方が良かったかなと思っています。

ここでは忘備録的に今回のサーバーダウンを整理して一連の流れを書いていきますので、実際同じ状況が起こった方は、最新サーバー環境への移転を考える前に、他のサーバーへの移転を考えた方が良いと思います。

全部を読んで頂いてから自分なりに考えていただければ一番いい方法にたどり着けるかとも思います。

エックスサーバーは問い合わせる時に下記の3つを必ず入れて送信します。

『お問合せ番号』
『会員ID』
『サーバID』

最新のサーバー環境への移転を希望します。

相当動揺していたようで、お世話になります。などの冒頭あいさつすっぽかして、この文章のみが焦りMAXを感じますね。

2017/03/27 15:17

新サーバー環境への移行につきましては
インフォパネル内にございます「新サーバー簡単移行」より
お手続きが可能でございます。

以下に詳しい手順について解説ページがございますので
ご参考いただきましたら幸いです。

 詳しい手順はこちらの公式ページをご参照ください。

急いで新サーバー環境への移行手続きを行う。手順と実際に行った時間です。

  1. エックスサーバーにデータコピー申請を行う(2017/03/27 16:22)
  2. データコピー開始のお知らせがくる(2017/03/27 16:33)
  3. データコピー完了のお知らせがくる(2017/03/27 16:53)
  4. 最新サーバー環境への切り替えを行う(2017/03/27 17:04)

エックスサーバーに対策詳細を連絡

サーバーダウン

エックスサーバーから提案された負荷軽減対策はできる限り行ったので、早速詳細を報告して、制限解除してください。とメールしました。

するとこのようなメールが返ってきましたので、これで明日か明後日になれば、サイトが復活するだろうと安心してその日は終わりました。

それでは数日程度、現在の負荷状況を確認いたしまして
問題のない水準にまで改善されておりましたら
今回実施いたしました制限の強化を解除いたします。


負荷状況の確認には数日ほどの時間を要しますが
しばらくお待ちくださいますようお願いいたします。

エックスサーバーに電話

サーバーダウン

一晩経てば、CPUの負荷軽減が行われて、サイトが見れるかなと朝ページを開いて見ると、エラー500の画面しか出てこない。。

何度見ても、この画面。。。

サーバーダウン

これは制限がかなり厳しいんじゃないか??

リアルな訪問者数が通常だとこのくらいの数なのだが、ここの数字がなんと1か2にまで激減!!

サーバーダウン

エックスサーバーのサポートセンターは10:00〜18:00 (土日祝日休み)なので、10:00に「昨日負荷軽減対策を行いましたが、どれくらいで制限解除してもらえますか。」と電話しました。

すると「こちらの調査が完了してアクセスが安定するまで様子を見るので、どれくらいで解除できるかはサイトの状況によって変わります。どれくらいかはわからないです。」という内容を言われました。

プランを上げても、制限を解除することができないので、数日はこの状態が続くということでした(涙

電話の対応的には、かなり機械的というかマニュアルに沿った感じで、これ以上話していても解決できないだろうと判断して、他の方法を考えることに。

現在の状況を整理してみる

サーバーダウン

ここで、今の状況を色々調べながら、整理してみました。

  • エックスサーバーでプランを上げても、アクセス制限が緩和&解消されない。
  • エックスサーバーで同じようにアクセス制限にあった人Aさんが、復旧までに11日もかかった。
  • エックスサーバーで同じようにアクセス制限にあった人Bさんが、負荷軽減対策をしても数日解除されなかった。
  • エックスサーバー系列同士でのサーバー移転をしても、アクセス制限は解消されないらしい。
  • エックスサーバーの共用サーバーは同じサーバーのユーザーに影響を与えないように、アクセスが多いサイトやサーバーに負荷がかかりやすい大規模なサイトにとっては制限がかけられてしまうリスクがある。

以上のことをまとめてみた結果。

他のサーバー会社に早急に移転した方がいい!

となり早速探し始めました。

気になるサーバー会社3つほど電話して現在の状況を聞いてみてるも、どこも口を揃えて

「それだけの規模のサイトになってくると、例えこちらの会社に移転して頂いても、同じように制限がかかる可能性はあります。専用サーバーはいかがですか?」という流れ。

電話で聞いたところによると、専用サーバーは、共用サーバーの3倍〜4倍の費用感ということですが、月額だいたい2万7000円とか3万円代など、いきなりそこまで飛躍していいの?!と疑問。

私の運営しているブログは、特化型のブログで、トレンドブログのように芸能ネタ的な爆発力満載なタイプではないので、そこまで強化しなくてもいいのではないだろうかと思いました。

サーバー移転を決断!

サーバーダウン

 

 

専用サーバーは、本当に最終手段と一旦置いておいて。VPSなど自由度は高い仮想サーバーは、専門知識がないとかなり難しいので、私は全く考えられずで、とりあえず、エックスサーバーの他に良さそうな共用サーバーがないか探してみました。

サーバーダウン

それから探しに探して、たどり着いたのが、MixHost 。頭一つ抜きでた高性能な共用サーバーということで、興味津々で詳しく調べました。

今回即決断となった要因は、その時のアクセスの状況によって、プランをすぐに変更できるというところ。

記事が爆発してアクセスが急激に増えるようなことがあれば、アップグレードして、アクセスが少なくなった時には、ダウングレードもできるんです。

更にここが最も重要!今回CPUの負荷が原因でサーバーがダウンしたわけですが、、、

エックスサーバーはアップグレードしても、「転送量」と「ディスクの容量」が上がるだけで、「性能(CPU)」の増加はありませんので、アップグレードしても解決できない。

MixHostは、プランによって、5段階でどんどんCPUもアップしていくので、急激なアクセス増加でCPUに負荷がかかっても、プランのアップグレードをすれば、すぐに解決できるんです!

もう今回の問題を解決するには、MixHost しかない!!

でもサーバー移転を自分でやるのはかなり不安。。と思っていたら、こんな有難いサービスまで!

mixhost (ミックスホスト) WordPress移転代行サービス

素人がサーバーの移転を自力で行うとなると、相当な不安があります。今回の状況で体験しましたが、崖の上に立たされたような気分です。

他の得体の知れない業者に、ログイン情報などを渡してお願いするもの不安でしたし、これからお世話になるログイン情報どころでない情報を預けることになるサーバー会社が移転を行ってくれるなんて、鬼に金棒!

気になる料金は「4,980円+税」と破格に安い!

更に30日間も無料お試し期間があるので、安心して申し込むことができる。ということで

無料お試し期間なしでもいいから申し込みたい!と高揚した気持ちで無料お試しを申し込みました。

MixHostにサーバー移転

エックスサーバーからMixHostへの移転手順です。

※詳しい手順ややり取りは他の記事でご紹介します。

  1. MixHost30日無料お申し込みから申し込む。
  2. MixHostのお申し込みページのWordPress移転代行サービスのお申込みから申し込み。
  3. MixHostから移転代「4,980円+税」の請求がくるので払う。
  4. 移転代行に必要な情報と移転希望日を伝える。
  5. 移転作業開始&完了のお知らせがくる。
  6. こちらで動作確認してネームサーバー変更で完了!

自分で難しい作業は一切なしで、簡単にサーバー移転を行えてしまいました。

まとめ

今回サーバーダウンという、大きな壁にぶつかってみて、とても貴重な経験をさせていただきました。ブログを運営している者としては、一度はアクセスが多くてサーバーダウンなんてかっこいいな。アクセスたくさん集まっていいな。

と雲の上を見るような感覚でおりましたが、実際に経験して見ると、サーバーがダウンしてからのアクセス激減、報酬激減、サイトの復旧がいつかわからない不安にこの先どうなるのかという不安や外注様への対応の嵐で、いいことはそんなにありません。

何よりも読者の方がせっかく訪問してくださったのに、エラーページを表示させてしまうことへの切なさが一番大きかったですね。。。

しかし、サーバーダウンを経験したことで、良いこともありました。

サーバーに対する知識が増えたり、サーバーの重要性に気づけたこと。頭が真っ白になりながらも、何とか冷静に物事を進めていけた結果、MixHost という今のサイトの規模に見合った素晴らしいサーバーに出会えたことです。

MixHostは電話でのサポートがないので、全てメールでのやり取りになりますが、下手に専門用語ばかり並べられて全くわからなかった会社などに比べて、とても迅速で丁寧にわかりやすいサポートをしてくれます。

サーバーど素人な私でも簡単なやり取りであという間にサーバー移転ができてしまいました。

 

後日経過と原因について

後日、総合的に検証してみた結果、不思議な結果にたどり着きました。

CPUに負荷がかかったと警告された3/26 22:16頃のアクセスは決して多くないんです。むしろ朝の8:00くらいがピークです。

サーバーダウン

それで再度、エックスサーバーにメールでもう一度詳細を訪ねたところ

私の質問:
原因をもう少し詳細に教えてください。
3/26 22:16頃 にアクセスが多いとありましたが、これはアクセスが集中したの 
でしょうか。それとも他に原因があったのでしょうか。
ご提示くださいました時間に「高い負荷」を検知したため、
当サポートにて確認いたしましたところ、該当ドメイン
【〇〇〇〇.com】へのアクセスが多いため
高負荷が発生した可能性があるとご案内いたしました。


なお、該当ドメインへのアクセス状況につきましては、
[サーバーパネル]→[ログファイル]→[アクセスログ]タブにて
お客様にてご確認くださいますようお願いいたします。
私の質問:現在このサーバーに対して、まだ制限がかかっている状態なのでしょうか。
はい、現時点でも制限している状況となりますが、
問題が改善されている傾向でございましたので
今回実施いたしました制限を『緩和』しております。

今回実施した制限の『解除』につきましては、
もうしばらく様子を見て改めて検討いたしますこと
ご了承くださいますようお願いいたします。

この回答から今回なぜサーバーダウンしたのかという原因に対して、私の中で出た結果は、3/26のアクセス数が77640PVで、通常の日より1万PV程多い感じになります。

サーバーダウン

このPV数に対して、エックスサーバーのサーバー環境が最新でなかった、PHPも最新でなかったので、徐々に上がってきていたPV数に対してCPUにかなり負荷がかかってしまったのではないかと思いました。

現在エックスサーバーを契約していて、何年も前のままの状態になっている方は、ぜひ最新の状態に変更されることをおすすめします。(インフォパネルから無料でできます。) 

サーバーを移転したにもかかわらず、気になったので、2つ目の質問をしてみて、MixHostに変更して本当に良かったなと思いました。

高機能30日無料お試し期間があるMixHostの詳細をみる

この決断のおかげで、4日という早さで回復することができました。

  • 3/28の朝から全くサイトが見れなくなって
  • 3/30にはアクセスが回復し始め見れたり、見れなかったりの状態から
  • 3/31 11:37には完全に安定してサイトを見ることができるようになりました。

同じ状況になった方や、サーバーについて悩んでいる方のお役に立てれば幸いです。