OpenAI Private Link を使うと、Azure ワークロードはパブリック API エンドポイントに直接接続する代わりに、Azure Private Link を介してリージョン別の OpenAI API エンドポイントにアクセスできます。OpenAI が提供するリージョン別の Private Link サービスごとにプライベートエンドポイントを作成し、プライベート DNS にそのリージョンのホスト名の対応付けを設定して、そのホスト名に通常の認証済み API リクエストを送信します。
組織で、トラフィックを Azure のプライベートネットワーク内に限定する厳格な要件がある場合は、Private Link を使用してください。プライベートネットワークの要件がなければ、OpenAI のパブリックエンドポイントの方が設定も運用も簡単です。Private Link は IP 許可リストによる制御や相互 TLS(mTLS)とは併用できません。適切なエンタープライズ向けネットワーク制御の選択についてサポートが必要な場合は、OpenAI にお問い合わせください。
Private Link は現在、セルフサービスでは利用できません。OpenAI の担当者、または 営業窓口にアクセスを申請し、 必要なリージョンの Private Link サービスのエイリアスまたはリソース識別子を 取得してください。
Private Link の仕組み
一部のお客様は、各プライベートエンドポイントを特定の OpenAI API クラスターに接続する従来の Private Link ソリューション(v1)を利用しています。現在のリージョン別ソリューションには、次の違いがあります。
| 従来の 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 プライベートエンドポイントに解決されます。
- プライベートエンドポイントが、そのリージョンの 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 ポータルまたは 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 の更新
リージョン別の Private Link ホスト名を OpenAI API のベース URL として使用します。
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 アドレスを記録しています。
/v2/privatelink_healthcheckに対するcurl --resolveが成功します。- アプリケーションのネットワークから、プライベート DNS によってリージョンのホスト名をプライベートエンドポイントの IP アドレスに解決できます。
- アプリケーションから、リージョンのホスト名を通じて代表的な
/v1API エンドポイントを呼び出せます。 - 自動ヘルスチェックにレート制限を適用し、エラー発生時にはリージョン、ステータスコード、エラーの種類をログに記録しています。
- 管理された環境でリージョンを意図的に異常な状態にし、アプリケーションのフェールオーバー動作をテストしています。
- DNS、プライベートエンドポイントの構成、アプリケーションのリージョン別ルーティングを変更できる担当者を、運用ドキュメントに明記しています。
エンドポイントの互換性の確認
次の表は、記載された公開 API ルートの背後にあるサービスの現在のデプロイ構成を示しています。この表は、お客様の実環境での検証に代わるものではありません。対象となる各リージョンで、モデルの可用性、プロダクトの利用条件、下流の依存関係、リクエストサイズの上限、ストリーミングの動作、WebSocket の動作をテストしてください。Yes は、そのリージョンの経路にあるすべてのバックエンドクラスターに該当ルートが存在することを意味します。No は、その経路に対応するバックエンドサービスが存在しないことを意味します。
| エンドポイントの種類 | 米国中南部 | 米国西部 | 米国東部 2 | スペイン中部 / EU |
|---|---|---|---|---|
/v1/responses | はい | はい | はい | はい |
/v1/chat/completions | はい | はい | はい | はい |
/v1/completions | はい | はい | はい | はい |
/v1/embeddings | はい | はい | はい | はい |
/v1/audio/*(推論) | はい | はい | はい | はい |
/v1/audio/*(管理) | はい | いいえ | いいえ | はい |
/v1/models | はい | はい | はい | はい |
/v1/files、/v1/uploads | はい | はい | はい | 対応 |
/v1/batches | 対応 | 対応 | 対応 | 対応 |
/v1/images/* | 対応 | 対応 | 対応 | 対応 |
/v1/moderations | 対応 | 対応 | 対応 | 対応 |
/v1/vector_stores | 対応 | 対応 | 対応 | 対応 |
/v1/organization/audit_logs | 対応 | 対応 | 対応 | 対応 |
その他の /v1/organization/*、/v1/usage | 対応 | 非対応 | 非対応 | 対応 |
/v1/realtime | 対応 | 対応 | 対応 | 対応 |
よくある質問
Private Link はリージョン間で自動的にフェイルオーバーしますか?
いいえ。リージョンのプライベートエッジ経路は、設定されたバックエンドクラスター間でリクエストをルーティングできますが、別のリージョンのプライベートエンドポイントへトラフィックを自動的に移すことはありません。使用するリージョンのエンドポイント間でフェイルオーバーするように、アプリケーションを設定してください。
どのヘルスチェックを使用すればよいですか?
リージョンのホスト名に対して GET /v2/privatelink_healthcheck を使用してください。従来の v1 ヘルスチェックパスは、バックエンドクラスターのヘルスチェック経路を確認するものなので、お客様側の監視には使用しないでください。
アプリケーションではどの API ホスト名を使用すればよいですか?
https://southcentralus.privatelink.api.openai.com/v1 のように、リージョンのホスト名と通常の /v1 API パスを組み合わせて使用してください。
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 機能とモデルをすべての対象リージョンでテストしてください。