Apertureとは?
最終検証日:
翻訳: 竹洞 陽一郎
Aperture by Tailscaleは、現在ベータ版です。
組織が、開発・自動化・社内ツールの全体にわたってAIを導入していくと、セキュリティ、可視性、制御に関する新たな課題に直面します。
APIキーは、開発者のデバイス、CI/CD(継続的インテグレーション/継続的デリバリー)システム、自動化されたエージェントのあちこちに分散しがちで、漏洩のリスクを高め、認証情報のローテーションや監査を難しくします。
多くのチームは、誰がどのモデルを、どのくらいの頻度で、どれだけのコストで使っているのかを明確に把握できていません。
そのため、セキュリティ・プラットフォーム・コンプライアンスの各チームが、開発者の速度を落とさずに大規模なAI利用を支えることが難しくなっています。
Aperture by Tailscaleは、組織全体でLLMリクエストを保護・監視・ルーティングする一元的なAIゲートウェイによって、これらの課題に対応します。
Apertureは、Tailscaleのアイデンティティ層を利用してユーザーを自動的に認証し、APIキーを配布する必要をなくします。
ユーザーと自動化されたエージェントに対してプロバイダーの認証情報を注入し、既存のツールやワークフローを変更することなく、OpenAI、Anthropic、GoogleなどのアップストリームのLLMプロバイダーへリクエストをルーティングします。
ユースケース
Apertureは、組織がLLMクライアントを導入する際に直面する、よくある課題に対応します。
APIキーの一元管理
開発者にAPIキーを配布することは、セキュリティ上のリスクと管理上の負担を生みます。
キーは、リポジトリにコミットされたり、安全でない方法で共有されたり、従業員の退職時に放置されたりします。
Apertureは、APIキーをサーバー設定で一元管理します。
クライアントは、プロバイダーの認証情報を必要とせずにプロキシ経由で接続します。
ユーザーのアイデンティティは、デバイスに基づいてユーザーを自動的に識別するTailscaleのアイデンティティ層から得られます。
LLM利用状況の可視化
エンジニアリングチームが、LLMを活用したツールをどのように導入しているのかを可視化します。
Apertureを使うと、次のような疑問に答えられます。
- 先月、どれだけのトークンを使用したか?
- チームはどのモデルを使っているか?
- LLMの支出の内訳はどうなっているか?
Apertureは、すべてのリクエストを、ユーザーの帰属、モデルの識別、トークン数とともに記録します。
Apertureのダッシュボードは、このデータをユーザー・モデル・期間ごとに集計します。
コスト追跡
LLMのAPIコストはトークン使用量に応じて増減しますが、ツールやプロバイダーをまたいで消費量を追跡するには、各ソースから個別にデータを集約する必要があります。
開発者は自分のワークフローにどれだけコストがかかっているかに気づいていないことがあり、財務チームは予算を予測するためのデータを持っていません。
Apertureは、入力・出力・キャッシュ済み・推論(reasoning)の各トークンを含め、すべてのレスポンスからトークン使用量を抽出します。
このデータは、コスト分析のためのダッシュボードやエクスポートに供給されます。
また、予算とユーザーごとの支出上限を設定して、コスト超過を防ぐこともできます。
導入状況の分析
導入に関する知見を集め、次のような疑問に答えます。
- どのチームがツールを使っているか? どのくらいの頻度か?
- ツールを一度試しただけで、使うのをやめてしまったユーザーはいるか?
Apertureダッシュボードの「導入(Adoption)」ページには、組織全体の利用パターン、時系列でのアクティブユーザー、利用分布のヒストグラムが表示されます。
コンプライアンスと監査証跡
規制業界では、AIとのやり取りについて監査証跡が求められます。
LLMリクエストがクライアントからプロバイダーへ直接流れる場合、組織には何が送受信されたかの記録が残りません。
Apertureは、ダッシュボードで確認できるよう、リクエストとレスポンスの本文全体を保存します。
キャプチャシステムは、ヘッダー、ペイロード、ツール利用データを保持します。
ダッシュボードは長期保存を想定して設計されていないため、保持ポリシーを設定してApertureがキャプチャデータを保持する期間を制御し、永続的な保存・監視・コンプライアンス業務のためにログとイベントをSIEMへエクスポートしてください。
LLMセッションのデバッグ
リクエストとレスポンスの全データを確認して、LLMとのやり取りをデバッグします。
Apertureダッシュボードの「ログ(Logs)」ページは、関連するリクエストをセッションごとにまとめ、会話やコーディングタスクの流れを追跡できるようにします。
必要要件
Apertureをセットアップする前に、次のものが揃っていることを確認してください。
-
LLMプロバイダーの開発者向けプラットフォームから取得したAPIキー。
Apertureは、OpenAI、Anthropic、Google Gemini、OpenRouter、Amazon Bedrock、Vertex AI、およびOpenAI互換APIに対応しています。
プロバイダーごとの手順については、LLMプロバイダーをセットアップするを参照してください。
Apertureには、プロバイダーの開発者向けプラットフォームから取得したAPIキーが必要です。
コンシューマー向けおよびビジネス向けのサブスクリプションプラン(Claude Pro、ChatGPT Plus、Gemini Advancedなど)はAPIキーを提供しないため、Apertureとは互換性がありません。 -
Tailscaleアカウント。
Apertureはtailnet上で動作します。
Apertureにサインアップする際、アカウントを持っていない場合は、その過程で無料のTailscaleアカウントが作成されます。 -
Apertureインスタンスへのネットワーク接続。
同じtailnet上のデバイスは直接接続します。
tailnet外のデバイスは、ts-unplugを使って接続できます。
制限事項
導入前に、次の制限事項を考慮してください。
TailscaleはApertureを積極的に開発しているため、このリストは頻繁に更新されます。
Tailscaleが必要
Apertureサーバーは、Tailscaleネットワーク上で動作します。
クライアントは、tailnet内から、またはts-unplugを使ってtailnet外から接続できます。
どちらの経路でも、Tailscaleベースのアイデンティティが提供されます。
公衆インターネットからの直接アクセスには対応していません。
プロバイダーのサポート
メトリクスの抽出は、プロバイダーのレスポンス形式の解析に依存しています。
Apertureは、OpenAI、Anthropic、Gemini、およびOpenAI互換APIを処理します。
詳細はプロバイダー互換性リファレンスを参照してください。
新しいプロバイダーや形式の変更には、更新が必要になる場合があります。
リクエストの変更は行わない
Apertureは、(認証ヘッダーを除き)リクエストを変更せずにキャプチャして転送します。
Apertureは、リクエストのフィルタリングやプロンプトインジェクションの検出にはまだ対応していません。
クォータ容量を減らすと既存の残高が上限に制限される
Apertureは、クォータバケットの残高を永続的に保持します。
バケットの容量を減らすと、Apertureは既存の残高を新しい値に上限制限し、超過分は復元できません。
設定からクォータ定義を削除したバケットは、Apertureが削除します。
詳細はバケットのライフサイクルを参照してください。
サブスクリプションプランは非対応
Apertureは、プロバイダーの開発者向けプラットフォームから取得したAPIキーを使って、LLMプロバイダーと認証します。
コンシューマー向けおよびビジネス向けのサブスクリプションプラン(Claude ProやClaude Max、ChatGPT PlusやPro、Team、Gemini Advancedなど)は、プロバイダーのAPIアクセスとは別物であり、Apertureと互換性のあるAPIキーを提供しません。
FAQ
- ユーザーがtailnet外から接続しようとするとどうなりますか?
- tailnet外のユーザーは、ts-unplug経由で接続できます。ts-unplugは、軽量なtailnetノードを作成し、ローカルのトラフィックをApertureへプロキシします。ApertureはTailscaleのインターフェイスで待ち受けているため、ts-unplugを使わない場合、接続はネットワークレベルで失敗します。
- 設定に新しいLLMプロバイダーを追加するとどうなりますか?
- クライアントは、リクエストでモデル名を指定するだけで、すぐにそのプロバイダーのモデルを使用できます。プロキシはモデル名に基づいてルーティングするため、クライアント側の変更は不要です。
- ストリーミングレスポンスが途中で中断されるとどうなりますか?
- プロキシは、中断前に到着したデータをすべてキャプチャします。メトリクスの抽出は失敗したり、部分的なデータを報告したりすることがありますが、プロキシはデバッグのために部分的なキャプチャを保存します。
- Apertureを使うために、クライアントはAPIキーを必要としますか?
- いいえ。Apertureは、Tailscaleを通じてユーザーを識別し、プロバイダーのAPIキーを自動的に注入します。クライアントは、認証情報なしで接続します。
- Claude MaxやChatGPT PlusなどのサブスクリプションプランをApertureで使えますか?
- いいえ。Apertureには、プロバイダーの開発者向けプラットフォームから取得したAPIキーが必要です。コンシューマー向けおよびビジネス向けのサブスクリプションプラン(Claude ProやClaude Max、ChatGPT PlusやPro、Team、Gemini Advancedなど)は、プロバイダーのAPIアクセスとは別物であり、Apertureと互換性のあるAPIキーを提供しません。APIキーは、プロバイダーの開発者向けプラットフォーム(例: Anthropic Console、OpenAI Platform、Google AI Studio)から取得してください。
- ドキュメントに記載されていないプロバイダーでApertureを使えますか?
-
プロバイダーがOpenAI互換のAPI形式を使っていれば、使えます。
openai_chat: trueの互換性と適切な認可タイプを指定して、プロバイダーとして設定してください。 - セルフホストのLLMでApertureを使えますか?
- はい。エンドポイントを公衆インターネットに公開することなく、セルフホストのLLMをAperture経由でプロキシできます。
- GitHub ActionsのようなCI/CD環境でApertureを使えますか?
- Tailscaleを動かせる環境であれば、使えます。Apertureは、GitHub Actionsのような一般的なコンテナ環境で動作し、エージェントとゲートウェイのどちらも公衆インターネットに公開する必要はありません。
- 複数のtailnetでApertureを使えますか?
- はい。ts-unplugを使って、別のtailnetからApertureに接続できます。また、ts-unplugを使えば、tailnetにまったく参加していない環境からも接続できます。
さらに詳しく
- Apertureの仕組み: アイデンティティと認証、モデルによるリクエストのルーティング、テレメトリのキャプチャ、セッションの追跡。
- Apertureを使い始める: サインアップ、プロバイダーの設定、最初のLLMクライアントの接続。