TV由来の大量アクセスが運んできたもの。エックスサーバーのアクセス制限対策。

先日、テレビで紹介された情報経由で一瞬だけ大量のアクセスがありました。

それは、Analyticsリアルタイムのアクティブユーザー数で1000になるくらいの数でした。

リアルタイムレポートの同時接続数

これは仮にこのアクセスが、24時間続けば月に1000万PVは超えるであろう数字です。

で、そんな大量のアクセスがあったにもかかわらず、僕が観測していた限りでは、3回ぐらいの500サーバーエラーで乗り切ったエックスサーバーがすごいと思ったので、以下のような記事を書きました。

最近、「テレビは見ない」「若者のテレビ離れが…」なんてのをよく見かけます。 ただ、そうは言っても大抵なら一家に一台あるこの情報...

ただ、問題は次の日、ちょっと面倒なことになったので、その経緯などについて書きたいと思います。

スポンサーリンク
レクタングル(大)広告

爆発的なアクセスのその後

そもそも、事の始まりは、テレビ朝日の番組、くりぃむしちゅーの「日本人の3割しか知らないこと」で、Googleの隠しコマンド的な検索方法が紹介されたことです。

その番組を見て、「試しにやってみよう」という方が多かったためか、以下の記事に「Google 裏技」「Google 隠しコマンド」などで検索から大量のアクセス流入がありました。

Googleには、とても便利な「隠し機能」が多数存在します。 例えば、「曲 Mr.Children」のように「曲 アーティスト...

これのせいで、サーバーが数回落ち、エックスサーバーには大変な迷惑をかけてしまいました。

ただ、大量のアクセスがあったにもかかわらず、ほんの数回500エラーを出しただけで、その後はほとんど平常運転だったエックスサーバーに驚かされたので以下の記事を書きました。

最近、「テレビは見ない」「若者のテレビ離れが…」なんてのをよく見かけます。 ただ、そうは言っても大抵なら一家に一台あるこの情報...

ただ、サーバーを運営する側としては、例え1、2時間だけだったとしても爆発的なアクセスはよくないようで、次の日に「【重要】Xserver お客様のサーバーアカウントにおける著しく高いCPU負荷について」というタイトルとともに一通のメールが届きました。

その内容が以下。

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

7/19 19:44頃、20:00頃、21:29頃 高い負荷を検知しました。
※PHP(バージョン5.3)プロセスにて非常に高い負荷が発生していることを確認いたしました。
※簡易的に調査したところ、
ドメイン名「nelog.jp」に対するアクセスが多いようでございます。
原因特定の参考にしていただければと存じます。

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

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

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

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

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

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

なんと、当サイトが次の日からアクセス制限されてしまいました。それとともにアクセス制限を解除するには、何かしら対策を取る必要が出てきました。

詳しい制限内容は「実行可能なプロセス数(プログラム数)の制限強化」です。

ただ、僕はまだこのとき楽観視していました。

というのも、本文中に「7/19 19:44頃、20:00頃、21:29頃 高い負荷を検知しました。」とあったからです。

その記載された時間の負荷は、明らかにテレ朝の番組があったためであり、1時間ほどだけ検索流入が増えただけだったからです。実際に、次の日には当サイトも通常通りのアクセス数になっていました。なので、こちらに問題があったわけではないと思っていました。

そういった理由もあり、エックスサーバーのサポートに「HAHAHA! その高い負荷は一時的なテレビ番組の影響だよ。」と言わんばかりに、以下のような内容のメールを返信しました。

昨晩の負荷は、昨晩のテレビ番組「 日本人の3割しか知らないこと」にて「Googleの裏コマンド」みたいな内容のVTRが紹介され、それにより、普段よりも大量のアクセスが来たからです。

(中略)

ですので、突発的なものなので、テレビ番組が終了し、アクセスが収まった今は、特に対策する必要は、ないと考えています。

もう一度、現在の状態を確認していただき、制限の解除を行っていただけると助かります。

僕としては「アクセスも収まったし、特に対策しなくても良いのでは?」と思っていました。

ただ、やはりサーバーを管理する側としては、今回のことは、そんな甘いことではなかったようです。丁寧な文面で以下のような返信が届きました。

今回のアクセス集中が突発的なものであることは承知いたしましたが同様のことが発生した際も、極力負荷が発生しないように改善をご検討くださいますでしょうか。

当面、同じような状況が発生する可能性が低いことは重々承知しておりますが、同サーバーの他のお客様への悪影響を避けるため慎重な対応を取らざるを得ませんこと、ご了承くださいますようお願いいたします。

なんと、テレビ情報からの検索流入で一時的にアクセスが増えた場合だったとしても、1度そういったことがあった場合は、次に同じような状況が発生した時にも大丈夫なように対策を取って欲しいとのことでした。

そして、対策しない限りは、アクセス制限は解除されないようでした。

常日頃、恒常的に高い負荷をかけているならわかるのですが、一瞬だけドっと押し寄せただけで、制限を受けるとは夢にも思っていませんでした。

でもこれは、レンタルサーバーとしては当然のことなのかもしれません。

というのも、レンタルサーバーという性質上、同じスペースに僕以外にも多くの人が利用しています。なので、当サイトで500サーバーエラーが出ていたときは、同スペースの他サイトでも同様にエラーが出ていたと思われます。そういった人たちに今後迷惑がかからないように、エックスサーバーとしても対策を取る必要があるからだと思います。

ただ、CPU負荷軽減対策といっても、サーバーの専門家でもない僕には、わからないところです。けれど、エックスサーバーのサポートメールには、対策方法の提案についても書かれています。ですので何か他に特別な問題がない限り、書かれている通りに行えば、大抵うまくいくのではないかと思います。

行ったCPU負荷軽減対策

サーバーに、負荷がかかった場合エックスサーバーでは以下のような500サーバーエラーが表示されます。

エックスサーバー500エラー

CGIの負荷が大きい(CGIプロセスが多数動作している)。

この表示にもあるように、サーバーのCPUに大きな負荷がかかっているため、CPUの負荷を軽減させるための対策を取る必要があります。

前回の記事では、転送量のことについて書いています。けれど、サポートによると一時的な大量アクセスによる転送量については、特に問題ないらしく、それもよりもCPUの負荷が問題みたいです。ですので、適切なCPU負荷対策をとる必要があります。(僕も、最初CPU負荷と転送量を混同していたところもあって違った対策をしていましたが、サポートに丁寧に対策方法を教えていただきました。)

サポートメールによると、こういったケースでのCPU負荷対策は、以下の方法が有効だと提案していただきました。

  • 「Quick Cache」や「W3 Total Cache」などのキャッシュプラグインを利用する
  • 「WordPress Popular Posts」プラグインの停止
  • 「EWWW image optimizer」プラグインの停止

キャッシュプラグインの利用

キャッシュプラグインを利用するのは、1度誰かがアクセスしたページを一定時間、静的なデータとして保存し、次回以降のアクセスにおいては保存した静的データを活用することで、CPU負荷を大幅に軽減し、動作を高速化させるためです。

「WordPress Popular Posts」プラグインの停止

「WordPress Popular Posts」プラグインのような、アクセスのたびにプログラムを実行する必要があるプラグインを導入している場合、キャッシュの影響によりこれらプラグインが正常に動作しないケースがあったりします。その他にも、キャッシュプラグインが有効に機能せず、CPU負荷の軽減につながらないケースがあるため停止する必要があるのだそうです。

「EWWW image optimizer」プラグインの停止

「EWWW image optimizer」プラグインを停止については、僕もちょっと疑問に思って、「画像を圧縮するプラグインは、投稿時(もしくはまとめて圧縮)のみにCPUが多く利用されるので、表示時にあまり関係ないのでは?」と質問してみました。

ただ、サポートによると、プラグインを提供しているわけではないので、詳細なことはわかりませんがという前置きの上、「該当プラグインが動作時には、CPU負荷が上昇することが確認されている。」とのことです。

なので、こういったサーバーを運営上で確認された結果から、停止する提案が出たようです。

ちなみにサーバーの上位プランを使うことで対処できないのか?

当サイトは、エックスサーバーの最安プラン(X10プラン)を利用しています。

なので、上位プランとなる「X20」や「X30」プランを利用すれば、問題が解決される可能性があるのではないかと思い一応、聞いてみました。

すると以下のような返事が来ました。

「X20」プランや「X30」プランは、転送量目安の上限はアップいたしますが、CPUなどのリソース面では、ほぼ「X10」プランと同じでございますので、上位プランへのご変更で、現状の回避は難しいかと存じます。

上位プランにしたとしても使用している機器はほぼ変わらないので、特に意味はないそうです。

ちなみに、エックスサーバーを運営している会社は、シックスコアサーバー(最安プランで月額1800円)という、さらにスペックの高いサーバーを運営しています。

そこで、「仮にシックスコアにサーバを移転したらどうでしょうか?」ということも聞いてみました。

すると以下のような返信が届きました。

警告時の負荷が発生した場合、という仮定であれば共有サーバープランではどのプランでも運用が厳しい状態です。

専用サーバープランであれば特に問題はない可能性がございますが、今回の対策で負荷が軽減している可能性ももちろんございますので、ご質問への回答は結果をお知らせする際に、改めて行いたく存じます。

シックスコアのレンタルスペースでも今回のような大量アクセスは厳しいようです。

ただ、シックスコアの専用サーバープラン(月額3万円)であれば、あれだけの大量アクセスでも特に問題はないようです。

とは言っても、月額3万円、年額にすると45万円強(初期設定費用込み)となると、結構な金額なので、キャッシュプラグインを使った方法をとることにしました。

実際に行った対策

で、実際に行った対策としては、サポートに教えてもらった通り以下の対策をしました。

  • 「W3 Total Cache」キャッシュプラグインの利用
  • 「WordPress Popular Posts」プラグインの停止
  • 「EWWW image optimizer」プラグインの停止

「WordPress Popular Posts」や、「EWWW image optimizer」ただ停止するだけなので簡単です。

問題は、キャッシュプラグインの利用です。

なぜキャッシュプラグインの利用が問題になるかというと、僕の使用しているSimplicityテーマは、キャッシュプラグインの利用に対応していないからです。

キャッシュプラグインを利用すると、そのページに最初にアクセスしてきた端末でページキャッシュが作られてしまいます。

例えば、当サイトのトップページに最初にアクセスしてきたのが、スマホであれば、以下のようなスマホ表示状態のキャッシュが作成されます。

スマホで最初にアクセスがあったときのキャッシュ

これは、そのあとパソコンからのアクセスがあっても、上のように表示されます。

逆に、最初にパソコンからのアクセスがあった場合は、パソコン用のキャッシュが作成されます。

パソコンで最初にアクセスがあった場合のキャッシュ

次にスマホからのアクセスがあった場合でも、上のようにパソコン用の表示がされてしまいます。

この問題を解決するために、テーマをキャッシュプラグインを使用しても問題ないように表示されるように改造し、設定を試行錯誤しました。

すると何とかキャッシュプラグインを使用して、スマホで見ても、パソコンで見ても及第点の表示はされるようになりました。

Simplicityとキャッシュプラグインを併用する設定方法は、以下の記事を参照してください。

先日、運良くというか、運悪くというかテレビ情報経由で大量の検索流入がありました。 ほんの1時間ちょっとなんですが、大量...

対策後エックスサーバーにメール

提案された、対策をすべて施したところで、エックスサーバーのサポートにメールをすると、以下のような返信が来ました。

それではしばらく負荷状況を監視いたしまして問題のない水準にまで改善されておりましたら、 今回実施いたしましたサーバーアカウントへの個別の制限について、段階的な緩和または解除をいたします。

負荷状況の調査には数日~1週間ほどの時間を要しますので、しばらくお待ちくださいますようお願いいたします。

あとは調査の結果を待つのみです。

調査の結果

で、調査の結果を待つこと約1週間、昨日ようやく以下のメールが届きました。

大変お待たせいたしました。

当サポートにて引き続き負荷状況の確認を継続いたしましたが、高負荷状況の発生は確認されませんでした。

従いまして、本日(7/27)15:00の時点で、制限の強化を解除いたしましたことをお知らせいたします。

アクセス制限から1週間後ようやく制限が解除されました。1週間長かったです。

まさか、テレビ情報経由の検索流入で、こんなことになるとは思いませんでした。

アクセス制限されてから3日ぐらい、サーバーの読み込みはめちゃくちゃ遅くなるし

サーバーの読み込み時間がめちゃくちゃ長くなる
(※制限の影響か確かなことはわからないですが劇的に重くなりました。)

また、キャッシュプラグインを利用することにより、広告の配置が変わったことで、AdSenseの収益も結構下がりました。

広告表示を変更したのは、記事下ダブルレクタングル表示にしたまま、キャッシュプラグインで表示すると、モバイルで見たときに、広告が2つ縦に並んでポリシー違反になるためです。

まとめ

当初、1時間ちょっとで1万数千PVのアクセスがきて、「テレビって何だかんだ言っても凄いなぁ」と思って素直に喜んでいました。

けれど、その後は、アクセス制限を受けたおかげで来た数以上のアクセス減になるし、お気に入りのプラグインは使えなくなるし、広告報酬が下がるしで、正直ろくなことになりませんでした。(※今回のGoogle隠しコマンドでの検索流入では、広告収入も全く増えませんでした。)

ただ、キャッシュプラグインを使用したことで、ページ表示は一応早くなりました。加えてテーマをキャッシュプラグインに対応させるために改造するきっかけとなったのだけは、よかったのかなと思います。

あと、急なアクセスで迷惑をかけてしまったにもかかわらず、エックスサーバーのサポートの方々には、丁寧にいろいろと教えていただき本当に助かりました。

やっぱり、サポートがしっかりしているサーバーはありがたいです。

個人が本気でサイト運営をしようと思ったら、以下のポイントは欠かせません。 高性能 安定稼働 低価格 丁寧なサ...

追記:CPU負荷軽減の対策方法については以下に詳しく書きました。

前回、Wordpressのページキャッシュ設定に関する以下の記事を書きました。 上の記事は、Wordpressのページ...

『TV由来の大量アクセスが運んできたもの。エックスサーバーのアクセス制限対策。』へのコメント

  1. 名前:ボヘミアン 投稿日:2015/07/28(火) 22:43:23 ID:16513d38e

    対応お疲れ様です。爆発的なアクセスも、結構考え物なんですね。
    とても参考になりました。

  2. アバター画像 名前:わいひら 投稿日:2015/07/28(火) 22:58:34 ID:185454ecc

    テレビからこれだけの検索流入は今回が初めてでしたが、爆発力はハンパないですね。その代わり、収束するのも滅茶苦茶早いです。
    ただ、ネット上でのバズとは違って急激に増える分、サーバーへの負担も高いようです。
    正直、テレビからの急激なアクセスは、これっきりにして欲しいです…。
    再度警告を受けてサーバー移転とかになると、とても面倒くさいので。

  3. 名前:髙橋諭 投稿日:2015/07/30(木) 11:08:03 ID:870e03257

    こんにちは。大変勉強になりましてた。
    EWWWオプティマザーは意外でした。関係なさそうなプラグインが読み込みを遅くすることもあるのですね。
    テレビは、リアル店舗にも、ネットにも影響与えるのですね。

  4. アバター画像 名前:わいひら 投稿日:2015/07/30(木) 15:06:25 ID:aa683107e

    EWWW image optimizerは、なんでなんでしょうね。
    圧縮時ではなく、表示時にも、負荷がかかるようだと、不具合のような気もするのですが。
    やっぱ、テレビの影響力はすごいですね。
    今は、テレビを見ながらスマホができるので、そういった流入が増えるのかもしれません。
    7割~8割が携帯端末からのアクセスだったので。

  5. 名前:松浦 投稿日:2015/10/22(木) 02:04:26 ID:9e62445a6

    全く同じ症状になり悩んでいました。

    有益な情報をありがとうございます!

  6. アバター画像 名前:わいひら 投稿日:2015/11/14(土) 11:00:34 ID:a210ea93e

    記事がお役にたったのでしたら、嬉しいです。