なぜWebサイトはダウンするのか?Website MonitoringとUptimeの仕組み
Webサイトが読み込めないとき、最初に知りたいのは「全員にとって落ちているのか、自分だけなのか」です。サイトが落ちる理由、状態確認の方法、uptimeの意味を理解すると、訪問者でもサイト運営者でも原因を素早く切り分けられます。
目次
全員にとってダウンしている?それとも自分だけ?
Webサイトが読み込めない原因は、あなた側のネットワーク、ISP、DNS、ブラウザ、cache、firewall、VPNにあるかもしれません。逆に、サーバー側でサイト自体が利用不能になっている場合もあります。原因の場所によって対処法はまったく変わります。
全員にとって落ちているのか、自分だけなのか?
Scenario A: 全員にとってダウン
あなたも他のユーザーもサイトへ到達できない。
サーバーが503を返す、timeoutする、または応答しない。
問題はサーバー側にある。訪問者は通常、復旧を待つしかない。
Scenario B: 自分だけアクセスできない
他のユーザーはアクセスできるが、自分だけ開けない。
サーバーは稼働しているが、DNS、ISP、browser、firewall、cache、VPNが経路を妨げている。
見分け方:
1. Wi-Fiではなくmobile dataなど、別のnetworkで試す。
2. オンラインの "Is It Down" checkerを使う。
3. 他の人に同じサイトを開いてもらう。
4. 公式status pageがあれば確認する。Webサイトがダウンする理由
Webサイトは複数の仕組みがつながったchainです。重要な部分が1つでも失敗すると、ページは表示されないことがあります。通常、ページを見るまでには次の処理が成功する必要があります。
Webサイト表示に必要なもの:
入力: example.com
Step 1: DNS resolution
DNS resolverがserver IP addressを見つける。
失敗するとDNS_PROBE_FINISHEDやNXDOMAINとして見えることが多い。
Step 2: TCP connection
端末がserverへ接続する。通常はport 443。
失敗するとconnection timed outになりやすい。
Step 3: TLS handshake
browserとserverが暗号化設定とcertificateを確認する。
certificateの期限切れや設定ミスはsecurity warningになる。
Step 4: HTTP request
browserがhost name付きでGET /を送る。
serverはHTTP status codeを返す。
Step 5: Application processing
web server、app server、database、APIがpageを生成する。
bugや過負荷は500、502、503 errorになりやすい。
Step 6: Response delivery
HTML、CSS、JavaScript、images、CDN assetsが返る。
一部だけ失敗すると、壊れたページやtimeoutになる。HTTP Status Code: 数字の意味
サーバーが応答すると、HTTP status codeを返します。この3桁の数字は何が起きたかを示し、Webサイトが動かない理由を診断する最速の手がかりになります。
成功応答とRedirect
| Code | Name | 意味 |
|---|---|---|
| 200 | OK | サイトは動作しており、requestは成功した。 |
| 301 | Moved Permanently | ページは新しいURLへ移動し、browserはredirectすべき。 |
| 304 | Not Modified | cache版がまだ有効なので、browserは再download不要。 |
Client Error
| Code | Name | 意味 |
|---|---|---|
| 400 | Bad Request | requestが不正でserverが理解できない。 |
| 401 | Unauthorized | アクセス前に認証が必要。 |
| 403 | Forbidden | そのresourceへアクセスする権限がない。 |
| 404 | Not Found | ページが存在しない、URLが誤っている、または削除された。 |
| 408 | Request Timeout | serverがrequest完了を待ちすぎた。 |
| 429 | Too Many Requests | requestが多すぎてrate limitされている。 |
Server Error: サイトがダウンまたは不健康
| Code | Name | 意味 |
|---|---|---|
| 500 | Internal Server Error | server側でbug、設定ミス、未処理例外などが起きた。 |
| 502 | Bad Gateway | proxyやload balancerがupstream serverから不正な応答を受けた。 |
| 503 | Service Unavailable | serverが過負荷、maintenance中、または一時的に応答不能。 |
| 504 | Gateway Timeout | proxyやload balancerがupstream serverの応答を待ちすぎた。 |
Website Monitoringの仕組み
Website monitoringは、決められた間隔でサイトを確認し、利用不能、遅い、期待と違うresponseを返す、といった状態を検出して運営者へ通知します。
Uptime monitoringの一般的な流れ:
1. monitoring serviceが1-5分ごとにURLをcheckする。
2. HTTP status code、response time、error messageを記録する。
3. false alarmを減らすため、複数locationから失敗を確認する。
4. email、SMS、Slack、PagerDutyなどへalertを送る。
5. incident、SLA、長期的な信頼性分析のためにuptime reportを保存する。
良いmonitoringは「ページが開いたか」以上を確認する:
- status codeは正しいか?
- responseは十分速いか?
- page内に期待するtextがあるか?
- certificateの期限は近くないか?
- DNS resolutionは正常か?Uptimeの計算: 99.9%の本当の意味
Uptimeは、サービスが利用可能だった時間の割合です。数字は小さな差に見えても、年間downtimeでは大きな違いになります。
| Uptime | 年間downtime目安 | 月間downtime目安 |
|---|---|---|
| 99% | 約3.65日 | 約7.3時間 |
| 99.9% | 約8.76時間 | 約43.8分 |
| 99.99% | 約52.6分 | 約4.4分 |
| 99.999% | 約5.26分 | 約26秒 |
Uptime formula:
uptime % = available time / total time x 100
Example:
30日間 = 43,200分
downtime = 45分
uptime = (43,200 - 45) / 43,200 x 100
= 99.8958%99.9%でも十分とは限らない
99.9% uptimeを約束するproviderでも、年間約8.76時間のdowntimeは許容されます。それが最も売上が大きい日に集中すると、数字以上の影響になります。Uptime percentageは「いつ落ちたか」を表さず、実際にはタイミングが総時間より重要なことがあります。
Webサイトがダウンしているか確認する方法
サイトが開かないときは、感覚で判断するより複数の観点から確認する方が確実です。
確認checklist:
1. ページを再読み込みする。
2. private/incognito windowで開く。
3. 別のbrowserで試す。
4. Wi-Fiではなくmobile dataで試す。
5. VPNやproxyを一時的に切る。
6. DNS cacheをclearする。
7. online website down checkerを使う。
8. status pageや公式SNSを確認する。
よくある結果:
200 = OK
5xx = server error
failed = browserが接続できなかった可能性が高いDowntimeのよくある原因
| 原因 | 症状 | 運営者が確認すること |
|---|---|---|
| Server overload | 遅い、timeout、503 | traffic spike、CPU、memory、queue、autoscaling |
| Application bug | 500 error、特定ページだけ失敗 | logs、recent deploy、exception tracking |
| Database issue | login不可、checkout失敗、504 | connections、slow queries、replication、locks |
| DNS problem | domainが解決できない、NXDOMAIN | DNS records、nameserver、TTL、domain expiry |
| TLS certificate issue | security warning、HTTPS不可 | certificate expiry、chain、hostname mismatch |
| CDN or proxy outage | 一部地域だけ失敗、502/503 | CDN status、origin health、cache rules |
| DDoS or attack | 大量traffic、429/503 | WAF logs、rate limits、mitigation provider |
| Expired domain | siteがparking pageへ変わる | registrar status、auto-renewal、WHOIS |
サイトが読み込めないときにできること
訪問者としてできることは限られますが、自分側の問題かサーバー側の問題かはかなり切り分けられます。
訪問者が試せること:
Local checks:
- reloadする
- browser cacheをclearする
- 別browserで開く
- VPN/proxyを切る
- DNSを変更する
Network checks:
- mobile dataで試す
- routerをrestartする
- 別deviceで試す
External checks:
- website down checkerで確認する
- status pageを見る
- 公式SNSやsupport channelを見るDowntimeを防ぐ方法
サイト運営者はdowntimeを完全になくすことはできませんが、頻度、影響範囲、復旧時間を大きく減らせます。
Downtimeを減らす実践:
Monitoring:
- uptime、response time、error rateを監視する。
- 複数regionからcheckする。
- alertを担当者へ直接届ける。
Infrastructure:
- load balancerとhealth checkを使う。
- autoscalingまたは十分なcapacityを用意する。
- database backupとreplicationを設計する。
Deployment:
- stagingでtestする。
- gradual rolloutやblue-green deploymentを使う。
- rollbackを簡単かつ速くする。
DNSとdomain:
- domain registrationのauto-renewalを有効にする。
- 必要に応じてsecondary DNS providerを使う。
- TTLを意図して設定する。
- DNS resolutionをmonitorする。
Backups:
- databaseとfilesを自動backupする。
- restoreを定期的にtestする。
- backupを別regionまたは別providerに保存する。Downtimeのコスト
Downtimeは単なる不便ではありません。売上、運用、SEO、ユーザー信頼にコストを生みます。
| 影響 | 詳細 |
|---|---|
| 売上損失 | e-commerceやSaaSでは、利用不能な間にconversion、subscription、transactionを失う。 |
| SEOへの影響 | 長時間または頻繁なoutageと5xx errorsは、search engineのcrawlやrankingに悪影響を与える可能性がある。 |
| ユーザー信頼の低下 | 訪問者はサイトを離れ、事業を信頼しにくくなり、競合へ移ることがある。 |
| SLA penalty | SLA commitmentsを持つproviderは、返金やcredit提供が必要になる場合がある。 |
| チームコスト | engineerが予定作業を止めてurgent incident対応に入る。 |
記憶に残る大規模outage
大企業でも重大なoutageは起きます。Facebookは2021年10月にBGP関連のincidentで約6時間利用不能になり、Cloudflareは2022年6月に27分のoutageを起こし、AWS us-east-1のincidentはこれまで何度もインターネットの広い範囲へ影響しました。
Webサイトがダウンしているか確認
無料のWebsite Down Checkerで、任意のWebサイトが動作しているか、ダウンしているかを素早く確認できます。HTTP status code、response time、サーバーからの確認結果を、インストールなしで確認できます。
Website Down Checkerを開く参考資料
- Fielding, R. et al. (2022). RFC 9110 - HTTP Semantics (Status Codes). https://datatracker.ietf.org/doc/html/rfc9110#section-15
- Google. How Google handles server connectivity issues. https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Cloudflare. What is a 5xx server error?. https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/
- AWS. Amazon Compute Service Level Agreement. https://aws.amazon.com/compute/sla/