ID基盤のユーザー課金が合わない時
マネージドIDはユーザー単位、自前運用はエンジニア単位の費用です。その2本が交わる点はたいてい計算されず、ロックインはプロトコルにはありません。
認証基盤は、導入がいちばん安く、離れるのがいちばん高くつく構成要素です。この判断はたいてい、最初の環境を用意する人が、ごく初期に、ひと晩で決めます。つまりユーザーがまだ一人もいないために、ユーザー単位課金の選択肢がゼロ円に見える、まさにその瞬間に決まります。
00 / 費用の形が2種類ある
マネージドのIDプロバイダーは月間アクティブユーザー単位で請求します。自前運用はインスタンス単位、データベース単位、そしてエンジニア単位で費用がかかります。前者の線はプロダクトの成功とともに上がります。後者はほぼ平らで、ときどき段を上がります。
B2Bのプロダクトなら、上がるほうの線が急になることはまずありません。数千のアカウントは、認証サーバーを自分で運用する費用に比べれば誤差で、判断は接戦にすらなりません。規模を見込んだコンシューマー向けプロダクトでは、2本は交わります。問いは、どこで交わるのか、そして間違えても生き残れるのかだけです。
01 / 記憶ではなく、その日の価格表で計算する
料金も、料金モデル自体も変わります。先に知っておく価値があるのは、落とし穴の形のほうです。Amazon Cognitoの料金ページ、2026-10-23時点:
- 機能階層は3つあり、新しいユーザープールは既定で真ん中のEssentialsに入ります。無料枠を超えた分はMAUあたり$0.015です。
- 月10,000 MAUの無料枠が使えるのはLiteとEssentialsです。Plusに無料枠はありません。
- SAML/OIDCのフェデレーションユーザーには別枠があり、階層にかかわらず月50 MAUです。
- 2024年11月22日以前に作成されたユーザープールは、以前の大きい無料枠50,000 MAUを保持します。つまり価格は、どの階層かだけでなく、そのリソースをいつ作ったかにも依存します。
Auth0もB2Cプランを月間アクティブユーザーで課金し、執筆時点で無料枠は数万MAUの規模です。ただし規模を見込んだプロダクトにとって重要な数字は、ページに載っていません。最上位プランは公開価格ではなく見積もりだからです。公開されている階層を超えて成長する計画なら、その先のマネージド版の費用は調べられません。移行がすでに高くつく立場になってから、交渉することになります。
気づくべきなのはMAU単価ではなく、この非対称性のほうです。
02 / 自前運用の列に本当に入るもの
MAU単価と「インスタンス1台とデータベース1つ」を並べた見積もりは、見積もりではありません。都合の悪い半分を外した主張です。正直な列にはこれらが入ります。
- 可用性。 サインインはあらゆる処理のクリティカルパス上にあり、利用中にトークンが切れたセッションも含みます。フェイルオーバーの計画がない認証サーバーは、ほかに単一障害点がなかったかもしれないシステムに、単一障害点を持ち込むことになります。
- 他人の都合で来る更新。 認証サーバーのCVEはバックログに積む項目ではありません。
- 鍵のローテーション、セッションの無効化、そして「今すぐ全部失効させる」手順の訓練。
- パスワードハッシュを含むストアのバックアップ。 少なくとも一度は復元し、所要時間を書き残してあること。
- アカウント復旧とメールの到達性。 コンシューマー向け認証の地味なほうの半分で、利用者が実際に出会うのはこちらです。
- 不正利用。 ボットによる登録、流出パスワードの総当たり、アカウント単位とアドレス単位の制限。
- 仕組みを分かっているエンジニア。 そして最初の一人が不在のときのための二人目。
人件費を込みの時間単価で見積もれば、この列が小さくなることはまずありません。そしてその多くは固定費です。同じ作業が1万ユーザーも1,000万ユーザーも支えます。2本の線が交わるのは、まさにそのためです。
03 / ロックインはプロトコルにはない
「あとで移ればいい、どうせ全部OIDCだ」は半分だけ正しい話です。プロトコルは可搬です。ユーザーストアは可搬ではありません。
- サブジェクト識別子が変わります。
subをユーザーの同一性として保存していたものはすべて対応付け直す必要があり、自社データベースの行も含まれます。 - パスワードハッシュは取り出せないことがあります。 提供事業者が渡さない場合、移行とは全ユーザーのパスワード再設定を意味します。これはデプロイではなくプロダクト上の出来事です。
- MFAの登録、ソーシャルアカウントの連携、リフレッシュトークンは引き継げません。
- 発行者を信頼しているものはすべてそこに固定されます。 ゲートウェイのオーソライザー、すでに配布済みのモバイルアプリ、取引先との連携などです。
ですから問いは、どちらが安いかだけではありません。どちらの方向に間違えるほうが安いか、でもあります。自前運用から離れるのは計画できる移行です。ハッシュが手元にあるからです。マネージドから離れるのは、そうとは限りません。この非対称性は判断に含めるべきもので、たいてい抜け落ちます。
04 / 金額の話ではないこともある
サインインがどこに属するかは、価格の問題である前にアーキテクチャの問題です。ユーザーをサインインさせるプロダクトが1つなら、認証はその中にあってかまいません。複数のプロダクトが1つのアカウントを共有する想定なら、認証はプラットフォームの構成要素です。どの個別アプリケーションからも外に出て、自分のホスト名と自分のライフサイクルを持ちます。あとからそこへ動かすとなれば、すでに出荷したすべてのリダイレクトURIとトークン発行者を変えることになります。
ケーススタディにあるコンシューマー向けAIチャットのプロダクトでは、実際にそこで動いていました。Keycloakを独立したドメインに置き、1つのデータベースを共有するAI対話アプリケーション群の単一のサインイン入口として想定していました。CognitoもAuth0もユーザー単位の課金で、プロダクトは大きな利用者数を見込んでおり、それとともに伸びるのはユーザー単位課金の線のほうでした。その案件の期間中、より広いプラットフォームは設計上の意図にとどまり、提供されたシステムにはなりませんでした。それも教訓の一部です。プラットフォームを理由にする議論はロードマップへの賭けであり、ロードマップは動きます。
05 / 決める前に片づけておくこと
- ユーザー数のシナリオを3つ — 立ち上げ時、計画値、成功と呼べる数字 — 用意し、両方の選択肢について、ブログ記事ではなくその日の価格表で計算する。
- 自前運用の列にエンジニアの工数を、オンコール分も含めた人件費込みの単価で入れる。
- ユーザー、ハッシュ、MFA登録の持ち出し経路を、公開前に書き出し、推測ではなく提供事業者に確認する。
- 認証基盤が落ちている間に何が起きるか、そして誰かがそれを試したことがあるか。
- 誰が、どのくらいの頻度で、どの時間帯に更新するのか。
どちらの答えも筋は通せます。2つ目の列のない「こちらが安い」と、持ち出し経路のない「あとで移れる」は、通りません。