はじめに
生成AIを使った個人アプリを開発していると、どうしても気になるのが「運用コスト」です。
作ること自体は楽しくても、継続できなければ意味がありません。
そこで今回は、自分のAI作品サービスの裏側の構成として、できるだけ低コストで続けられる設計を整理してみました。
まだ進行中のプロジェクトですが、現時点での設計メモとして残しておきます。
現在の構成(ざっくり)
インフラ(ポエム生成系)
現在のポエム生成まわりの構成は、できるだけシンプルで低コストに運用できることを意識して設計しています。
-
AWS Lambda
→ ポエムのAI生成処理や夜間バッチ処理を担当。必要なときだけ実行されるため、常時サーバを用意する必要がありません。 -
Amazon S3
→ ポエム本文(JSON)、生成画像、公開用HTMLを保存。データベースに依存せず、ストレージ中心の構成にしています。 -
CloudFront(CDN)
→ S3上の静的コンテンツを高速配信。キャッシュが効くため、表示速度とコストの両方を安定させられます。 -
Amazon Bedrock(Claude)
→ ポエム本文の生成に利用。用途を限定することで、品質とコストのバランスを取りやすくしています。 -
Next.js(静的 export)
→ フロントエンド表示部分。静的サイトとして書き出すことで、サーバレス構成を維持しています。
全体として「できるだけ静的に」「必要なときだけ動かす」という思想で構成しています。
基本思想はシンプルです。
- できるだけ静的にする
- リアルタイム処理を減らす
- AI生成は必要なときだけ動かす
この3点を軸に設計しています。
コストを抑えるための工夫
① 静的サイト配信(SSG)
ポエム公開後は動的表示ではなく、静的コンテンツとして配信しています。
具体的には:
- HTMLを事前生成
- S3へ保存
- CloudFront(CDN)経由で配信
この構成にすると、
- Lambdaを常時稼働させる必要がない
- APIサーバを用意しなくて済む
- データベースを使わず、ストレージ中心の構成にしています。
- CDNキャッシュが効くため配信コストが低い
結果として、個人開発でも無理なく続けられる運用になります。
② 夜間バッチ方式
公開ボタンを押してすぐ生成するのではなく、あえて少し時間差をつけています。
現在の流れは次の通りです。
- ポエム本文のみ先に保存
- 夜間Lambdaで画像生成とHTML生成
- 翌日公開
この方式のメリットは、
- AI生成の負荷を分散できる
- コストの急激な増加を防げる
- 「余韻を待つ」体験を作れる
純粋な技術判断だけでなく、作品としての見せ方としても気に入っている方式です。
③ 即時生成という選択肢について
一方で、公開と同時に画像生成やHTML生成まで行う「即時生成」も検討しています。
こちらのメリットは、
- すぐ完成形を確認できる
- 操作と結果のつながりが分かりやすい
- サービスとしてのレスポンスが軽快に感じられる
ただし、
- AI生成が集中するとコストが読みづらくなる
- 処理時間によってはUXが不安定になる
といった側面もあるため、現時点では夜間バッチ方式を基本にしています。
今後は利用状況やコストバランスを見ながら、どちらがより自然な体験になるか調整していく予定です。
実際のコスト感(参考)
まだ本格運用前ですが、おおよその感覚です。
- Lambda:ほぼ誤差レベル
- S3保存:月数十円〜100円程度想定
- AI生成:回数次第だが数円/回程度
個人開発としては現実的なラインだと思っています。
この構成にした理由
単純に安くしたいだけではありません。
- 長く続けられること
- 気軽に作品を置ける場所を作ること
- 技術と表現を両立したいこと
この3つを大切にしています。
今後やりたいこと
- DynamoDBで生成履歴管理
- 生成完了通知などUX改善
- モデルごとのコスト比較記録
- AI生成作品と手動作品の共存設計
まだ模索フェーズなので、このあたりは柔軟に変えていく予定です。
進行中のプロジェクトなので設計はこれからも変わると思いますが、
同じように個人開発でAIサービスを運用している方の参考になれば嬉しいです。