こんにちは、ヨガ講師&旅ブロガーのサヤカ(@sayaka.yinyoga)です。
熱心なブログ読者の方はお気づきだったと思うのですが、この1ヶ月間このブログが表示できない状態にありました。
そう、Xserverからの強制アクセス制限を受けて、ブログが凍結されてしまっていたのです!!!
で、ようやく1ヶ月後の本日、なんとかブログの復旧へとこぎつけたんですけどね…。
本当に大変だったよ〜😭
(素人にトラブル対応は厳しいよ…)
同じようにエラーに苦しんでいる人がいたら、ぜひ参考にしてほしい…!
私が陥った強制アクセス制限の経緯と、復旧対策について記します。
対策だけすぐに知りたいかたは>>>結論へどうぞ!
ネパール行ったらブログがブッ飛んだ?
事の起こりは、エックスサーバーからの1通のメールでした。
ネパールから帰ったら
旅話をガンガン更新しよう!
そう思って渡航中もドラフトを書き溜めていたというのに、帰国日前日の夜、エックスサーバーから何やら不穏なメールが届いたのです。
↓↓↓ 件名がすでにヤバイやつ
お客様のサーバーアカウントにおける著しく高いデータベース負荷について???
本文には該当MySQLデータベースに対する著しい負荷上昇とかオーバーヘッドの削除によるテーブルの最適化が有効とか書いてあるけど、ハッキリいって意味不明🤪
だいたいカトマンズのホテルじゃ通信速度が遅いので、原因も対策も調べようがないし…まあ帰国まで放っておこうと、他人事のように高みの見物を決め込んだらこれが大間違い!
なんと翌日にはデータベースやサーバーパネルへのアクセス権限を削除され、ブログが見られなくなってしまったのです!
(Xserverさん、仕事が早いよ…😭)
(わたしまだ、カトマンズにいるんですけど!?)
不具合の原因は…?
結論からいうと、原因は現在使用しているワードプレステーマにありました。
アクセス数が表示できるビューカウント機能が、データベースに負荷をかけている(らしい)のです。
その積もり積もった負荷が限界に達して、サーバー側からの警告&アクセス制限につながった、と…。
でもね、これってタイミングが最悪じゃないですか!?
なんでよりによって海外渡航中に、しかもちょっとセキュリティが甘そうなWifiに接続した直後に連絡がくるのさ😭😭
わたしの頭の中は
不正アクセス👿
ブログの初期化😈
しか渦巻いていませんでしたよ…。
兎にも角にも、帰国後は不正アクセス疑惑に怯えながらも、エックスサーバーが提案してきた一般的な対策とやらを試してみることにしました。
詳細は割愛しますが、FileZillaをダウンロードして、phpMyAdminに必死になってログインしたのに、結局オーバーヘッドの削除ができず…。
「root化しなければ無理」みたいな記事を読んだ時点で、完全に白旗。自力解決をここで放棄しました。
プロへ依頼・失敗編
自力で解決できなければ、プロにお願いするしかない。
3日以内に解決
丸投げで作業代行
を売りにしている某業者に、大枚はたいて依頼したところ、これが見事なほどに大外れ!
即時解決を売りにしているのに1日以上メッセージを放置するし、代行どころかこちらに作業指示を出してくるし、その上その作業指示のタイミングがクッソ遅いし…もう散々な目に合いました。
フライトはマイレージ特典を使ったので、LCC代入れても2万7千円程度‼️ネパールへは特にスターアライアンスが使いやすい印象。マイルじゃないけど関空からなら直行便もあるよ!往路7時間って、バリに行くのと変わらんよ!ネパールは意外と近い&安い‼️#2019サヤカツアーネパール
— サヤカ/旅するヨーガ食堂 (@sayaka_yinyoga) October 27, 2019
(渡航費総額より高いお金払ったのに、この仕打ちかよ…)
結局1週間たっても何も解決せず、キャンセル&返金依頼をしました。この出来事でわたしの神経がさらに消耗したことは言うまでもありません。
ついに出会った救いの神!!!
最終的にわたしを救ってくれたのは、このお方。Webエンジニアの大薗さんです!
ココナラ、今月の売上は今のところ223,300円!
作業時間は平均すると1日30分程度。
(そう考えるととても割の良い副業な気がする)はじめの2ヵ月はポツポツと依頼が来る程度だったけれど、3か月目からはコンスタントに月10万を越えるようになった。webエンジニアには良い副業になると思う。 pic.twitter.com/qp88qFyob6
— ゾノ / webエンジニア (@ozonosho) November 29, 2019
スキルマーケットであるココナラ
経由で復旧作業を依頼しました。
驚くべきことにね
なんと1時間でブログを
を直してくれたんですよ!!
(✨神!!!✨)
(っていうか、今までの悶々と過ごした1ヶ月は何だったの!?)
ブログの表示エラー自体は、依頼からほんの20分程度で修正するというスピード感。
その鮮やかな復旧作業と、懇切丁寧な対応に、プロの技をまざまざと見せつけられた気がしました。
(一度は全消去を覚悟したわたしのブログ。再会できた時は、陳腐な言葉だけれど涙が出るほど嬉しかったよ😢)
復旧にかかった費用は1万5千円
ココナラは今回の件ではじめて使ってみたけれど、能力の確かな人が登録しているみたいだし、支払いのシステムなどもきちんとしているし、安心して利用できるな〜という感想です。
個人的なポイントとしては「顔出ししている出品者に依頼をする」ということでしょうか。
顔出し=信頼の証
ココナラのような誰もが出品者になれるサイトでは、この図式は結構有効だと思います。実際わたしは顔出ししている出品者に依頼をして、大正解でした!
結論:
ワードプレスの不具合修正は
即座にプロにお願いすべし!
今ならわかる、プロの凄さ。
復旧作業はさっさと専門家に投げて、自分は記事作成に注力した方が、断然健全!建設的です!!
自力でなんとかしようと必死になって調べて、神経を消耗しながら作業をして、結局何の解決にもならないとか…時間の無駄にもほどがあります!!
もしあなたがエラーや不具合に悩んでこの記事にたどり着いたのだとしたら、今すぐ専門家に依頼することをオススメします。
くれぐれも、わたしのように無為な時間を過ごさないようにしてください😭
以上、インド&ネパール旅で起こったトラブルその1️⃣でした。ネパール旅ブログも楽しみにしていてくださいね〜
追記:エックスサーバーとのメール詳細
2019年12月9日、Xserverカスタマーサポートから「制限解除」の連絡が来ました。
今回の騒動をあらためて時系列で並べるとともに、Xserverとのメールやりとりも記します。何かのご参考になれば幸いです。
11/4 👨💻データベース負荷警告(1回目)
11/5 👨💻データベース負荷警告(2回目)→アスセス権限削除
・
自力復旧を図るが解決せず
多忙につき3週間ほど放置
・
4週間目にプロに依頼→失敗
5週間目にプロに依頼→即時解決!
・
12/2 👩💻Xserverへ対策を報告
12/9 👨💻制限解除・全面解決
データベース負荷警告(1回目)
平素は当サービスをご利用いただき誠にありがとうございます。
Xserver カスタマーサポートでございます。
会員ID : ■■■■■
サーバーID : ■■■■■
データベース : ■■■■■
データベースユーザー: ■■■■■
お問合せ番号 :■■■■■
お客様のサーバーアカウントにおいて、該当MySQLデータベースに対する著しい負荷上昇を確認いたしましたのでお知らせいたします。
※11/4 20:35頃と22:49頃 高い負荷を検知しました。
※負荷検知時点の状況を調査しましたところ、下記SQLが複数実行されておりました。こちらがデータベース負荷の要因となっている可能性がございます。該当SQLにお心当たりがあるかどうかご確認ください。
▼負荷検知時点で複数実行されていたSQL
——————
SELECT SQL_CALC_FOUND_ROWS wp_posts.*, COUNT(DISTINCT post_views.id) AS views FROM wp_posts INNER
——————
今後も同様の負荷が確認された場合、同データベースサーバーをご利用の他のお客様への影響を防ぐため、該当データベースからのアクセス権の削除や同時接続数の制限等、なんらかの制限を実施する可能性がございます。
お手数ではございますが、早急に負荷軽減対策を行っていただきますようお願いいたします。
データベース負荷対策を行っていただきましたら、お客様がなさった負荷対策内容を必ずサポートまでご連絡ください。
ご実施いただいた負荷対策を元に改めてデータベース負荷を調査いたします。
━━━━━━━━━━━━━━━━━━
■データベース負荷の軽減対策について
━━━━━━━━━━━━━━━━━━
一般的なご案内となりますが、データベース負荷対策として、下記のような方法がございます。
▼一般的なデータベース負荷対策
——————
(1)レコード数の多いテーブルに対してインデックスを設定する
(2)インデックスの構成をプログラムの抽出条件に即したものにする
(3)キャッシュの活用によりデータベースへの接続頻度そのものを低減させる
——————
上記(1)(2)につきましては、有名CMSなどをご利用の場合、すでに適切に設定されておるケースも多くございます。
お客様ご自身にてプログラムを構築された場合、負荷改善対策の一つとしてご確認ください。
——————
■キャッシュの活用について
——————
WordPressなどのCMSツールをご利用の場合、キャッシュプラグインの導入をご検討ください。
※キャッシュプラグインとは、データベース処理の結果やアクセスしたページの表示内容などを一時的に保存し、次回以降のアクセスにて保存したデータを活用することで、プログラム負荷を軽減し、動作を高速化させるプラグインです。
キャッシュの活用によりデータベースへのアクセス頻度が緩和されるため、データベース負荷の抑制に効果がございます。
——————
以上、何卒よろしくお願い申し上げます。
ご不明な点などございましたら、お気軽にお問い合わせください。
データベース負荷警告(2回目)
平素は当サービスをご利用いただき誠にありがとうございます。
Xserver カスタマーサポートでございます。
会員ID : ■■■■■
サーバーID : ■■■■■
データベース : ■■■■■
データベースユーザー: ■■■■■
お問合せ番号 :■■■■■
11/4にも同様のご連絡を実施しておりますが、お客様のサーバーアカウントにおいて、該当MySQLデータベースに対する著しい負荷上昇を確認いたしましたのでお知らせいたします。
※11/5 21:14頃 高い負荷を検知しました。
※負荷検知時点の状況を調査しましたところ、下記SQLが複数実行されておりました。こちらがデータベース負荷の要因となっている可能性がございます。該当SQLにお心当たりがあるかどうかご確認ください。
▼負荷検知時点で複数実行されていたSQL
——————
SELECT SQL_CALC_FOUND_ROWS wp_posts.*, COUNT(DISTINCT post_views.id) AS views FROM wp_posts INNER
——————
なお、事後のご案内となり大変申し訳ございませんが、同データベースサーバーをご利用のお客様への悪影響が懸念されたため、お客様のサーバーアカウントに対し下記の制限を実施しております。
▼サポートにて実施した制限内容
——————
・該当データベースへのアクセス権限を削除
・サーバーパネル「MySQL設定」へのアクセスを制限
——————
お手数ではございますが、早急に負荷軽減対策を行っていただきますようお願いいたします。
データベース負荷対策を行っていただきましたら、お客様がなさった負荷対策内容を必ずサポートまでご連絡ください。
ご実施いただいた負荷対策を元に制限の解除やアクセス権限の付与などを検討いたします。
━━━━━━━━━━━━━━━━━━
■データベース負荷の軽減対策について
━━━━━━━━━━━━━━━━━━
一般的なご案内となりますが、データベース負荷対策として、下記のような方法がございます。
▼一般的なデータベース負荷対策
——————
(1)レコード数の多いテーブルに対してインデックスを設定する
(2)インデックスの構成をプログラムの抽出条件に即したものにする
(3)キャッシュの活用によりデータベースへの接続頻度そのものを低減させる
(4)不要なデータを削除し、データベースを軽量化する
——————
上記(1)(2)につきましては、有名CMSなどをご利用の場合、すでに適切に設定されておるケースも多くございます。
お客様ご自身にてプログラムを構築された場合、負荷改善対策の一つとしてご確認ください。
——————
■キャッシュの活用について
——————
WordPressなどのCMSツールをご利用の場合、キャッシュプラグインの導入をご検討ください。
※キャッシュプラグインとは、データベース処理の結果やアクセスしたページの表示内容などを一時的に保存し、次回以降のアクセスにて保存したデータを活用することで、プログラム負荷を軽減し、動作を高速化させるプラグインです。
キャッシュの活用によりデータベースへのアクセス頻度が緩和されるため、データベース負荷の抑制に効果がございます。
——————
■不要なデータの削除について
——————
非常に膨大なレコード(データ)が存在するテーブルに対して複雑な条件でレコードを抽出した場合、大きな負荷が発生するケースがございます。
このような場合、クエリ自体の見直しとともに、以下の手順にてテーブルの最適化処理ならびに不要なデータの削除をなさいますようお願いいたします。
——————
▼テーブルの最適化
——————
1.サーバーパネルへログインしていただき「phpmyadmin(MySQL)」をクリックしてください。
2.画面右側にて、「オーバーヘッド」に数値が表示されているテーブルがございましたら、該当テーブルの左にチェックを入れてください。
3.画面下部の選択画面「チェックしたものを」にて、「テーブルを最適化する」をご選択ください。
※オーバーヘッドとは、データの「更新」「追加」「削除」などに伴い発生する「冗長化部分」です。これらオーバーヘッドを削除する処理が「テーブルの最適化」です。
※テーブルを最適化した場合にも、データ内容の変更はございません。
——————
▼データの削除 【!】本処理はご利用中のデータベース内容の変更を伴います
——————
1.phpmyadminの画面左側にてデータベースをクリックしてください。
2.画面左側にて、テーブル名をクリックしてください。
3.画面上部の「表示」をクリックすることにより、データ内容が一覧で表示されます。
こちらのデータより不要なデータを削除してください。
※データを削除する場合、phpmyadmin上部の「エクスポート」より事前にデータのバックアップを取ることをお勧めいたします。(データのバックアップを取らない状態でデータを削除した場合、データの復旧が行えませんのでご注意ください)
——————
以上、何卒よろしくお願い申し上げます。
ご不明な点などございましたら、お気軽にお問い合わせください。
負荷対策の報告
Xserver カスタマーサポート
ご担当者様
お世話になっております。
標記の件について、負荷対策を実行しましたのでご報告いたします。
【負荷対策】
①全テーブルの最適化(オーバーヘッド削除)
②キャッシュの導入=DB接続回数の減少
②については、プラグイン(WP Fastest Cache)を導入して、データベースアクセスの頻度や通信頻度を下げました。
また根本的な問題であった、使用テーマにおけるView数表示の機能をオフにいたしました。
対策は以上となります。
この度は、ご迷惑をおかけいたしまして、大変失礼いたしました。
今後とも、どうぞよろしくお願い申し上げます。
対策受付の連絡
お忙しい中ご返信いただき恐れ入ります。
それではしばらく負荷状況を監視いたしまして問題のない水準にまで改善されておりましたら、今回実施いたしました制限の強化を解除、または段階的な緩和を実施いたします。
負荷状況の調査には数日~1週間ほどの時間を要しますのでしばらくお待ちくださいますようお願いいたします。
恐れ入りますが、何卒よろしくお願い申し上げます。
制限解除の連絡
お待たせいたしました。
改めて負荷状況を確認いたしましたところ、問題のないレベルまで改善されておりましたので、今回実施いたしました制限の強化を『解除』いたしました。
現在は通常のご利用が可能な状態でございます。
この度はご対応いただきましてありがとうございました。
ご不明な点がございましたら、気軽にお問い合わせください。
何卒よろしくお願い申し上げます。