個人開発したAIアプリを安全に試してもらう方法|テスター管理サイトを自分で作った話

AWS・クラウド構築





個人開発したAIアプリを安全に試してもらう方法|テスター管理サイトを自分で作った話

個人開発したAIアプリを安全に試してもらう方法|テスター管理サイトを自分で作った話

AIで個人開発をしていると、ある壁にぶつかります。「動くものができた。でも、誰かに試してもらうには?」という壁です。

以前の記事で「JSパスコード+Cookieで1時間実装する最小構成」を紹介しましたが、今回はその本格版の話です。

📌 AI時事ネタ:AIを組み込んだアプリが急増中

AIを組み込んだアプリはすでに爆発的に増えています。Gartnerの予測では、エンタープライズアプリにAIが搭載される割合は2025年時点で5%未満でしたが、2026年末には40%に達するとされています。個人開発でも同じ流れは加速しており、「自分でAIアプリが作れる時代」は確実に来ています。

しかしここで一つ、個人開発者ならではの悩みが出てきます。AIを組み込んだアプリは、誰かが使うたびにAPIの呼び出し料金が発生します。 URLを一本渡しただけでは、誰がいつ何回叩いたか追跡できない——コストが青天井になるリスクがあります。マンチーがまさにその壁にぶつかり、このシステムを作ることになりました。


個人開発のテスト・公開問題は、実は深刻

コールセンターシステム、AI組み込みアプリ、認証付き業務システム——。バイブコーディングの時代になり、個人でも高度なアプリが作れるようになりました。

でも「誰かに試してもらう」だけでなく、こういう使い方もあります。

  • 商品として販売する前に、見込み顧客に触ってもらいたい
  • 相手先の要望を聞きながら、追加開発してフィットさせていきたい
  • 協力会社のテスター要員に動作確認してもらいたい
  • 将来的には正式契約に移行してもらいたい

こうした用途で「URLをそのまま渡す」はNGです。特にAI組み込みアプリはアクセスされるたびにAPIの呼び出し料金が発生します。 無断でURLを拡散されたら、知らない間に費用が積み上がります。

「パスワード教えます」だけでは誰がいつアクセスしたかも分かりません。何かあっても追跡できない。

マンチーはこの問題を自分でシステムを作ることで解決しました。


作ったもの:招待制アクセス管理システム

マンチーが個人開発したのは、招待した人だけがアクセスできる認証基盤と管理システムです。

テスト運用だけでなく、商品を販売・利用してもらうための基盤として設計しています。

全体の流れはこうです。

  1. マンチーが招待URLを発行して相手に送る
  2. テスターや購入希望者がURLを踏む → Cookieが発行される
  3. 以後7日間はURLなしでもアクセス可能(日数は可変)
  4. GoogleアカウントでSSOログイン、またはメールアドレス+パスワードで認証
  5. アプリを試用・利用できる状態に

全てブラウザで完結します。 アプリのインストール不要、設定ファイルの送付も不要。相手がやることは「URLを踏む」と「ログイン」の2ステップだけです。


技術の裏側:3層のセキュリティ設計

見た目はシンプルですが、裏側では3層の防御が動いています。

層1:URLマスキング+検索エンジン除外
サイトのURLは長い英字の推測しにくい文字列を使っており、本来のアドレスはその背後に隠れています(URLマスキング)。さらにnoindex設定とrobots.txtで検索結果からも消します。「URLを知らない人には存在すら見えない」状態を作ります。

層2:許可リスト認証
事前に登録したアカウントしかログインできません。GoogleアカウントはOAuth Testingモードで制御し、メール認証はCognitoの登録ユーザーのみ通過できます。合言葉URLを持っていても、登録していないアカウントではログインできません。

層3:CloudFront FunctionsによるCookie認証
AWSのエッジサーバーが全リクエストをリアルタイム検証します。Cookieを持っている人だけが通過。それ以外は即「403 Forbidden」を返します。しかもエラーページにはヒント情報を一切載せていません。「なにかダメだった」ということすら教えない設計です。

これらは全部AWS上でサーバーレス動作しています。 誰もアクセスしない時間帯はほぼコストゼロです。


管理画面(admin)が、このシステムの本当のウリ

このシステムの肝はブラウザだけで完結する管理画面です。ターミナル不要、AWSコンソールへのログイン不要。全ての管理操作をここで完結できます。

自分しか入れない管理画面

管理画面へのアクセスはGoogleアカウントのロール認証で制御しています。JWTトークン(ログイン済みであることを証明するデジタルチケット)の中にuser_roleが記録されており、値がadminでない場合は即拒否画面が表示されます。URLを知っていても、adminロールを持たないアカウントでは一切操作できません。

ユーザー一覧と状態の把握

管理画面を開くと、登録済みユーザー全員の状態が一覧で確認できます。

  • 氏名・メールアドレス
  • 利用している複数のWebアプリ(全アプリを1画面で管理)
  • 現在のプラン(starter / standard / premium / internal)
  • 課金形態(trial / subscription / lifetime / unlimited)
  • 期限の有無・残り日数
  • 期限内か期限切れかのステータス

サマリ表示もあり、「登録何人・期限内何人・買い切り何人・期限切れ何人」が一目で分かります。

テスター要員か購入希望者かの区別ができる

ユーザーの種別を課金形態(billing)プラン(plan)の組み合わせで管理しています。

用途プラン課金形態
協力会社のテスター要員internalunlimited(期限なし)
商品購入希望者の試用standardtrial(期限あり)
正式契約済み顧客standard / premiumlifetime or subscription
自分自身のテストinternalunlimited

「この人はテスター、この人は購入検討中」という区別が一目で分かり、対応も変えられます。

期限管理と延長がワンクリック

ユーザーを選んで編集モーダルを開くと、クイック延長ボタンが並んでいます。

  • +7日 / +30日 / +90日 / +1年

ボタン1クリックで期限が伸びます。「もう少し試してほしい」「検討期間を延ばしたい」という場面で、即座に対応できます。

逆に期限が切れると、次回ログイン時に自動で弾かれます(Pre-Token Generation Lambdaという仕組みが期限を判定します)。期限切れユーザーには継続申請の案内ページが表示され、「継続してご利用をご希望の場合はこちらへ」という導線になっています。

不審なログインへのワンクリック警告メール

万が一、登録していないはずのアカウントがアクセスしてきた場合や、不審なユーザーを発見した場合——管理画面からワンクリックでメーラーが起動します。相手のメールアドレスが自動でセットされた状態で立ち上がるので、警告メールをすぐに送れます。

「完璧に弾く」だけでなく、「何かあったときに即動ける」仕組みが入っています。


「把握していること」自体が抑止力になる

完璧なセキュリティはありません。でも「このシステムはアクセス者を把握している」という事実が、不正利用の心理的抑止力になります。

無防備に公開しているアプリは「誰がどれだけ使っても誰も気づかない」と思われます。管理画面があり、誰がいつ何を使っているか把握できる状態は、それだけで抑止効果があります。

技術的に完璧でなくても、「把握しているよ」という設計をするだけで状況は大きく変わります。


このシステム自体を販売することも考えている

マンチーはこのシステムをそのままパッケージとして販売することも視野に入れています。

現在、製品名・期限日数・コールバックURLをパラメータとして渡せるテンプレート化(SAMテンプレート)を開発中です。完成すれば「新しいアプリを作ったらこのテンプレートを使えば30分でテスト環境が立ち上がる」状態になります。

バイブコーディングで作ったアプリを世に出せる人と出せない人の差は、コーディングスキルではなく「公開後の運用設計」にあると感じています。このシステムはその差を埋めるためのものです。


コストはどれくらいか

このシステムの月額費用はほぼゼロです。AWSのCloudFrontは月100万リクエスト・100GBまで無料枠。Amazon CognitoはMAU(月間アクティブユーザー)50,000人まで無料。個人開発のテスト・商用初期運用レベルであれば、無料枠に収まります。

月数百円で、企業レベルの認証・アクセス制御・ユーザー管理が個人で動かせる。

これもAIと組み合わせた個人開発の、現実的なメリットのひとつです。


関連記事もどうぞ:

コメント

タイトルとURLをコピーしました