上級編のカリキュラムへ

上級編30

上級④ 運用を自動化する

週報・テスト・更新チェックを機械に任せる。寝ている間も回る仕組み

サービス運営の敵は「地味な手作業の積み重ね」。今日は繰り返しの仕事を機械に渡す回です。テーマは3つ——定期処理(週報)/自動テスト(CI)/部品の更新チェック

今日のゴール

①毎週月曜に運営レポートが自分にメールで届く ②pushのたびにビルドとテストが自動で走る ③古くなった部品をGitHubが知らせてくれる。“自分が動かなくても回る”を3つ仕込みます。

STEP1:週次レポート(Vercel Cron)

Cron(クロン)は「決まった時刻に自動実行する」仕組み。Vercelに「毎週月曜の朝、このURLを叩いて」と頼み、そのURLで集計→中級②のResendでメール——既存の部品の組み合わせでできます。

週次運営レポートを自動化したい。①/api/cron/weekly-report のRoute Handlerを作る:直近7日間の新規登録者数・お問い合わせ件数・メモ投稿数をSupabaseから集計し、Resendで私(CONTACT_TO)にメール送信 ②vercel.json の crons で毎週月曜の朝9時(日本時間)に実行 ③このURLは環境変数 CRON_SECRET で保護して、Vercelからの正規の呼び出し以外は拒否する。まず計画を見せて。
  1. 環境変数 CRON_SECRET(長いランダム文字列。「ランダムな英数字40文字作って」とAIに頼んでOK)を追加→Redeploy。
  2. 待てない人は、Vercelのダッシュボード(Settings → Cron Jobs)から手動実行してテスト——メールが届いたら成功!

“見に行く”から“届く”へ

解析やDBを毎日見に行くのは続きません。大事な数字のほうから毎週届くようにすると、運営が習慣になります。レポートに載せる数字は、育てたい指標に合わせて増やしていきましょう。

STEP2:CI——pushのたびに自動で検査(GitHub Actions)

中級⑤で作ったテスト、いまは“頼んだときだけ”走ります。これをコードが変わるたびに必ず走るようにするのが CI(継続的インテグレーション)。GitHubに標準装備の GitHub Actions を使います。

.github/workflows/ci.yml を作って。mainへのpushのたびに、npm ci → npm run build → npm test を実行。Node.jsは20系。失敗したら分かるように。mainに反映して。
  1. 反映後、GitHubの「Actions」タブを開く——緑のチェックが付けば検査通過。
  2. 以後、AIに大きな変更を頼んでも、壊れていればGitHubが赤くして知らせてくれます。中級⑤の見張り番が、常駐になりました。

STEP3:部品の更新チェック(Dependabot)

アプリは大量の部品(パッケージ)でできていて、部品にはセキュリティ修正が日々出ます。GitHubの Dependabot をONにすると、古い部品や危険な部品を向こうから知らせてくれます

  1. GitHubのリポジトリ →「Settings」→「Advanced Security」(または Code security)。
  2. Dependabot alertsDependabot security updates を有効化。
  3. 通知が来たら:「Dependabotがこの部品の更新を提案してる。内容を確認して、問題なければ取り込んで」とAIに頼む——これが部品更新の型です。

STEP4:バックアップの確認(月1の儀式)

  • Supabaseは有料プランで自動バックアップがあります。ダッシュボードの「Backups」で自分のプランの保護状況を一度確認しておく。
  • 無料プランの間は、月1回、大事なテーブル(profiles・memosなど)をTable EditorからCSVエクスポートしておくと安心。
  • 「何かあっても、ここまでは戻れる」のラインを知っておくことが目的です。

おさらい:今日使った“言葉”

Cron
決まった時刻に自動実行。週報・集計・掃除に。CRON_SECRETで保護。
CI(GitHub Actions)
pushのたびにビルド+テスト。見張り番の常駐化。
Dependabot
部品の更新・脆弱性をGitHubが通知。提案はAIと確認して取り込む。
バックアップ
戻れるラインの確保。月1で確認の儀式。

上級④・完成チェック

0 / 4

つまずいたら

①Cronが動かない→Vercelのログと「Cron Jobs」の実行履歴を確認。②Actionsが赤い→ログの赤い部分をコピーしてAIへ(テストが正しく失敗している可能性も)。③メールが来ない→中級②の通知が動いているか先に確認。

お疲れさまでした!

運営の足腰が機械化されました。次回⑤は公開サービスの責任、セキュリティ総点検。これまで各所に仕込んできた防御を、監査の目で一周します。