結論から
DDoS(大量のアクセスを送りつけて、サービスを止める攻撃)は、大企業だけの話ではありません。小さなアプリにも自動で来ます。そして個人開発で本当に怖いのは、「落ちる」ことより「請求」です。従量課金のホスティングでは、攻撃の通信量もそのまま請求されます。
この記事で伝えたいのは、この一点だけです。守りは3層。前に Cloudflare、入口にレート制限、財布に上限。 どれもAIに頼めるか、管理画面で設定できます。
- 何が起きるか:Vercel のあるユーザーは、5日間の DDoS で約2TB の通信が発生し、月 $20〜60 の請求が $231.71 に。返金は「利用料は返金対象外」で断られた。別の報告では $23,000 の請求例もある
- もう1つの「連打」:DDoS と呼ばれなくても、ログイン画面の総当たり、フォームのスパム送信、AI機能の呼び出しを1万回──レート制限が無ければ全部通る
- なぜAIは付けないか:「動く」ために必要ないから。守りは頼まれない限り作られない
- 3層の設定手順と、AIへの頼み方、確かめ方を下に書いた
動画版(約2分半)は本文の上に埋め込んであります。
① DDoS とは何か:ロボットの群れが、玄関に押し寄せる
DDoS(Distributed Denial of Service)は、世界中に散らばった大量のコンピュータ(乗っ取られたPCやIoT機器)から、一斉にリクエストを送りつける攻撃です。1台のサーバーが処理できる量を超えると、本来のユーザーがアクセスできなくなります。
「うちみたいな小さなアプリを、誰が狙うのか」と思うかもしれません。狙っているのは人ではなく、自動プログラムです。公開されている URL を片っ端から叩く、競合が依頼する、恨みを買う、あるいは踏み台にされる。理由はいろいろですが、共通するのは攻撃側にとってコストがほぼゼロなことです。数千円で「DDoS 代行」が買える市場があります。
② 何が起きるのか:落ちるより、請求
昔の DDoS の被害は「サイトが落ちる」でした。いまの個人開発の被害は、少し違います。Vercel・Netlify・Cloud Run のような従量課金のホスティングでは、攻撃の通信量も、普通の通信量と同じ単価で請求されます。
- Vercel のコミュニティに 2026年に投稿された例:5月21〜25日の DDoS で 2TB 超の送信。普段 $20〜60 の請求が $231.71 に。サポートの返事は「利用料は返金対象外」。アプリは落ちず、請求だけが残った
- 同じ2026年の報告では、DDoS の帯域がすべて通常単価で計上され $23,000 の請求になった開発者と、$3,200 になった学生の例が挙げられています(帯域超過は $0.15/GB)
アプリが落ちるだけなら、待てば戻ります。請求は戻りません。
③ もう1つの「連打」:DDoS と呼ばれない攻撃
DDoS ほど大規模でなくても、1人が1つの機能を連打するだけで被害が出る場所があります。
- ログイン画面:パスワードを1秒に10回試す(総当たり)。止めないと、いつか当たる
- 問い合わせ・予約フォーム:1万件のスパム送信。データベースが埋まり、通知メールが止まらない
- AI機能:「要約する」ボタンを1万回押す。OpenAI の請求はあなたに。1回1円でも1万円、キーが漏れていれば上限なし(→ キーが漏れた瞬間の30分)
- 画像アップロード:100MB のファイルを1,000回。ストレージ代と帯域代
これらを止めるのがレート制限(一定時間あたりの回数制限)です。デモの予約アプリでも、/api/book は何回でも呼べる状態でした。
なぜAIは付けないのか。 「予約フォームを作って」という依頼は、1回送れた時点で完了です。1万回送られる想定は、依頼の中にありません。レート制限も、WAF(前段の防火壁)も、上限設定も、「動く」ためには不要なので、頼まれない限り作られません。
④ 守りは3層:前・入口・財布
層1:前に Cloudflare を置く(30分・無料)
ドメインの DNS を Cloudflare 経由にするだけで、DDoS 対策が入ります。無料プランでも DDoS 緩和は無制限で、攻撃時は「Under Attack Mode」で全訪問者に確認画面を出して自動アクセスを弾けます。手順は、Cloudflare にサイトを追加 → ネームサーバーをドメイン会社で書き換え → DNS レコードを「プロキシ(オレンジ色の雲)」にする。Vercel でも Netlify でも、前に置けます。攻撃の通信は Cloudflare で止まるので、あなたのホスティングの請求メーターに乗らない、これが本体です。
層2:入口にレート制限(AIに頼む)
「ログイン・サインアップ・パスワードリセットは、同じIPから5分に5回まで。問い合わせ・予約フォームは1分に3回まで。AI機能の呼び出しはログイン必須にして、1ユーザー1日20回まで。超えたら 429 を返して。サーバー側で実装して。」(→「サーバー側で検証して」の一言)
Supabase の Auth には最初からレート制限がありますが、あなたが作った API(予約・AI呼び出し)には入っていません。Cloudflare のレート制限ルール(無料で1つ)を /api/ に付ける方法もあります。
層3:財布に上限(管理画面で設定)
- Vercel:Settings → Billing → Spend Management(Pro プラン)。金額を決めて「Pause production deployment」を ON。50%・75%・100% で通知。数分おきのチェックなので、上限は余裕を持って
- OpenAI 等の AI API:Monthly budget(Hard limit)と Auto-recharge OFF(→ キーの記事)
- Supabase・Cloud Run・AWS:予算アラート。止まらない場合でも、気づける
- Hobby(無料)プランは、そもそも従量課金が無い=上限がある。個人開発のうちは無料プランのほうが安全なことがあります
3層のうち、1つだけやるなら層1です。攻撃の通信を、メーターの手前で止める。
⑤ 確かめる:自分で連打する
- ログイン画面で、間違ったパスワードを10回。6回目で止まれば ◯。10回とも試せたら ✗
- フォームを10回送信。途中で 429 や「しばらく待ってください」が出れば ◯
- AI機能をログアウト状態で呼べるか。呼べたら ✗(キーが誰でも使える状態)
- Cloudflare の DNS 画面で、雲がオレンジ(プロキシON)か。灰色なら素通し
- ホスティングの Billing 画面で、上限と通知が設定されているか。「設定していない」=上限なし
自分で直せないとき:エンジニアに送る一文
「フォームと AI 機能にレート制限が無く、ログイン画面も総当たりできます。サーバー側でレート制限を入れて、Cloudflare を前段に置き、ホスティングと AI API に支出上限と通知を設定してください。」
よくある質問
Cloudflare を前に置くと、遅くなりませんか。
多くの場合、速くなります。静的なファイルは Cloudflare 側から配られ、あなたのサーバーまで来ません。DDoS 対策のおまけで CDN が付く、と考えてください。
Vercel には DDoS 対策があると聞きました。
あります(自動緩和と Attack Challenge Mode)。ただし②の例のように、緩和されなかった通信は請求されます。「守られる」と「請求されない」は別なので、層1と層3は両方要ります。
無料プランなら、請求は来ませんか。
Vercel Hobby のような無料プランは、上限に達すると止まるだけで請求は来ません。ただし商用利用が禁止されているプランもあるので、公開して収益を得るなら有料プラン+層3、が現実的です。
レート制限を付けたら、普通のユーザーも弾かれませんか。
回数を常識的に決めれば起きません。「5分に5回のログイン失敗」「1分に3回のフォーム送信」で困る正規ユーザーは、ほぼいません。弾かれたときに「しばらく待ってください」と出すよう、AIに一言添えてください。


