hirojinblog
記事一覧へ

GCPの支払い忘れで消えたWordPressブログをWayback Machineから復旧した記録

消えたWordPressの公開HTMLをWayback Machineから拾い、AstroのMarkdownへ戻した手順と、復旧できなかった範囲を記録します。

web制作 AstroブログWordPress備忘録

以前のWordPressブログは、GCPの支払いを忘れたあとに環境ごと消えました。WordPress本体、データベース、アップロード画像を同じサーバーに置いていたため、サーバーがなくなると管理画面からも戻せませんでした。

残っていたものを数えた

手元のバックアップを読み取り専用で集計したところ、WaybackのURL一覧は57行、HTMLをまとめたZIPは59項目、記事候補は22件でした。現在のブログと同じslugで対応できるものは8件です。これはファイル名とURLの対応を数えた結果で、本文や画像が完全に戻った件数ではありません。

バックアップの世代が古く、欲しかった記事が入っていないことも分かりました。まず「何件あるか」を数えたことで、復旧できたものと未確認のものを混ぜずに済みました。

WaybackからHTMLを拾う

Wayback Machineには、公開ページの保存版が残っている場合があります。管理画面やデータベースを復元するものではありませんが、HTMLが残っていればタイトル、本文、公開日、画像URLの手がかりを取り出せます。

作業は次の順にしました。

  1. URL一覧と保存日時を集める
  2. HTMLを変更せず一時ディレクトリへ保存する
  3. タイトル、description、本文、画像URLを抽出する
  4. 現在のslugと照合する
  5. Markdownへ移し、リンクと画像だけを個別に確認する

最初から文章を整えると、元HTMLにあった情報と後から足した説明が混ざります。保存、抽出、整形を分ける方が比較しやすくなりました。

Astroへ戻す

現在の記事はsrc/content/blog/のMarkdownと、public/images/blog/の画像で管理しています。frontmatterのtitledescriptionpubDate、カテゴリ、タグを現在の形式へ合わせ、本文は公開HTMLから確認できる範囲だけを戻しました。

復旧できなかった画像やリンクは、見つかったように補いません。Waybackに残っていないものは未復旧として扱い、記事本文にも断定を書かないようにしました。2020年の記事は公開状態を維持し、本文の改変対象から外しています。

失ったあとに変えたこと

今回の復旧で、サーバーにだけ記事を置く運用はやめました。

  • 記事をMarkdownとしてGitで管理する
  • 画像もリポジトリの対象にする
  • URL一覧とバックアップの世代を記録する
  • 定期的にクリーンな環境でビルドできるか試す
  • 支払い通知とバックアップの復元手順を別々に確認する

Waybackは最後の手がかりにはなりますが、完全なバックアップではありません。公開ページの復元と、サイトを再び動かせる状態の復元は別物です。