このブログのバージョン2とは?
2026/04/29に、ブログを新システムに移行しました。
旧バージョンのアーカイブはこちらです。
背景
以前は ConoHa VPS 上で Docker コンテナとして本ブログをホストしていた。 WordPress・データベース・Traefik をそれぞれ独立したコンテナとして稼働させ、 外部からの通信は Traefik のみが受け付けるネットワーク構成を取っていた。
詳細は「旧システムアーキテクチャについての公開情報」にまとめてある。
なぜ変えたのか?
旧構成を運用する中で、以下の課題が積み重なった。
セキュリティコストの高さ
WordPress はセキュリティ上の問題が頻繁に報告されており、 Docker イメージの更新・コンテナ再作成による対応が継続的に発生していた。 ゼロデイ脆弱性への対処として構成面での工夫(アプリ領域の読み取り専用化・コンテナ分離)も行っていたが、 そもそもの攻撃面を減らしたいという動機が強まった。
データ主権の問題
記事データが WordPress のデータベース(PostgreSQL)に保存される構造は、
将来的な移行・復旧時にフォーマットの互換性が保証されない。
そのため以前からデータ形式への依存を断ち切りたかった。
構成の過剰さ
VPS・Docker・Traefik・データベースと、個人ブログとしては重厚な構成だった。 静的コンテンツを配信するだけであれば、ここまでの仕組みは不要だと判断した。
何が変わったのか?
旧構成では、WordPress が PHP ランタイムで動作し、 リクエストのたびにデータベースへアクセスしてページを動的に生成していた。
バージョン2では、手元の開発環境で事前にビルドした静的ファイルをそのまま配置するより原始的な方式に変更した。 サーバー側での処理は一切なく、ファイルを返すだけの構成になっている。
技術的な解説
旧構成
| 役割 | 技術 |
|---|---|
| レンダリング | WordPress(PHP・動的生成) |
| データ管理 | PostgreSQL |
| 仮想化 | Docker |
| ホスティング | ConoHa VPS |
| SSL・ルーティング | Traefik |
| バージョン管理 | WordPressによる管理 |
| 記事作成 | 管理画面(動的) |
| レイアウト | コクーン(テーマ) |
| セキュリティ | 定期的なバージョンアップが必要 |
WordPress 本体はDockerで仮想化して動かしていたが、脆弱性によりアプリケーションレベルでの制御を掌握されるリスクがあった。
新構成
| 役割 | 技術 | メリット |
|---|---|---|
| レンダリング | Astro(事前ビルド) | 高速なページ表示・サーバー処理不要 |
| データ管理 | Markdown | プレーンテキストのため長期保存に強い |
| ホスティング・SSL・ルーティング | Cloudflare | 安価かつ安全に公開可能 |
| バージョン管理 | Git | データ欠損・誤削除に強い |
| 記事作成 | テキストエディタ(静的) | 管理画面より不便だが他のメリットが上回る |
| レイアウト | CSSでの自作 | 自由度が高い |
| セキュリティ | 放置OK | 攻撃面がほぼ存在しないため、対策不要 |
攻撃面を最小化する観点では、動的処理の仕組みをすべて取り除いたことが最も大きな変化である。 Cloudflare がエッジで配信するため、サーバー自体が攻撃対象になることもない。
記事作成の利便性は下がったが、 データの長期的な可読性・セキュリティ・運用コストのすべてにおいて新構成が上回ると判断している。