サイトが攻撃で落ちた時に、別サーバーへすぐ切り替える方法【エックスサーバーで簡単運用】

2025年11月18日に 米ウェブセキュリティー企業クラウドフレアにサービス障害が一時発生し、Adobe、ChatGPT、Xなどが通信の不安定がありました。この手の通信障害で慌てないために事前に準備しておくと安心です。

ここでは、本番サイトが攻撃を受けてダウンした時、あらかじめ用意しておいた「予備サイト」に切り替えることができれば、復旧までの時間を大幅に短縮できます。
この記事では、初心者でもすぐ実践できるDNSのAレコード切り替えと、応用編として.htaccessでの自動切り替えの2つを紹介します。

1 実装のポイント

  • 最も確実で簡単なのは「DNSのAレコード切り替え」
  • 予備サイトを別サーバー・別ドメインで準備しておく
  • .htaccess を使うと簡易的な自動切替も可能
  • 本番サーバーが完全停止の場合は DNS 切替が唯一確実

2 方法1:DNSのAレコードを切り替える(最も確実で初心者向け)

本番サイトがダウンしたら、エックスサーバーの管理パネルでAレコードを予備サイトのIPに変更するだけで、アクセスをバックアップ側へ切り替えられます。
作業は30秒ほど、反映も数分〜10分で完了する実用的な方法です。

2.1 必要な準備

  • 予備サイト(バックアップサイト)を用意しておく
  • 予備サイトのサーバーIPを控える
  • 切り替えは本番サイトのエックスサーバーの「DNSレコード設定」→「DNSレコード一覧」画面で行う
  • 元に戻す際に必要となるので、本番サイトのサーバーIPも控えておく

2.2 切り替え手順(エックスサーバー)


ホスト名:@  
種類:A  
値(IPアドレス):予備サイトのサーバーIP  
  

※wwwなし、あり両方とも設定するのが望ましいです。

このAレコードを書き換えるだけで、ドメイン全体が予備サイト側のサーバーへ切り替わります。
PHPや.htaccessが動かない状態でも確実に切り替えられるのが最大のメリットです。

3 ✔ サーバーIPアドレスの調べ方(確実な方法)

サイトを移行したりDNS設定を変更したりする際に必要になる「サーバーIPアドレス」。レンタルサーバーごとに調べ方が少し異なるので、代表的なサービスごとにまとめました。

3.1 🔵 エックスサーバーの場合

  1. サーバーパネルへログイン
  2. 「サーバー情報」をクリック
  3. 「IPアドレス」という項目に表示されている数字がサーバーIP

例:157.112.xxx.xxx

3.2 🔵 ConoHa WING の場合

  1. コントロールパネルにログイン
  2. 「サーバー管理」 → 「契約サーバー」をクリック
  3. 「IPアドレス」の欄に表示されている

3.3 🔵 さくらレンタルサーバーの場合

  1. コントロールパネルへログイン
  2. 「サーバー情報を見る」をクリック
  3. 「IPv4アドレス」がサーバーIP

3.4 🔵 ロリポップの場合

  1. ユーザー専用ページへログイン
  2. 左メニュー「ユーザー設定」→「アカウント情報」→「ロリポップ!のドメイン」に書かれているhttp://~をコピー
  3. ドメインアドレスサーチで調べる

3.5 🔵 Cloudflare を使っている場合(プロキシ OFF にする)

Cloudflare を通すと本来のサーバーIPは隠されます。IPを確認するには:

  1. Cloudflare のDNS設定で「雲のアイコン(プロキシ)」をグレーにしてOFFにする
  2. その状態で表示されるIPが本来のサーバーIP

3.6 🔵 FFFTP(SFTP)の接続情報を見る

FTP/SFTP の「ホスト名」がサーバーIPになっている場合が多い。IPを確認するには:

  1. 接続後に下の段の「ホスト 157.112.xxx.xxxに接続しています.」が該当していす。

これで、各レンタルサーバーやCloudflare環境、FFFTPでも確実にサーバーIPを調べることができます。

4 方法2:.htaccess を使った自動切り替え(軽い攻撃向け)

サーバーに高負荷がかかった時、自動的に予備サイトへリダイレクトする方法です。PHPやCronで負荷状態(OVERLOADED)を検知し、.htaccess が切り替えを担当します。

ただし、Apache が停止していると動作しないため、補助的な方法として利用します。


RewriteEngine On

# サーバー高負荷時に予備サイトへ切り替える例
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteCond %{ENV:OVERLOADED} =1
RewriteRule ^(.*)$ https://backup-example.com/$1 [R=302,L]
  
補足:
- https://backup-example.comに予備サイトのアドレスに変更

PHPやCronで OVERLOADED=1 をセットすると、予備サイトへ自動で逃がす仕組みが作れます。

5 まとめ:もっとも現実的なのは DNS 切り替え

クライアントから「サイトが落ちている」と連絡があれば、Aレコードを予備サイトIPに変更するだけで即時復旧できます。
確実性・操作の簡単さを考えると、DNS切り替えが最も現実的でおすすめです。