Azure REST APIでPrivate EndpointにbillingSku追加|2025-07-01変更点と対応ポイント

2026年5月5日に、Azure REST API仕様へ「Private Endpoint Billing Sku Property in 2025-07-01」が追加されました。結論から言うと、Azure REST APIでPrivate Endpointを作成・更新・取得するコードやIaCを扱っているチームは、2025-07-01 APIバージョンを使うタイミングでbillingSkuプロパティの有無を確認すべきです。既存環境をすぐ変更しなければならない情報というより、APIレスポンスやスキーマ検証、SDK生成、コスト管理の観点で見落とすと不具合や確認漏れにつながる変更です。(GitHub)

今回の更新では、PrivateEndpointPropertiesに任意プロパティとしてbillingSkuが追加され、値としてPayAsYouGoとFixedが定義されています。PayAsYouGoはPrivate Endpointの既定価格、Fixedは高いデータ処理量のPrivate Endpointに適したSKUとして説明されています。(GitHub)

目次

Azure REST APIのPrivate Endpointに追加されたbillingSkuとは

billingSkuは、Azure Private Endpointの課金SKUを表すプロパティです。今回のPRでは、2025-07-01の安定版APIに対して、Private Endpointのプロパティとして追加されています。対象はAzure REST API仕様を管理するAzure/azure-rest-api-specsリポジトリで、このリポジトリはAzure REST API仕様の基準となるソースです。(GitHub)

追加された定義を整理すると、次のようになります。

項目内容
対象APIAzure REST API / Microsoft.Network
対象リソースPrivate Endpoint
APIバージョン2025-07-01 stable
追加プロパティproperties.billingSku
型enum扱いの文字列
値PayAsYouGo、Fixed
必須/任意任意プロパティ
主な確認対象REST API、SDK、IaC、スキーマ検証、コスト管理

重要なのは、billingSkuが「Private Endpointの接続先サービス」や「プライベートDNSの設定」を直接置き換える項目ではないことです。ネットワーク接続そのものの設定というより、Private Endpointの課金モデルをAPI上で扱えるようにする変更と捉えると分かりやすいです。

何が変わったのか

今回の変更点は大きく3つです。

PrivateEndpointPropertiesにbillingSkuが追加された

Private Endpointのプロパティに、課金SKUを表すbillingSkuが追加されました。TypeSpec上では@added(Versions.v2025_07_01)として定義されており、2025-07-01以降のAPIバージョンで扱う項目として位置づけられています。(GitHub)

イメージとしては、Private Endpointの作成・更新リクエスト、または取得レスポンスで、次のようなプロパティを扱う可能性が出てきます。

{
  "properties": {
    "billingSku": "PayAsYouGo"
  }
}

実際のリクエストでは、サブネット、プライベートリンクサービス接続、IP構成など他のPrivate Endpoint設定も含まれます。billingSkuだけでPrivate Endpointを作成できるわけではありません。

enum値としてPayAsYouGoとFixedが定義された

billingSkuの値は、次の2種類です。

値説明実務上の見方
PayAsYouGoPrivate Endpointの既定価格として説明されている通常利用や従量課金前提の構成でまず確認すべき値
Fixed高いデータ処理量のPrivate Endpointに適していると説明されている大量通信や安定した通信量がある環境で、コスト比較の対象になり得る値

ただし、実際の料金は契約種別、リージョン、通貨、購入時期などで変わります。Azure Private Linkの価格ページでも、表示価格は見積もりであり、実際の価格は契約や為替などによって異なる可能性があると説明されています。コスト判断ではAPI仕様だけでなく、料金計算ツールや契約条件の確認が必要です。(Microsoft Azure)

common.jsonとvirtualNetwork.jsonにも反映された

PRの差分では、stable/2025-07-01/common.jsonにCommon.PrivateEndpointBillingSkuが追加され、stable/2025-07-01/virtualNetwork.jsonのPrivate EndpointプロパティにbillingSku参照が追加されています。つまり、単なる説明文の追記ではなく、OpenAPI/Swagger由来のクライアント生成や検証にも影響し得る仕様変更です。(GitHub)

誰が対応すべきか

すべてのAzure利用者がすぐに設定変更する必要はありません。対応優先度が高いのは、Azure REST APIやスキーマを直接扱っているチームです。

対象者対応優先度確認すべきこと
Azure REST APIを直接呼び出している開発者高2025-07-01を使う予定があるか、レスポンスの新プロパティで処理が壊れないか
SDKを自動生成・更新しているチーム高モデルクラスやenum定義にbillingSkuが追加されるか
Terraform AzAPI、ARMテンプレート、Bicepを使うIaC担当者中〜高スキーマ検証、差分検出、ポリシー評価に影響がないか
コスト管理・FinOps担当者中Private Endpointの課金SKUを管理・棚卸しの観点に入れるか
Azure Portal中心でPrivate Endpointを少数管理している利用者低〜中今後のAPIバージョンや課金表示の変化を把握しておく

特に注意したいのは、「REST APIのレスポンスに未知のプロパティが増えると失敗する」実装です。通常、JSONレスポンスに追加フィールドが増えても無視できる設計が望ましいですが、厳密なスキーマ検証や独自パーサーを使っている場合は、billingSkuの追加でテストが失敗することがあります。

影響範囲:既存のPrivate Endpointはどうなるか

今回の更新は、2025-07-01 APIバージョンにおけるPrivate Endpointプロパティ追加です。billingSkuは任意プロパティとして追加されているため、既存のPrivate Endpointをただちに再作成する必要がある、という種類の変更ではありません。

ただし、次のケースでは影響が出る可能性があります。

APIバージョンを2025-07-01へ上げる場合

現在のコードやテンプレートが古いAPIバージョンを使っている場合、2025-07-01へ切り替えることでレスポンスや生成モデルにbillingSkuが現れる可能性があります。

確認すべきポイントは次のとおりです。

確認対象見るべきポイント
REST APIクライアント未知のJSONプロパティを許容できるか
DTO/モデルクラスbillingSku追加に伴うコンパイルエラーがないか
CIのスキーマ検証追加プロパティをエラー扱いしていないか
API差分テストレスポンス比較が完全一致前提になっていないか
監査ログ・棚卸し処理billingSkuを記録対象に含めるか

特に、レスポンス全体をスナップショットとして比較するテストは失敗しやすいです。Private EndpointのAPIレスポンスを固定JSONと完全一致で比較している場合は、properties.billingSkuの追加を許容する形に直すのが安全です。

SDKを更新する場合

PR上では、API変更チェックによりGo、Java、TypeSpecのAPIレビューが作成されています。SDK生成や言語別パッケージに影響し得る変更であることが分かります。(GitHub)

SDK更新時は、次のような変化が起きる可能性があります。

  • Private Endpoint関連のモデルにbillingSkuプロパティが追加される
  • PrivateEndpointBillingSkuのようなenumまたは文字列型が追加される
  • 生成コードの差分により、既存のテストや型チェックが変わる
  • SDKのバージョンによって、REST API仕様の反映タイミングが異なる

実務では、SDK更新とAPIバージョン変更を同時に行うと原因切り分けが難しくなります。先にSDK更新だけをテストし、その後APIバージョンを切り替えるなど、変更を分けると安全です。

IaCでPrivate Endpointを管理している場合

ARMテンプレート、Bicep、Terraform AzAPIなどでPrivate Endpointを管理している場合、billingSkuを明示すべきかどうかを検討する必要があります。

判断の目安は次のとおりです。

状況推奨対応
既存構成を維持したいまず現状のAPIレスポンスでbillingSkuが返るか確認する
新規Private Endpointを大量作成するPayAsYouGoとFixedのどちらを使うべきか、通信量と料金条件を確認する
厳密なポリシー管理をしているAzure Policyや独自チェックにbillingSku条件を追加するか検討する
コスト配賦を細かく管理しているタグだけでなく、SKU情報も棚卸し対象に含める
APIバージョン固定のテンプレートを使っているapiVersionを上げたときの差分を検証環境で確認する

billingSkuは任意プロパティなので、テンプレートに必ず追加しなければならないとは限りません。むしろ、料金や対応リージョン、サービス側の扱いを確認しないままFixedを明示するほうがリスクになります。

まず確認すべき変更点チェックリスト

今回のAzure REST API documentation updateを受けて、実務で確認すべき項目をチェックリストにまとめます。

チェック項目確認方法注意点
使用中のAPIバージョンコード、ARM/Bicep、AzAPI、SDK設定を確認2025-07-01を使っていなければ直ちに影響しない場合が多い
レスポンス処理Private Endpoint取得APIの戻り値をテスト未知プロパティで例外になる実装は修正
スキーマ検証JSON Schema、OpenAPI検証、CIを確認完全一致テストは失敗しやすい
SDK差分生成モデルやenumの変更を確認SDK反映タイミングは言語やパッケージで異なる
IaC差分plan、what-if、差分検出を実行意図しない更新扱いにならないか確認
コスト影響Azure料金ページ、料金計算ツール、契約条件を確認API仕様だけで料金を断定しない
運用ルール命名規則、棚卸し、監査項目を見直すSKU情報を記録対象にするか決める

移行時のおすすめ手順

2025-07-01 APIバージョンへ移行する場合は、いきなり本番環境でPrivate Endpointの作成・更新を行うのではなく、段階的に確認します。

既存コードのAPIバージョンを洗い出す

まず、Private Endpointを操作している箇所を探します。

確認対象の例は次のとおりです。

Microsoft.Network/privateEndpoints
api-version=2025-07-01
privateEndpoints
PrivateEndpointProperties

REST APIを直接呼び出している場合は、URLクエリのapi-versionを確認します。IaCの場合は、ARMテンプレートやBicepのapiVersion、Terraform AzAPIのtype指定を確認します。

検証環境でGETレスポンスを確認する

次に、既存のPrivate EndpointをGETし、properties.billingSkuが返るかを確認します。

例として、REST APIのレスポンス確認では次の観点を見ます。

{
  "id": "...",
  "name": "...",
  "type": "Microsoft.Network/privateEndpoints",
  "properties": {
    "billingSku": "PayAsYouGo"
  }
}

実際のレスポンスは環境やAPIの反映状況によって異なる可能性があります。返ってこない場合でも、仕様上追加されたプロパティとして、将来返る可能性を前提にパーサーや検証を作るのが安全です。

PUT/PATCH時に不要な上書きをしない

Private Endpointの更新処理で、既存リソースのJSONを取得して一部だけ変更し、そのままPUTする実装は注意が必要です。

新しいプロパティを理解しないままリクエストから落としてしまうと、意図せず既定値に戻る、またはサービス側の検証に引っかかる可能性があります。Azure REST APIではリソースごとにPUT/PATCHの扱いが異なるため、更新前後の差分を必ず確認してください。

特に次の実装は見直す価値があります。

  • 取得したJSONから自社が知っているプロパティだけを抽出してPUTしている
  • additionalProperties: falseのような厳密な検証をしている
  • レスポンスを固定のDTOへ変換し、未知フィールドを破棄している
  • 既存JSONと新JSONを完全一致で比較している

コスト判断は料金情報とセットで行う

Fixedという値を見ると「固定料金なら安いのでは」と判断したくなりますが、API仕様だけでは最適な料金モデルは決められません。Azure Private Linkでは、Private Endpointの時間課金、受信・送信データ処理量、データ転送料金などが関係します。Azureの価格ページでも、データ処理料金はトラフィック方向に基づき、データ転送料金は別途適用されると説明されています。(Microsoft Azure)

判断時は、少なくとも次の情報を集めます。

確認項目理由
月間の受信・送信データ量Fixedが有利になるか判断する基礎になる
リージョンPrivate Linkの料金はリージョンで変わる可能性がある
契約形態EA、CSP、従量課金などで実料金が変わる可能性がある
通信パターン一時的なピークか、常時大量通信かで判断が変わる
接続先サービスStorage、SQL、独自Private Link Serviceなどで運用要件が違う

実装時に失敗しやすいポイント

今回の変更は小さく見えますが、API仕様変更としては見落としやすいポイントがあります。

billingSkuを必須項目として扱ってしまう

PR上ではbillingSku?: PrivateEndpointBillingSkuとして任意プロパティになっています。したがって、レスポンスに常に存在する、または作成時に必ず指定すべき、と決めつけるのは避けるべきです。(GitHub)

実装では、次のように存在しないケースを許容します。

const billingSku = privateEndpoint.properties?.billingSku ?? "未指定";

業務ロジック上で「未指定ならPayAsYouGoとみなす」処理を入れる場合も、仕様上の既定説明と実際の課金表示が一致するかを検証してからにしましょう。

enumを閉じた値として扱いすぎる

OpenAPI差分ではx-ms-enumにmodelAsString: trueが設定されています。これは、SDK生成やモデル化において文字列として扱える余地を持たせる設定です。(GitHub)

現時点で値はPayAsYouGoとFixedですが、将来値が追加される可能性を完全には否定できません。実装では、未知の値が来た場合にエラーで停止するのではなく、ログに記録して安全側に倒す設計が現実的です。

switch (billingSku)
{
    case "PayAsYouGo":
        // 通常の従量課金SKUとして扱う
        break;
    case "Fixed":
        // 固定SKUとして扱う
        break;
    default:
        // 将来追加された値に備えて、警告ログを出して処理を継続
        break;
}

APIバージョン変更と料金変更を混同する

billingSkuがAPIに追加されたことと、実際の課金がいつ・どの条件で変わるかは同じではありません。API仕様にプロパティが追加されると、管理・取得・作成時に扱える情報が増えますが、実料金はAzureの価格体系、契約、リージョン、サービス側の提供状況に依存します。

そのため、記事や社内資料では次のように分けて説明すると誤解を防げます。

観点説明
API仕様の変更properties.billingSkuが2025-07-01で追加された
運用上の確認REST API、SDK、IaC、スキーマ検証で影響を確認する
料金判断Azure料金ページ、料金計算ツール、契約条件で別途確認する

Azure REST API利用者向けの実務対応例

ここでは、立場別に具体的な対応例を整理します。

REST APIを直接使っている場合

REST APIを直接呼び出してPrivate Endpointを作成・更新している場合は、まずapi-versionを固定で管理しているか確認します。

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateEndpoints/{privateEndpointName}?api-version=2025-07-01

確認すべきことは、レスポンスにbillingSkuが含まれても処理が壊れないことです。特に、APIレスポンスを独自の型へ変換している場合、未知プロパティを許容する設定にしておくと安全です。

SDK利用者の場合

SDKを利用している場合、すぐにコードへbillingSkuが現れるとは限りません。Azure REST API仕様の更新後、各言語SDKへ反映されるまでにはタイミング差があります。

対応としては、次の順で確認します。

手順内容
1利用中SDKのバージョンを確認する
2Private EndpointモデルにbillingSku相当のプロパティが追加されているか確認する
3enumまたは文字列型の扱いを確認する
4既存テストでPrivate Endpointの作成・更新・取得を実行する
5生成コードや型定義の変更をレビューする

SDK更新後にコンパイルが通っても、運用上の棚卸しやコストレポートに反映されていなければ意味がありません。コード変更だけでなく、監査・運用側の確認項目にも入れると実用的です。

IaC利用者の場合

BicepやARMテンプレートでは、APIバージョンを上げると利用可能なプロパティが変わります。TerraformでAzAPIプロバイダーを使っている場合も、typeに含まれるAPIバージョンが影響します。

例として、AzAPIでは次のような形式でAPIバージョンを指定します。

type = "Microsoft.Network/privateEndpoints@2025-07-01"

このような定義に切り替える場合は、billingSkuを明示するかどうかを検討します。まだ料金・提供条件・社内ルールが固まっていない段階では、いきなり本番テンプレートにFixedを入れるより、検証環境でAPIレスポンスと差分を確認するほうが安全です。

コスト管理で見直したいポイント

billingSkuの追加は、FinOpsやクラウドコスト管理にも関係します。Private Endpointは、単体では小さなコストに見えても、サブスクリプションや環境が増えると数が膨らみやすいリソースです。

特に、次のような環境では棚卸しをおすすめします。

  • 開発・検証・本番でPrivate Endpointを大量に作っている
  • Storage、SQL、Key Vault、App Serviceなど複数サービスへPrivate Endpointを張っている
  • Hub-Spoke構成で接続元ネットワークが多い
  • 月間データ処理量が大きい
  • 部門別・プロジェクト別にコスト配賦している

棚卸しでは、Private Endpointの名前やタグだけでなく、次の項目を併せて見ると判断しやすくなります。

棚卸し項目目的
リソースグループ管理単位を把握する
接続先サービスどのサービス向けのPrivate Endpointか分ける
リージョン料金や設計制約の確認に使う
タグ部門・システム・環境別に配賦する
billingSku課金SKUの確認に使う
通信量PayAsYouGoとFixedの比較材料にする

今回の更新でやるべきこと

今回のAzure REST API documentation updateは、Private Endpointを使っているすべての環境で即時対応が必要な重大変更というより、2025-07-01 APIバージョンへ移行するチームが事前に確認すべき仕様追加です。

実務では、次の順で進めるのが現実的です。

優先度対応内容
高Private Endpoint操作で使っているAPIバージョンを確認する
高レスポンスにbillingSkuが追加されても処理が壊れないかテストする
中SDKやIaCのスキーマ差分を確認する
中コスト管理・棚卸しにbillingSkuを含めるか検討する
低〜中Fixedの利用可否や料金メリットを検証環境で確認する

まずは、自社のコード・IaC・SDKがMicrosoft.Network/privateEndpointsをどのAPIバージョンで扱っているかを確認してください。2025-07-01へ移行する予定があるなら、billingSkuを「未知の追加フィールド」として無視するのではなく、スキーマ検証、コスト管理、運用棚卸しの観点で扱い方を決めておくことが重要です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次