【要約】【Cloudflare】Astro + Cloudflare Workers で個人ブログを作ってみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が、Cloudflareの推奨構成変更に伴い、新しいデプロイ手法を模索した際に直面した課題である。
- ・Cloudflareが静的サイトの投資先をPagesからWorkersへシフトしたこと。
- ・Astroの買収に伴い、公式のデプロイガイドがWorkers主軸へ変更されたこと。
- ・Macのローカル環境とLinuxのビルド環境で、npmのロックファイルに不整合が生じたこと。
// Approach
著者は、Astroの機能を最大限活用し、Workers上で静的アセットとして配信する構成を採用した。
- ・AstroのContent Collectionsを利用し、Markdownのスキーマを定義して型安全な記事管理を実現。
- ・wrangler.jsonc を用いて、静的ディレクトリの指定やカスタムドメイン設定を一元管理。
- ・Workers Buildsを利用し、GitHubへのpushをトリガーとした自動ビルド・デプロイ環境を構築。
- ・npm clean-install を活用し、OS間の依存パッケージの不整合を解消。
// Result
この構築により、個人開発者が極めて低コストで運用できる、高パフォーマンスな環境を実現した。
- ・CloudflareのFreeプラン内での運用が可能となり、月額費用をドメイン代のみに抑制。
- ・wrangler.jsonc による設定により、デプロイ時にDNSレコードやTLS証明書が自動発行される。
- ・型定義により、記事作成時のメタデータ不足などのミスをビルド時に検知可能。
Senior Engineer Insight
> 非常に合理的かつモダンな構成である。Cloudflareの戦略変更を即座に反映しており、実戦的だ。運用コストが極めて低く、wrangler.jsoncによるIaC的な管理も徹底されている。ただし、大規模なコンテンツ量が増大した場合、SSGのビルド時間がボトルネックになる可能性がある。また、npmのロックファイル問題に見られるように、CI環境とローカル環境の差異には常に注意を払うべきだ。