エックスサーバーから高負荷アラートが来てアクセス制限された話・・対策は?
Content
いまやブロガーやアフィリエイターたちのデファクトスタンダードであるレンタルサーバー「エックスサーバー」(Xserver)
月々1000円台の利用料金で、安定したサーバー運営が可能ということで、大抵の人が利用していますよね。私のブログもエックスサーバーで運営しています。
「エックスサーバーならば大丈夫!」というなぞの信頼感があったのですが、今回大量アクセスによる高負荷で、アクセス制限を掛けられてしまいました・・・泣
自身のブログがそこまで影響力を持ったということの証明ではあるんですが、エックスサーバー神話があっただけにちょっとびっくりした事件でした。
そこで今回エックスサーバーから掛けられたアクセス制限の内容やその対策についてまとめてみました。今後この事態に陥った人は参考にしてみてください。
エックスサーバーから高負荷アラートメール
いつもと同じように仕事から家に帰り、ふとメールチェックしてみるとエックスサーバーのサポートからメールが来ていました。
実はA8.netでエックスサーバー広告案件と扱っているので、「またキャンペーンのメールか?」くらいにしか思っていなかったんですが、中身を見てびっくり・・・
※エックスサーバーを使っている人であれば知っていると思いますが、エックスサーバーのサポートから来るメールは結構重要なことが記載されているので、必ずチェックしましょう。
まあ内容を要約するとこんな感じです。
■おたくのサイトがリソース使いすぎて、同じサーバーに載ってるほかの客に迷惑が掛かりそうだからアクセス制限したぞごらぁ!!(`(エ)´)ノ_彡☆ブーブー!!
■解除してほしければ、高負荷対策しろやヾ(▼ヘ▼;)
エックスサーバーのリソース圧迫するほどのアクセスがあるなんて!?というよりもそんなことでアクセス制限されるの!?といった感じでした。
実際、私を含めたブロガーやアフィリエイターたちはエックスサーバーなら大丈夫という謎の信頼感がありますから、リソース食いつぶしてアクセス制限されたなんていう話は聞いたことありません・・・
ところがネットで色々と調べて見ると、結構アクセス制限されてる人いるんですね(笑)
理由は今回の私のようにCPU高負荷だったり、転送量のオーバーだったり、データーベースアクセスだったり様々なようです。エックスサーバーとはいえやはりそこはただのサーバー・・・やはりリソースの限界があるわけです。
私も仕事柄、非機能要件(簡単に言うとサーバーの性能・スペックをどうするか)を扱うことはありますけど、仕事以外で始めて高負荷対策に迫られました。アプリケーションの性能対策って結構地味なんですよ・・・SQLの実行計画見て構造見直したり・・・
そのため基盤増強で簡単にぱっと性能対策できるのが非常にうれしいんですが、どうもどんなプランでも今回のCPU高負荷に耐えられるものはないと・・・
勝手にアクセス制限される
そんなこんなでどうも勝手にアクセス制限されているみたいでした。
これって結構横暴だと思うのは私だけ?(笑)
今回の件で色々調べて見ましたが、多くの人はまずは警告が来て、「次やったら制限するよ」という内容が多かったのですが、事後連絡で制限かけましたなんつーのはちょっとひどい気もします。
まあおそらくどこぞの規約には書いてあるんでしょうけど・・・さらにシステム屋としては色々知っているだけに(普段文句言われてる側)まあしょうがないかという気分になりました。自分専用のサーバーじゃないし、リソースは限られているわけだから・・・
それだけ自身のサイトのアクセス数が増えたんだと好意的に捉えましょう。
ただそうは言っても実際にアクセス制限されてるので、これは速攻でなんとかしなければいけません。
自分でサイトにアクセスしてみると4回に1回くらい500エラー(Internal Server Error)に飛ばされます。これは良く見るいわゆる404Not Foundなどと違って、色々な理由が考えられるんですが、今回はプログラムの同時実行回数を制限されているようなので、必要なプログラムが実行できずに飛ばされてるみたいでした。
↓これね
しかもその後、当サイトにて比較的アクセスが多い時間帯になると503エラーまで発生するようになりました・・・
503エラーは大量アクセスのためのアクセス制限です。該当時間帯には自分でアクセスしても全然繋がらなかったので、相当絞られてますね。
多分、同時実行プロセス数の制限だけじゃなく、同時アクセス数の制限とか色々な制限が掛けられているものと思われます。実際、制限をかけられている期間はかなりアクセス数が減りました。。。
普段は2万/日くらいのセッション数があるのに半分くらいまで落ち込んだイメージです。
まあ稼ぎ時の時間帯にアクセス制限されてる影響でほとんどの流入が503エラーに飛ばされたらそうなりますわな。
CPU高負荷の対策は?
とにかくこのリソース制限を解除するためには、CPU高負荷対策を行わなければなりません。
といっても自分のサーバーじゃないし、WORDPRESSだし、どうしたらいいかわかりませんよね。
エックスサーバーから来たメールにはこう書いてありました。
CPU負荷を軽減させるためには、
一般的には、下記のような観点からの対策がございます。
・プログラムの実行回数を減少させるための対策を導入する
・プログラム処理そのもののCPU使用量を減らす
これだけ見てもどうしたらいいかさっぱりです・・・
ところがさすがはデファクトスタンダードのエックスサーバー様です。ちゃんとメール本文の下のほうに詳しく書いてくれてました。
それらを要約すると以下のような対策があるとのこと。
◆WordPressなどのCMSツールをご利用の場合、キャッシュプラグインの導入をご検討ください
◆「PHP高速化設定(FastCGI)」および「APC」「
◆「PHP7」への変更をご検討ください
まずは最初のキャッシュプラグインを導入してみました。
有名なのはWordPressの場合、「WP Super Cache」や「W3 Total Cache」、「ZenCache(Quick Cache)」などですね。今回は「WP Super Cache」プラグインを導入しました。
ただこのプラグインには注意があって、「WordPress Popular Posts」など、アクセスのたびにプログラムを実行する必要があるプラグインを導入している場合、キャッシュの影響によりこれらプラグインが正常に動作しないケー
要はキャッシュってコピーの表示なので、都度実行しているプログラムが正常に動作しない可能性があるのです。
実際私も人気記事一覧として表示していた「WordPress Popular Posts」が動作しなくなりました・・・
まあこれはまだサイトが脆弱な頃に内部SEO対策というか、コンテンツ充実のために入れた機能であってすでにあまり意味をなしてない気もするので、この機会に外そうかと思ってます。
次に(実はこの対策が一番効いたのですが)、PHPのバージョンを上げました。確認してみると私の使っているPHPバージョンはPHP5だったのですが、最新ではPHP7で、これを導入すると2倍以上の実行速度を誇り、メモリ使用量が大幅に改善されるそうです。
エックスサーバーと契約したのがすでに2年前ですから、そりゃそうですよね。このくらい勝手にバージョンアップしてくれと言いたいところですが、バージョン上げると動作しない機能もあるので、エックスサーバー側は勝手に上げられないのですね。
この対策をしたところ、リソース制限下においても500エラーが出ることはなくなりました。(実際は出ているかもしれませんが、自身のアクセスで4回に1回はエラーとなっていたのがまったく出なくなったので、改善されたのは間違いないです)
ただアクセスが多い時間帯の503エラーはなくなりませんでした・・・
これは完全にアクセス制限を取り払ってもらわないと解消しそうにないです。
エックスサーバーに連絡
さくっと対策して、効果も確認できたので、さっそくエックスサーバに行った対策とともに制限解除のお願いの連絡をしました。
ちょっと重要なのですが、せっかく対策してもエックスサーバーに連絡しないと制限解除してもらえないので要注意です。
お手数ではございますが、
早急に負荷軽減対策を行っていただきますようお願いいたします。
CPU負荷対策を行っていただきましたら、
お客様がなさった負荷対策の詳細を必ずサポートまでご連絡くださ
ご実施いただいた負荷対策を元に改めてCPU負荷を調査し、
負荷状況に問題がないことを確認しましたら、
段階的な制限の緩和や、制限の解除を検討いたします。
ちなみに私の場合、連絡したら
それではしばらくサーバーの状況を監視いたしまして
問題のない水準にまで改善されておりましたら、
今回実施いたしました制限の強化を解除、
または段階的な緩和を実施いたします。
サーバー状況の調査には数日~1週間ほどの時間を要しますので
しばらくお待ちくださいますようお願いいたします。
という回答がきました・・・
まあ確かに一時的なアクセス集中の場合、それなりの期間経過観察しないとわからないですからね。
この後一週間後くらいに解除の連絡が来て、めでたくアクセス制限が解除されました。(長かった・・・)
まとめ
今回の件で思ったのは、アプリ側(コンテンツ)だけじゃなく、基盤側もきちんと更新が必要ということですね。実際今回の件があって、PHPバージョンを上げたら表示速度が改善されたので、そこだけは泣きっ面に蜂じゃないですが、唯一感謝です。
みなさんも使ってるミドルウエアやプログラムのバージョンを一回見直してみてはいかがでしょうか?
意外な性能アップにつながるかもしれませんよ!
そしてそれでもこれだけの大量アクセスを安い料金で捌いてくれるエックスサーバーはやっぱりさすがだと思いました。今回の件にしても事後連絡とはいえ、高負荷対策をしっかりとサポートしてくれるので、安心はできます。
当サイトで使用しているのは「エックスサーバー」です。サーバーレンタルで迷っているならエックスサーバーと使って見てください。
最後までお読みいただきありがとうございます!あなたのシェアが記事を書く原動力です。