OpenAI Private Link を使用すると、Azure ワークロードは公開 API エンドポイントに直接接続せずに、Azure Private Link 経由でリージョン別の OpenAI API エンドポイントにアクセスできます。OpenAI が提供するリージョン別の Private Link サービスごとにプライベートエンドポイントを作成し、プライベート DNS でリージョンのホスト名をそのエンドポイントの IP アドレスに対応付けます。そのホスト名に、通常どおり認証情報を付けて API リクエストを送信します。
組織の要件で通信経路を Azure のプライベートネットワークに限定する必要がある場合は、Private Link を使用してください。その要件がなければ、OpenAI の公開エンドポイントの方が設定も運用も簡単です。Private Link は、IP 許可リストによるアクセス制御や相互 TLS 認証(mTLS)と併用できません。組織に適したネットワーク制御の選択でお困りの場合は、OpenAI にお問い合わせください。
現在、Private Link はセルフサービスで利用を開始できません。OpenAI の担当者または営業窓口にアクセスを申請し、必要なリージョンの Private Link サービスのエイリアスまたはリソース識別子を取得してください。
Private Link の仕組み
従来の Private Link(v1)では、各プライベートエンドポイントが特定の OpenAI API クラスターに接続します。現在も一部のお客様がこの方式を使用しています。現在のリージョン別の方式との違いは次のとおりです。
| 従来の Private Link(v1) | リージョン別の Private Link | |
|---|---|---|
| ホスト名 | クラスターごと(例:privatelink.enterprise.unified-1.api.openai.com) |
リージョンごと(例:southcentralus.privatelink.api.openai.com) |
| OpenAI 側のルーティング | 接続先を 1 つの OpenAI API クラスターに固定 | リージョンのプライベートエッジゲートウェイが複数のバックエンド OpenAI API クラスターにルーティング可能 |
| お客様が使用するヘルスチェック | 従来の v1 ヘルスチェックパス | GET /v2/privatelink_healthcheck |
リクエストは次の経路をたどります。
- アプリケーションがプライベート DNS にリージョンの Private Link ホスト名を問い合わせます。
- 名前解決の結果、仮想ネットワーク内にある Azure プライベートエンドポイントの IP アドレスが返ります。
- プライベートエンドポイントが、そのリージョンの OpenAI Private Link サービスに接続します。
- Private Link サービスが、OpenAI のリージョン別プライベートエッジゲートウェイにリクエストを送信します。
- ゲートウェイが、そのリージョンの経路上でエンタープライズ向け機能が有効になっているバックエンド OpenAI API クラスターにリクエストを転送します。
同じリージョンの経路内であれば、Private Link は利用できないバックエンドクラスターを迂回できます。また、OpenAI がバックエンドクラスターを追加しても、お客様がプライベートエンドポイントを再構成する必要はありません。一方、選択したリージョンのホスト名に向けたトラフィックが、別のリージョンのプライベートエンドポイントに自動で切り替わることはありません。Private Link でも OpenAI の公開エンドポイントと同じルーティングが行われるとは想定せず、リージョン間のフェイルオーバーをアプリケーション側で構成してください。
リージョン別エンドポイントの選択
使用する Private Link サービスのエイリアスまたはリソース識別子は、導入時に OpenAI がお知らせします。現在の本番環境のリージョン別ホスト名は次のとおりです。
| リージョン名 | お客様が使用するホスト名 |
|---|---|
| 米国中南部 | southcentralus.privatelink.api.openai.com |
| 米国西部 | westus.privatelink.api.openai.com |
| 米国東部 2 | eastus2.privatelink.api.openai.com |
| スペイン中部 / EU | spaincentral.privatelink.api.openai.com |
スペイン中部 / EU のホスト名宛てのリクエストは、北ヨーロッパなど、EU 内の別のリージョンにあるバックエンドクラスターに転送される場合があります。
Private Link の設定
1. 導入に必要な情報の提供
次の情報を OpenAI に送付してください。
- OpenAI Private Link サービスへのアクセスが必要な Azure サブスクリプションの ID
- OpenAI 組織 ID
- 利用するリージョン
- メンテナンスやリージョン間のトラフィック切り替えに関する通知を受け取る運用担当者の連絡先
OpenAI は、該当するリージョンの Private Link サービスを対象のサブスクリプションから参照できるようにし、それらのサブスクリプションからの接続を承認します。その後、Private Link サービスのエイリアスまたはリソース識別子をお知らせします。
2. プライベートエンドポイントの作成
選択したリージョンごとにプライベートエンドポイントを 1 つ作成します。Azure では、プライベートエンドポイントをお客様の仮想ネットワークと同じリージョンに配置する必要があります。--location には仮想ネットワークのリージョンを指定してください。OpenAI Private Link サービスのリージョンとは異なる場合があります。
次のコマンドでは、OpenAI が提供する Private Link サービスのリソース識別子を使用します。
az network private-endpoint create \
--name openai-privatelink-southcentralus \
--resource-group <customer-resource-group> \
--location <customer-vnet-region> \
--vnet-name <customer-vnet> \
--subnet <customer-private-endpoint-subnet> \
--private-connection-resource-id <openai-provided-pls-resource-id> \
--connection-name openai-privatelink-southcentralus
OpenAI からエイリアスが提供された場合は、エイリアスを指定し、--manual-request true を追加してください。
az network private-endpoint create \
--name openai-privatelink-southcentralus \
--resource-group <customer-resource-group> \
--location <customer-vnet-region> \
--vnet-name <customer-vnet> \
--subnet <customer-private-endpoint-subnet> \
--private-connection-resource-id <openai-provided-pls-alias> \
--connection-name openai-privatelink-southcentralus \
--manual-request true
Azure では --manual-request true の指定がエイリアスを使用した接続に必要です。この指定があっても、アクセスリストに登録されたサブスクリプションからの接続は自動承認の対象になります。
組織で Infrastructure as Code を使用してプライベートエンドポイントを管理している場合は、Azure portal または Terraform で同様の手順を実行してください。
3. DNS 変更前の接続テスト
OpenAI がプライベートエンドポイントを承認し、Azure でのプロビジョニングが完了したら、そのプライベート IP アドレスを控えます。curl --resolve を使うと、ネットワーク全体の DNS 設定を変更せずに、リージョンのホスト名への接続をテストできます。
curl -v \
--resolve southcentralus.privatelink.api.openai.com:443:<PRIVATE_ENDPOINT_IP> \
https://southcentralus.privatelink.api.openai.com/v2/privatelink_healthcheck
正常な場合は HTTP 200 と次のようなメッセージが返ります。
{ "message": "Service is up" }
ヘルスチェックのパスには /v2/privatelink_healthcheck を正確に指定してください。自動ヘルスチェックによるトラフィックを抑えるため、OpenAI が別のレートを承認した場合を除き、リージョン別エンドポイントごとに最大 1 QPS としてください。
4. プライベート DNS の構成
ネットワーク内で各リージョンの OpenAI Private Link ホスト名が対応するプライベートエンドポイントの IP アドレスに解決されるよう、プライベート DNS レコードを作成します。
| ホスト名 | プライベートエンドポイントの IP アドレス |
|---|---|
southcentralus.privatelink.api.openai.com |
<southcentralus-private-endpoint-ip> |
westus.privatelink.api.openai.com |
<westus-private-endpoint-ip> |
eastus2.privatelink.api.openai.com |
<eastus2-private-endpoint-ip> |
spaincentral.privatelink.api.openai.com |
<spaincentral-private-endpoint-ip> |
アプリケーションが使用するネットワーク経路から、DNS の名前解決と接続を確認します。
nslookup southcentralus.privatelink.api.openai.com
curl -v https://southcentralus.privatelink.api.openai.com/v2/privatelink_healthcheck
5. リージョン間のフェイルオーバー
Private Link はリージョンごとに接続先を提供します。トラフィックの宛先は、選択したリージョンのホスト名です。リージョン間でフェイルオーバーできるように、クライアント、サービスメッシュ、DNS 層、または負荷分散層を構成してください。
次の動作を推奨します。
- 構成した各リージョンに
GET /v2/privatelink_healthcheckを送信して状態を確認します。 - HTTP
200が返れば、リージョンを利用可能と判定します。 5xx応答、接続エラー、TLS エラーのいずれかが発生した場合や、タイムアウトが繰り返される場合は、利用不可と判定します。- 接続先が頻繁に切り替わるのを防ぐため、エラーが数回連続した場合にのみフェイルオーバーします。
- 利用不可と判定したリージョンに対してもバックグラウンドでヘルスチェックを続け、運用方針に従ってフェイルバックします。
リージョンのヘルスチェックには、プライベートエッジ経由で接続する OpenAI API クラスターの状態が反映されます。そのリージョンで認識されているバックエンドクラスターがない場合、ヘルスチェックの設定がない場合、または正常なバックエンドクラスターの数が不足している場合は、エラーが返ります。
特定の API やモデルの状態に基づいてルーティングを決定する場合は、このヘルスチェックに加えて、同じネットワーク経路から対象の API とモデルに低頻度でテストリクエストを送信してください。
6. アプリケーションのベース URL の更新
OpenAI API のベース URL には、リージョンの Private Link ホスト名を使用します。
from openai import OpenAI
client = OpenAI(
base_url="https://southcentralus.privatelink.api.openai.com/v1",
)SDK は環境変数から OPENAI_API_KEY を読み取ります。
リージョンのエンドポイントを直接呼び出すこともできます。
curl https://southcentralus.privatelink.api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"input": "Say hello from Private Link."
}'まず開発環境またはステージング環境で試し、その後、本番トラフィックを段階的に切り替えてください。
構成の確認
Private Link を導入する際や、既存の構成から移行する際は、次の項目を確認してください。
- 対象の Azure サブスクリプション ID で、選択したリージョンの Private Link サービスにアクセスできることを OpenAI が確認済みです。
- 選択した各リージョンのプライベートエンドポイントを作成し、OpenAI の承認を受けています。
- 各プライベートエンドポイントの IP アドレスを記録しています。
curl --resolveを使った/v2/privatelink_healthcheckへのリクエストが成功します。- アプリケーションのネットワークからプライベート DNS を使うと、リージョンのホスト名がプライベートエンドポイントの IP アドレスに解決されます。
- アプリケーションからリージョンのホスト名を使って、代表的な
/v1API エンドポイントを呼び出せます。 - 自動ヘルスチェックにはレート制限があり、エラー時にリージョン、ステータスコード、エラーの種類がログに記録されます。
- 管理されたテスト環境でリージョンを意図的に異常状態にし、アプリケーションのフェイルオーバー動作を確認済みです。
- DNS、プライベートエンドポイントの構成、アプリケーションのリージョン別ルーティングを誰が変更できるかを運用ドキュメントに明記しています。
エンドポイントの対応状況
次の表は、各公開 API ルートを処理するサービスの現在のデプロイ状況を示しています。実際の利用環境でも検証が必要です。対象リージョンごとに、モデルの利用可否、製品機能の利用条件、依存する下流サービス、リクエストサイズの上限、ストリーミングと WebSocket の動作をテストしてください。Yes はそのリージョンの経路上にあるすべてのバックエンドクラスターでルートが利用可能であることを、No はその経路に対応するバックエンドサービスがないことを示します。
| エンドポイントの種類 | 米国中南部 | 米国西部 | 米国東部 2 | スペイン中部 / EU |
|---|---|---|---|---|
/v1/responses |
Yes | Yes | Yes | Yes |
/v1/chat/completions |
Yes | Yes | Yes | Yes |
/v1/completions |
Yes | Yes | Yes | Yes |
/v1/embeddings |
Yes | Yes | Yes | Yes |
/v1/audio/*(推論) |
Yes | Yes | Yes | Yes |
/v1/audio/*(管理) |
Yes | No | No | Yes |
/v1/models |
Yes | Yes | Yes | Yes |
/v1/files、/v1/uploads |
Yes | Yes | Yes | Yes |
/v1/batches |
Yes | Yes | Yes | Yes |
/v1/images/* |
Yes | Yes | Yes | Yes |
/v1/moderations |
Yes | Yes | Yes | Yes |
/v1/vector_stores |
Yes | Yes | Yes | Yes |
/v1/organization/audit_logs |
Yes | Yes | Yes | Yes |
その他の /v1/organization/*、/v1/usage |
Yes | No | No | Yes |
/v1/realtime |
Yes | Yes | Yes | Yes |
よくある質問
Private Link によるリージョン間の自動フェイルオーバーの可否
リージョン間では自動フェイルオーバーしません。リージョンのプライベートエッジ経路では、構成済みのバックエンドクラスター間でリクエストを振り分けられますが、別のリージョンのプライベートエンドポイントにトラフィックが自動で切り替わることはありません。使用するリージョンのエンドポイント間でフェイルオーバーするように、アプリケーションを構成してください。
使用するヘルスチェック
リージョンのホスト名に対して GET /v2/privatelink_healthcheck を使用してください。従来の v1 ヘルスチェックパスは、バックエンドクラスターの状態を監視するための経路をチェックします。お客様側の監視には使用しないでください。
アプリケーションで使用する API ホスト名
リージョンのホスト名に通常の /v1 API パスを組み合わせます。たとえば、https://southcentralus.privatelink.api.openai.com/v1 を使用します。
AWS または Google Cloud のワークロードからの Private Link 接続
直接接続はできません。Private Link 接続は Azure 専用です。AWS または Google Cloud のワークロードから接続するには、Azure 上のプロキシやクラウド間のプライベート接続など、お客様が管理するネットワーク経由で Azure に接続し、そこから Azure Private Link 経由で OpenAI に接続する必要があります。
Private Link による認証への影響
認証方法は変わりません。Private Link で変わるのはネットワーク経路だけです。リクエストには引き続き、通常の OpenAI API の認証と認可が必要です。
Private Link で利用可能な OpenAI API
すべての API に対応しているわけではありません。対応の有無は、選択したリージョンの経路上にあるすべてのバックエンドクラスターで、その API を利用できるかどうかによって決まります。まず対応状況の表を確認し、必要な API 機能とモデルを対象リージョンごとにテストしてください。