ryu.com
GCP アカウント停止後——データ救出の記録 表紙画像
運用

GCP アカウント停止後——データ救出の記録

2026年8月12日 · 約13分で読める

深夜2時、スマホが震えた。Google Cloud Platform からのメール。件名は「Your account has been suspended」。

画面を10秒ほど見つめていた。パニックだからではない。この日はいつか来ると思っていたからだ。この二年、あの GCP の無料インスタンスには詰め込みすぎていた——ブログ、Telegram bot 数本、実験的な API ゲートウェイ、そしてバックアップしていなかった大量のメモ。

最初の反応:損害の確認

停止理由は曖昧だった:「利用規約違反」。具体的な説明も、申し立ての窓口も、復旧の見通しもない。コンソールにログインしようとすると「このアカウントは停止されています。リソースにアクセスできません」。

つまりこういうことだ:

幸いなのは、ドメインは Google で買っていなかったので DNS を切り替えられること。不幸なのは、DNS 以外に完全なオフラインバックアップが一つもなかったことだ。

救出作戦:キャッシュからデータを掘り出す

落ち着いてから、どこからならデータを取り戻せるのか整理し始めた。鍵になった発想はこれだ:アクセスを失う前に、Google はすでにあなたのコンテンツを無数のエッジノードに配布している。正しい入り口を見つければ、拾い集めることができる。

ステップ1:DNS を乗っ取る

ドメインの DNS を Cloud DNS から Cloudflare(無料プラン)へ切り替えた。20分とかからなかった。ドメインが再度解決されるようになれば、少なくともサイトは新しいサーバーを指せる。

ステップ2:Google Cache から記事を救う

Google で site:scolv.com を検索して、各結果の「キャッシュ」を開く——古式ゆきたる技だが、今でも効く。Google はページの約80%をキャッシュしていた。簡単なスクリプトで全結果を開き、ローカルの Markdown ファイルにコピーしていった。

# 疑似コード:Google Cache から記事を取得
for url in cached_urls:
    text = fetch(f"webcache.googleusercontent.com/search?q=cache:{url}")
    clean = strip_html(text)
    save_to_markdown(clean)

この技で長文記事を約40本取り戻した。画像は全部失われたままだったが。

ステップ3:Wayback Machine

Internet Archive の Wayback Machine ももう一本の命綱だった。web.archive.org/web/*/scolv.com には2019年から2024年のスナップショットがあり、内容の約60%をカバーしていた。Google Cache と補い合えば、取り戻せるものはすべて取り戻せた。

ステップ4:bot のログ

Telegram bot の会話ログは完全に失われた。bot は純粋なインメモリ動作で、外部ストレージに永続化していなかった。この部分は受け入れるしかない。

教訓と行動

この事件のあと、自分にいくつかのルールを課した:

再構築の代償

失ったもの:戻らない旧記事およそ20本、画像すべて、bot のログ、いくつかの実験プロジェクトのソースコード。

でも正直に言えば、結果は想定よりマシだった。本当に大事なもの——長文の記事——は大半がキャッシュとアーカイブから戻ってきた。そして「大事だと思っていた」ものは、失われてみると大して重要ではなかった。

このサイトは再構築の産物だ。データベースなし、バックエンドなし、完全に静的。記事一篇一篇が手動のバックアップになっている。クラウドの無料サービスを使っているなら、今すぐオフラインバックアップを作ってほしい


同じ経験がある人、バックアップ戦略について話したい人は、ryu@scolv.com まで。

続きを読む