コード紹介というより、メモと感想がメインになります。
背景
- 5年以上前にレンタルサーバーでWordPressのブログサイトを構築した
- 半分趣味でやっていたため、メンテナンスする時間がなかった
- 当時もセキュリティを意識して、インストールするプラグインの数はかなり抑えていた
- ただし、テーマやプラグインの互換性の問題で、WordPressのバージョンがなかなか上げられない状態
- このままだと、攻撃を受けたら一瞬で乗っ取られてしまう危険性があった
今の時代、気軽にWordPressを運用し続けるのは厳しいと感じ、リプレースを決定しました。
リプレース計画
- 以前はマーケティング上の理由でブログサイトを作り込む必要があったが、近年はSNSでの発信がメインなので、サイト自体は最低限の機能があれば十分
- 機能が多いフレームワークより、軽量なライブラリからスタートした方が安全。ほしい機能があれば、今はAIがすぐに作ってくれる
- メンテナンス工数を一番抑えられるソリューションとして、サーバーレスかつデフォルトでセキュリティ機能が充実しているものが良い
という条件から、Markdown(md)フォーマットのブログ形式とCloudflareを選ぶことにしました。
実際にやってみた
過去のブログをmdに変換するパーサ
- WordPressにはエクスポート機能があり、出力フォーマットはXML
- AIに頼んでパーサを作成したところ一瞬で完成し、精度も完璧
1,000行以上のパーサになりましたが、mdへの変換だけでなく、URLの書き換えなどの処理も詰め込みました。
静的サイト
- 最低限の機能だけで良いので、静的サイトにしたほうが遥かに安全
- Cloudflare PagesとR2を採用。安全かつ費用がほぼかからない
npx wrangler pages project create hoge-project --production-branch main
npm run deploy
ローカルで開発してテストしたあと、この2行を実行するだけでデプロイできます。早すぎますね。
感想
- サイトをリプレースするコストが圧倒的に低くなったと感じた
- 簡単な静的サイトであれば、メンテナンスの手間も運用コストもほぼゼロ
- 古いアーキテクチャのままサイトを放置するのは、これから相当危険性が高くなるだろう
