Cloudflare無料枠で個人サイトを動かす話
「個人のツールサイトを、サーバー代ゼロで動かす」というのは、2〜3年前だったら現実的ではないと思っていました。でも今は、Cloudflareの無料枠をフル活用することで、ツール工房.aiの本体がドメイン代だけで動いています。どういう構成にしているか、整理してみます。
使っているCloudflareサービス一覧
ツール工房.aiでは、以下のサービスを組み合わせています。
- Cloudflare Pages:サイト本体のホスティング
- Cloudflare Workers:APIプロキシ、Cronジョブ、○×トラッカーのバックエンド
- KV(Workers KV):○×トラッカーのデータ保存
- Email Routing:お問い合わせメールの転送・Workerからの送信
- Web Analytics:アクセス解析
- Turnstile:ウィッシュリストフォームのスパム対策
それぞれ単体でも使えますが、組み合わせるとちょうどいい感じにサイト全体が回るのが面白いところです。
Pages:とにかく楽
AstroビルドのHTMLを置くだけでHTTPS・CDNが自動でついてくる感覚は、最初かなり感動しました。GitHubのmainブランチにpushするだけでデプロイが走るCI/CDも、追加設定なしで使えます。
ひとつハマったのが、Astroのビルド設定とPagesのビルドコマンドの噛み合わせです。最初は何度か「ローカルでは動くがデプロイすると壊れる」が起きて、原因探しに時間を使いました。今は落ち着いていますが、最初のセットアップに手こずった記憶が残っています。
Workers:なんでも突っ込める
Workersの印象は「何でも突っ込める」です。
- ホテル検索の楽天APIプロキシ(CORSヘッダの付与など)
- ホテルDBのデータ鮮度をチェックして週次メールを送るCronジョブ
- ○×トラッカーのデータをKVに読み書きするAPIサーバー
- ウィッシュリストフォームの受付と転送
…と、用途がバラバラなものをぜんぶWorkerに押し込んでいます。JavaScriptで数十行書くだけで動く手軽さが、個人開発のペースに合っています。
ただ、Workerの本数とルートが増えてくると、「どのWorkerが何をやっているか」が分からなくなってきます。工房主は開発メモをClaudeのメモリ機能に残しておく運用で対処していますが、もう少し整理が必要だと感じているところです。
KV:シンプルだから使いやすい
○×トラッカーのデータ保存に使っています。RDBではなくKey-Valueストアなので、スキーマを考えなくていいのが個人開発には向いています。
「いつ、誰が、どのトラッカーを更新したか」くらいのシンプルなデータなら、KVで十分事足りる、というのが実感です。読み書きの速さも体感では問題なく、複雑なクエリが不要な用途にはちょうどいい選択でした。
Email Routing:メール配信の悩みから解放された
「Workerからメールを送りたい」という要件は、意外とよく出てきます。フォーム受信の通知、週次のリマインダー、エラーアラート…と、気がつけばいくつかのメール送信経路が走っています。
Email Routingを使えば、外部のメール配信サービスを契約しなくても、Cloudflare内で完結できます。余計な契約・APIキー管理が増えないのが地味に助かっています。
実際には cloudflare:email モジュールをWorkerでimportするだけで動いたので、「こんなにあっさり送れるんだ」と少し拍子抜けしたくらいです。
Web Analytics:プライバシーフレンドリー
Googleアナリティクスと違って、クッキーの同意バナーが不要です。ツール工房.aiは「来た人にできるだけ邪魔をしたくない」という気持ちがあって、初期からWeb Analyticsを選びました。
指標は最低限(セッション・PV・国・デバイスくらい)ですが、個人サイトの「なんとなくどのくらい見られているか」を把握するには十分です。分析よりも「ざっくり生きているな」という確認に使っている感じです。
Turnstile:見えないCAPTCHA
ウィッシュリストフォームにボット対策を入れようと思ったとき、「CAPTCHA=あの画像選択の面倒なやつ」をユーザーに強いるのが気になりました。
TurnstileはユーザーがUIで何かするわけではなく、バックグラウンドで判定が走ります。実装してみると、特に問題なくスパム投稿が減った印象で、ユーザー体験を壊さずにボット対策ができた感覚です。
「reCAPTCHAにしなくてよかった」というのが、使い続けている正直な感想です。
組み合わせることで完結する
各サービスがCloudflareの管理画面・設定ファイルで統一されているので、「あれはこっちのコンソール、これは別会社のダッシュボード」という行き来が発生しません。認証情報の管理が1か所で済む、という地味な快適さが、個人運営には効いています。
ドメイン代以外の費用がゼロで、これだけの構成が動いていると思うと、「インフラを選ぶだけでこんなに違うのか」という気持ちになります。
使ったことがないサービスもまだいくつかあるので、必要が出てきたときに少しずつ試していく予定です。
← 他の制作記を見る | トップ | ツールのリクエスト