なんやかんやで3回目くらいの移転を実行している本ブログですが、 移転のたびに web サイトの動作確認をしています。 ぼちぼち動作確認にも慣れてきたのでまとめてみようと思います。
じつは何回かサーバー立て替えている
- 初期構築 (2014 年。リンクは最古の記事)
- 最初の移転 (2015 年)
- 2回目の移転(2020年くらい。記事化してないけど podman で構築したのでその記事が出ているあたり)
- 3回目の移転(2026年)
ブログ開設は 2015 年ですが、その前からサーバー自体はあり、初期構築は 2014 年です。 平均 4 年でリプレースかけているのでソフトウェアとしてはよくある間隔ではあると思います。
最初にやること
最初にやることは新しい環境を作ることです。 サブドメインなどを使って動作確認できるようにしておきます。
ここで考えるべきなのは構築期間中のデータの扱いです。 構築中はどうしても新しい環境と古い環境が同時に稼働する期間ができてしまいます。 この間は
- データの変更をしない (かんたん)
- 更新データを同期する (地味に手間がかかる)
必要が出てきます。
私の場合は個人ブログなので記事の追加をしなければいいのですが、 多くの人が日常的に使うアプリケーションでは後者が必須です。
新環境ができたら
新しい環境ができたら、切り替える前に動作確認をします。 ここで意識しなければならないのは、「新環境に切り替え後にミスが発覚すると修正の反映に時間がかかる」ということです。 どういうことかというと、
- 新環境が直らなくて旧環境に戻すとき、ドメインの切り替え (DNS キャッシュクリア) に時間がかかる(これはある程度制御可能
- Google のクロールを待たないといけない(頻度はこちらから制御できない
など、内部では解決できない反映待ち時間が発生するからです。 切り替えは確実に一回で成功させるのが理想です。
が、個人ブログなので気にせず適当にトライアンドエラーをしました。
とりあえず眺める
一通りページ開いて見た目をチェックします。 よく見るのは外部連携系です。 うちで使っているものでいうと
- JSFiddle
- Google Maps
- Google Adsense
- Google Analytics
- ヘルスチェックツール
このあたりを重点的にチェックします。 内部で完結する部分はだいたいローカルでも本番でも挙動は変わりませんが、 外部系は事故りがちなので入念にチェックします。
ブログなので以下のような項目も確認します。
- RSS フィードがリーダーに認識されるか
- 画像の表示
- コードハイライトが反映されているか
新旧パスマッピング
Google 検索結果を維持するため、 旧環境のパスと新環境のパスの紐づけを Google に教えてあげる必要があります。
今回はドメインは変更しないので、パスのマッピングだけ注意する必要がありました。
- 新旧でおなじパスになるように作成する
- 旧側のパスでアクセスがきたら新側のパスにリダイレクトする
ように作るのが基本です。
脆弱性チェック
サイトに脆弱性がないか確認します。 私はだいたい ZAP を実行して満足しています。
切り替え
ドメインの DNS レコードを新しいサーバーに向けます。 事前に TTL を調整しておくと切り替えがスムーズになると思います。
切り替えたら
動作確認
もう一度一通り動作確認をします。 ドメインの変化による不具合が発生していないか確認するためです。
サイトマップ
Google Search Console にサイトマップを上げます。 新しいページができるだけ早くクロールされるようにするためです。
古いサイトマップがあれば削除しておきましょう。
しばらくしたら
データの分析に時間がかかるものはしばらく時間がたってから動作を確認します。
- Google で検索してみて検索結果に異常がないか
- Google Analytics を見て、集計やアクセス数に問題が生じていないか
- Google Search Console を見てクロールに異常が発生していないか
Google Analytics のデータストリーム。大丈夫そう
数値系は最低一週間くらいデータ溜まらないと変化が見れないので、 しばらくはひやひやしながら過ごすことになります。
まとめ
切り替えにおいて重要なところをまとめると以下のような感じです。
- 新環境作る
- 新旧環境のデータを同期する
- 新旧環境のパスマッピングする
- 動作確認
- 切り替える
- サイトマップを Search Console で登録して反映結果を見る
- 動作確認
- 1週間くらいデータ貯めて分析する
※ 動作確認は外部連携系を重点的に
何度かやって慣れてきましたが、緊張感はなかなか消えない作業です。
