hirojinblog
記事一覧へ

消えたWordPressブログをアーカイブから復旧した話

GCPの支払い忘れで消えたWordPressブログを、Wayback MachineのアーカイブHTMLからAstroブログへ復旧したときの記録です。

web制作 AstroブログWordPress備忘録

昔のWordPressブログに書いていた記事を、少しずつこのAstroブログへ戻しています。

元のブログは https://hirojinblog.work/ です。ただ、このブログは一度消えました。原因はGCPの支払い忘れです。WordPress本体もDBも画像も、サーバー側に置いたままにしていたので、環境が消えた時点で記事もまとめて失いました。

最初はバックアップから戻せないか探しましたが、残っていたものは古すぎて、今回戻したかった記事は入っていませんでした。そこで使ったのがWayback Machineに残っていたアーカイブHTMLです。

この記事では、消えたWordPressブログの記事をWayback Machineからどう拾い、今のAstroブログ用にMarkdownへ直したのかをまとめます。昔のブログをなくしてしまった人でも、公開済みの記事ならまだ探せる場合があります。

GCP上のWordPressブログが消えた経緯

昔のブログはWordPressで動かしていました。

最初はレンタルサーバーで運営していて、その後GCP上にWordPress環境を作って移行しました。GCPを触ってみたかったことと、サーバー周りの勉強になると思ったことが理由です。

移行した時点では、サーバーを自分で触れることに満足していました。ただ、運用の意識は足りていませんでした。

GCPの支払いを忘れたまま放置してしまい、気づいたときにはWordPress環境ごと消えていました。記事本文、DB、アップロードした画像、テーマの設定、細かく直していた部分まで、まとめて見えなくなりました。

クラウド上の古いブログが消えてしまったイメージ

「サーバー上にあるから大丈夫」と思っていたわけではありませんが、結果としてサーバーに依存しすぎていました。支払い通知を見落としたことも含めて、自分の管理不足です。

バックアップでは復元できなかった

最初に探したのはバックアップです。

古いバックアップはいくつか残っていました。まったく何もないよりは良かったのですが、問題は中身です。

確認してみると、今回戻したかった記事は入っていませんでした。バックアップの時期が古く、消える前に書いていた記事までは含まれていなかったからです。

この時点で、WordPress環境をそのまま復元する方向はいったん諦めました。欲しかったのはサーバー環境そのものというより、記事本文、タイトル、description、公開日、画像、タグやカテゴリです。

バックアップは「取ったことがある」だけでは安心できません。必要な時点のデータが残っていて、実際に戻せる形になっていることが大事だと、ここで痛感しました。

Wayback Machineで昔の記事URLを探した

次に見たのがWayback Machineです。

Wayback Machineは、過去のWebページを保存しているインターネットアーカイブのサービスです。サイトが消えていても、保存された時点のページを見られることがあります。

対象にしたのは、だいたいこのあたりです。

https://hirojinblog.work/*

昔のURLが保存されていれば、当時のHTMLが残っている可能性があります。WordPressの管理画面やDBに戻れるわけではありませんが、公開ページのHTMLが残っていれば、本文を再利用できる場合があります。

実際に探してみると、全部ではないものの、いくつかの記事ページは残っていました。たとえば、GASフォームの記事、Anacondaのプロキシ設定、GCP移行、iPad活用、イヤホン系の記事などです。

Wayback Machineのアーカイブから記事HTMLを探すイメージ

今回の復旧で本命になったのは、バックアップではなくWayback MachineのアーカイブHTMLでした。

保存したHTMLは、手元では D:\blog_back_up\wayback_html にまとめていました。記事ごとにHTMLを残しておくと、あとでブラウザで見返せますし、必要になればHTMLから本文だけ抜き出せます。

この段階で大事だったのは、いきなり整えようとしないことでした。まずは残っているHTMLを保存する。本文の整形や画像整理はその後です。

アーカイブHTMLをMarkdownに直した

復旧作業は地道でした。

Wayback Machineで見つけた記事ページを開き、HTMLを保存します。そこからタイトル、description、公開日、本文、画像パス、タグやカテゴリらしき情報を拾いました。

そのうえで、今のAstroブログに合わせてMarkdownとして整え直しました。

アーカイブHTMLをMarkdown化してAstroブログに移す流れ

単にコピーして貼るだけでは、あまりきれいには戻りません。

昔の記事は、今読むと情報が古かったり、文章の温度感が現在のブログと合わなかったりします。リンク切れもありますし、画像の場所もWordPress時代の構成とは変わっています。

そのため、記事ごとに次のような点を見直しました。

  • frontmatterを今のブログ形式に合わせる
  • タイトルとdescriptionを残せる範囲で整える
  • 公開日と更新日を拾う
  • 画像を public/images/blog/ に置く
  • 古すぎる表現や明らかなリンク切れを直す
  • 今のカテゴリやタグに寄せる

このブログでは、記事は src/content/blog/ に置いています。画像は主に public/images/blog/ に置いています。

Markdownファイルとして戻しておけば、今後はGitで履歴を追えます。サーバーが変わっても、少なくとも記事ファイルは手元に残ります。

RSSやサイトマップも手がかりになる

今回の本文復旧の主役は、Wayback Machineに残っていた記事HTMLでした。ただ、昔の記事URLやタイトルを探す手がかりとして、RSSやサイトマップが役に立つこともあります。

記事URLの一覧がどこかに残っていれば、Wayback Machineで探す範囲を絞れます。タイトルだけでも分かれば、手元のメモや画像フォルダと照合しやすくなります。

本文そのものが残っていなくても、URLやタイトルが残っているだけで復旧の手がかりになります。「何を探せばいいか分からない」状態を避けるためにも、まずはURLの痕跡を集めるのが大事でした。

反省点

今回いちばん反省したのは、記事データをサーバーだけに置きすぎていたことです。

WordPressは便利です。ただ、管理画面から記事を書き、画像もアップロードし、DBもサーバー側にある状態だと、バックアップが弱いときに自分の文章が手元に残りません。

今後は、少なくとも次の点は意識します。

  • 記事はMarkdownとして手元に置く
  • Gitで履歴を残す
  • 画像もローカルとリポジトリ側で管理する
  • 定期的に戻せる形のバックアップを取る
  • 支払い通知を確認する

特に最後の支払い通知は、地味ですが大事です。技術的な対策をしていても、運用を放置すればサービスは止まります。

まとめ

ブログが消えると、最初は焦ります。バックアップが古いと分かった時点で、もう戻せないと思ってしまうかもしれません。

それでも、公開していた記事なら、どこかに痕跡が残っていることがあります。バックアップが古くても、Wayback Machineに記事HTMLが残っている場合があります。RSSやサイトマップから、昔の記事URLやタイトルを拾えることもあります。

もちろん、全部戻るとは限りません。

それでも、記事本文、タイトル、公開日、画像の一部くらいなら拾えることがあります。そこから今のブログに合わせて整え直せば、大事な記事をもう一度読める形にできます。

意外となんとかなる。まずはアーカイブとかを探してみよう。