503エラーはWebサーバーへのアクセスが一時的にできない状態の時に表示されます。原因としてはリクエストへの応答ができていないことが挙げられますので、復旧するにはサーバー側の設定を変更する必要があります。今回は503エラーについて解説します。
目次
503エラーはWebサーバーへのアクセスが一時的にできない状態
まず、503エラーはWebサーバーへのアクセスが一時的にできない状態のことを指します。
頻繁に表示されるエラーではありませんが、一気にWebサイトへアクセスが集中した場合などに503エラーが表示されることがあり、「サーバーダウン」とも言われます。
稀にWebサイトのメンテナンスにより503エラーが表示されることがありますが、多くの場合はWebサイトへのアクセス集中によりサーバーへアクセスができなくなっている時に表示されるエラーです。
例えば、
- 大人気YouTuberがWebサイト上で発表をした
- 期間限定商品をECサイト(Webサイト)上で販売した
などの場合、短時間でアクセス数が増大してしまうため、サーバーがそのアクセスの負荷に耐えられず503エラーが表示されてしまいます。
この場合、503エラーが出ないようにアクセス制限を設けたりすることが一般的な対象法になります。
503エラーの原因はリクエストへの応答不可
さて、アクセス集中により表示される503エラー。
そんな503エラーの原因としてあげられるのは「リクエストへの応答不可」です。
そもそも503エラーはHTTPステータスコードの一種で、「4」から始まるエラーなどもHTTPステータスコードの一種に分類されます。
ネットは、PC同士がHTTPプロトコルを使用してお互い通信しあっており、お互いの通信状況をHTTPステータスコードにより判別しています。
503エラーが表示されているということは、HTTPステータスコード的になんらかの問題が生じていることをPCが発信しているという仕組みです。
HTTPステータスコードによると503エラーは、
- Webサーバーへのアクセスが限界を超えた
- Webサーバーのメンテナンス中
などによりリクエストに応答できない状態のことを指しています。
一般的に「Webサーバーがダウンした」「Webサイトが落ちた」などと表現されることが多く、503エラーがおきている場合Twitterでその情報が拡散されることも多いです。
この503エラーが復旧するまでは時間がかかりますので待機するしかありません。
503エラーが出るまでの流れ
503エラーはいきなりポンっと表示されるわけではありません。
実はPCとサーバーで通信が行われており、その間になんらかの不具合やエラーが生じて503エラーなどのHTTPステータスコードが表示されるようになっています。
みなさんが見ているWebサイトのページは、
- ユーザーがWebサイト閲覧のデータリクエストをWebサーバーに送信する(自動的に送信される)
- リクエストを受けてWebサーバーがデータを準備する
- Webサーバーが準備したデータを返送する
- クライアントPCがWebサーバーで用意されたデータをWebサイト上に表示させる
の順序を踏んで表示されています。
ここでSTEP2の「Webサーバーがデータを準備する」のところで、リクエストが多すぎるとWebサーバーがそのリクエストを処理しきれなくなってしまいます。
結果、503エラーが表示されWebサーバーがダウンしてしまうのです。
リクエスト数を無限に開放していると一気にリクエストが来た場合に503エラーが表示されることは明白ですので、企業によってはWebサイト1つあたりに受けることができるリクエスト数を制限していることが多いです。
503エラーが表示されるのは、
- リクエストの待機状態
- リクエストの待機時間
- リクエストの数
などを鑑みて、ホスティング企業がサーバーダウンをさせるかどうかを決めていると言えます。
503エラー発生の具体的な原因
ここまで503エラーの原因は「リクエストへの応答不可」と解説しました。
しかし、もっと深掘りをすれば503エラーの原因は他にも存在しています。
サーバーメンテナンスによる一時的な停止
まずは、サーバーメンテナンスによる一時的な停止です。
これはホスティング企業によりますが、Webサイトをメンテナンスしている場合に503エラーを表示させることがあります。
この503エラーが表示されている場合、
- レンタルサーバー
- ホスティング企業・サービス
などの障害情報を収集し、メンテナンスを行っているのかどうかを確認することをおすすめします。
実は503エラーが表示されているけれどアクセス集中ではなくただただメンテナンスをしていたなんてことも全然考えられますので、メンテナンスが終了するまで待っておきましょう。
メンテナンスが終了すれば503エラーが表示されることはなく、普通にWebサイトへアクセスすることが可能です。
自サイトへ短時間にアクセスが集中したことが原因
続いて、自サイトへ短時間にアクセスが集中したことが原因です。
503エラーの主な原因となっている短時間アクセスですが、負荷がかかりすぎているサーバーを安定状態へ復旧させるために、
- アクセスを制限する
- データの転送量を制限する
などの対処を行うことが多いです。
特に1台のサーバーに複数のユーザーが登録をしている場合、多くのWebサイトからリクエストが送信されて来ますので、思ったより早くサーバー上限に達することも少なくありません。
TwitterやInstagramなどのSNSで拡散された場合に503エラーが表示されることが多いです。
同一サーバー内の他のサイトへのアクセスの集中
多くのWebサイトが利用している共有レンタルサーバーでは、Webサイトに多くのアクセスが集まり始めるとサーバーが持っているアクセス上限を超えないように制限をかけるようになっています。
しかし、共有しているサーバーですのでアクセス制限がかかってしまうと他のWebサイトにも影響を及ぼします。
例えば、
- WebサイトA:アクセスが急増しアクセス制限をかけた
- WebサイトB:いつも通り運営
- WebサイトC:いつも通り運営
の場合WebサイトA~Cが共有サーバーを使用していると仮定すると、B・Cもアクセス制限の影響を受けてしまいます。
そのため、WebサイトAのアクセス制限が解消されるまではWebサイトB・Cもアクセス制限がかかったままになってしまうのです。
処理に時間がかかってしまっていることが原因
続いて、処理に時間がかかってしまっていることが原因です。
この原因は様々あり、
- アクセス数とサーバー処理速度が釣り合っていない
- 画像や動画の読み込みに時間がかかっている
- MySQLのデータベース負荷が大きくなっている
- WordPressのプラグインの誤作動
- CGIやPHPなどの負荷が大きくなっている
など、一概に「これ!」という原因を探ることはできません。
そのため、考えられる原因を一通り探してしらみつぶしに解決していくしか503エラーの対処法はありません。
503エラー発生から復旧までの時間
一度503エラーが表示されるとかなり長い時間、503エラーが表示されているイメージがあります。
実際はどれくらいの時間で復旧するのでしょうか。
できないケースが多い早急な復旧
基本的には、503エラーの対処法はありません。
例えば、
- アクセス数を人為的に減少させる
- サーバーのプランを変更する
などの対処法がありますが、これらは早くても1日以上かかってしまう対処法です。
そのため、アクセス数が自然に落ち着くまで503エラーを復旧させることは困難です。
すぐに復旧できるケース
しかし、すぐに復旧できるケースがあります。
例えば、
- 通信環境に問題がある
- 503エラーが表示される設定をしている
などの場合は、すぐに復旧することが可能です。
特に通信環境に関しては、
- ルーター
- モデム
- PC
を変更することで解決することが多いです。
503エラー対策の詳細
503エラーが発生してしまうのは仕方がないことではあります。
しかし、発生する前にできる503エラーの対策がいくつかありますのでご紹介します。
サーバーにより出資
まずは、サーバーにより出資する方法です。
簡単に言えば「サーバーのプランをアップグレードする」ことが挙げられ、許容できるサーバーステータスを向上させることで、今まで以上にリクエストを受け取ることが可能です。
ただ、アップグレード反映までに2~3営業日かかることがほとんどですので事前に申し込んでおきましょう。
リクエスト数を少なく設定
次は、リクエスト数を少なく設定する方法です。
そもそも送信されてくるリクエスト数を制限しておけば、サーバープランをアップグレードする必要はありません。
ユーザーのアクセス制限もこのリクエスト数削減の一環です。
キャッシュ対策
次は、キャッシュ対策です。
キャッシュはどんどん蓄積されていくものであり、どこかに保管しておくべきものです。
主な保管場所として、
- クライアントPC
- クライアントPCとWebサーバーの間
- Webサーバー
の3つが挙げられますが、それぞれ分散させることでキャッシュが一箇所に蓄積され続けることがありません。
CDNの導入
次は、CDNの導入です。
CDNとは「Contents Delivery Network」の頭文字をとったもので、クライアントPCとWebサーバーの間に設置するものです。
CDNを導入しておけばキャッシュを蓄積させることもできますし、リクエスト数を増加させることも可能です。
WordPressで503エラーが発生する場合の対処方法
503エラーが表示される主な場所はWordpressです。
ではWordpressで503エラーが表示された時の対処法をご紹介します。
WordPressプラグインを一時的に無効化
まずは、WordPressプラグインを一時的に無効化する方法です。
WordPressに多数のプラグインを入れている場合は、一時的に無効化してください。
プラグインが多すぎるとサーバーに負荷がかかってしまいます。
WordPressテーマの無効化
次は、WordPressテーマの無効化です。
プラグインと同じでWordpress内にインストールしているテーマはWebサーバーに負荷をかけています。
一時的に無効化してみてください。
一時的にCDNを無効化
次は、一時的にCDNを無効化する方法です。
先ほどCDNについて解説しましたが、CDNが影響してWebサーバーがダウンすることもあります。
滅多に起きることではありませんが、原因の1つとして考えられますので無効化しておきましょう。
WordPress Heartbeat APIを制限
次は、WordPress Heartbeat APIを制限する方法です。
WordPress Heartbeat APIはWordpressに搭載されているAPIのことを指し、
- コンテンツを自動保存する
- プラグインの更新通知
などを自動的に行ってくれるものですが、Webサーバーに負荷をかけ続けるものとなります。
そのため、WordPress Heartbeat APIを制限しておきましょう。
サーバーのリソースを拡張
次は、サーバーのリソースを拡張する方法です。
先ほどもご紹介しましたが、WebサーバーのプランをアップグレードすることでWebサーバーのリソースを拡大させることが可能です。
Webサーバーに投資する感覚です。
ログを閲覧してWP_DEBUGを有効化
次は、ログを閲覧してWP_DEBUGを有効化する方法です。
WP_DEBUGが無効になっていると、ログを見ることができません。
そのため、WP_DEBUGを有効化してください。
まとめ
今回は503エラーについて解説しました。
503エラーが表示されるのはWebサーバーに問題がありますので、ユーザー側が何かできることはありません。
復旧まで待機することが必須です。