Azure Private Linkを設定しようとしたとき、「Private EndpointとService Endpointの違いがよくわからない」「DNS設定を間違えてPaaSサービスに繋がらない」と詰まった経験のある方は多いはずです。オンプレではファイアウォールとDMZで通信を制御するのが当たり前でしたが、AzureのストレージやKey VaultへのアクセスはデフォルトでパブリックIPを経由します。これを「VNet内だけに閉じる」のがAzure Private Linkの役割です。
この記事では、Azure Private Linkとプライベートエンドポイントの仕組みをオンプレのネットワーク設計と比べながら解説します。設定手順・DNS・料金・よくあるトラブルまで現場で使える情報をまとめました。
なぜAzure Private Linkが必要なのか?
AzureのPaaSサービス(Storage Account、Azure SQL Database、Key Vaultなど)は、デフォルトでパブリックIPアドレスが割り当てられています。VNet内のVMからアクセスする場合でも、通信は一度インターネット側に出てからMicrosoftのネットワークを経由して戻ってきます。
オンプレの感覚だと「内部サーバーから外部サービスへの通信がインターネットを経由する」というのは、セキュリティ的にかなり気持ち悪い設計です。Azure Private Linkを使うと、PaaSサービスへの通信がMicrosoftのバックボーンネットワーク内に完結し、インターネットに一切出なくなります。
オンプレに例えるなら、「外部のSaaSサービスを専用線(MPLS/SD-WAN)で繋いで、インターネットバックボーンを使わずにアクセスできるようにした」状態に近いイメージです。
Service EndpointとPrivate Endpointの違い
ここが一番混乱しやすいポイントです。どちらも「VNetとPaaSをセキュアに繋ぐ」ために使いますが、根本的な仕組みが違います。
| 比較項目 | Service Endpoint | Private Endpoint(Private Link) |
|---|---|---|
| PaaSのIPアドレス | パブリックIPのまま | VNet内のプライベートIPに変わる |
| 通信経路 | Microsoftバックボーン経由(インターネット不使用) | VNet内で完結(プライベートIPで直接通信) |
| オンプレからのアクセス | ExpressRoute/VPN越しには使えない | ExpressRoute/VPN越しでも到達可 |
| DNS設定 | 不要 | Private DNS Zoneの設定が必須 |
| 料金 | 無料 | 有料(後述) |
Service Endpointは「パブリックIPを使いながらも、通信経路をMicrosoftバックボーン内に限定する」ものです。PaaSサービスのIPはあくまでパブリックIPのままなので、オンプレからExpressRouteや拠点間VPNで接続している環境では利用できません。
一方、Private Endpointは「VNet内のプライベートIPアドレスとしてPaaSサービスを見せる」ものです。オンプレからExpressRoute/VPN経由で繋がった環境でも、プライベートIPでAzure Storage等にアクセスできます。セキュリティ要件が厳しい本番環境では、Private Endpointが実質的なスタンダードになっています。
Azure Private Linkの基本設定手順
ここではStorage Account(Blobストレージ)へのPrivate Endpoint設定を例に手順を説明します。
1. Storage AccountのパブリックアクセスをOFFにする
Private Endpointを設定する前に、まずストレージアカウントのパブリックネットワークアクセスを無効化します。
# Azure CLI: ストレージアカウントのパブリックアクセスを無効化 az storage account update \ --name <ストレージアカウント名> \ --resource-group <リソースグループ名> \ --public-network-access Disabled
Azureポータルから行う場合は、ストレージアカウント → [ネットワーク] → [パブリックネットワークアクセス] を「無効」に変更します。
2. Private Endpointを作成する
# Azure CLI: Private Endpointを作成する az network private-endpoint create \ --name myStoragePrivateEndpoint \ --resource-group <リソースグループ名> \ --vnet-name <VNet名> \ --subnet <サブネット名> \ --private-connection-resource-id \ $(az storage account show \ --name <ストレージアカウント名> \ --resource-group <リソースグループ名> \ --query id -o tsv) \ --group-id blob \ --connection-name myStorageBlobConnection
ポータルから作成する場合は、ストレージアカウント → [ネットワーク] → [プライベートエンドポイント接続] → [+ プライベートエンドポイント] から設定します。サブリソース(group-id)は、Blob・Queue・Table・Fileなど接続対象のサービスに応じて選択します。
3. Private DNS Zoneを設定する(最重要)
Private Endpointを作成しても、DNS設定を行わないと通信が繋がりません。クライアントが mystorageaccount.blob.core.windows.net を引いたとき、パブリックIPではなくVNet内のプライベートIPに解決される必要があります。
# Azure CLI: Private DNS Zoneを作成してVNetにリンク az network private-dns zone create \ --resource-group <リソースグループ名> \ --name "privatelink.blob.core.windows.net" az network private-dns link vnet create \ --resource-group <リソースグループ名> \ --zone-name "privatelink.blob.core.windows.net" \ --name myStorageDnsLink \ --virtual-network <VNet名> \ --registration-enabled false # Private EndpointとDNS Zoneを関連付け az network private-endpoint dns-zone-group create \ --resource-group <リソースグループ名> \ --endpoint-name myStoragePrivateEndpoint \ --name myZoneGroup \ --private-dns-zone "privatelink.blob.core.windows.net" \ --zone-name blob
ポータルからPrivate Endpoint作成ウィザードを使う場合、「プライベートDNS統合」のステップでPrivate DNS Zoneを自動作成・関連付けできます。手動設定より確実なので、初回はポータルウィザードを使うのがおすすめです。
主なサービスとDNS Zone名の対応表は次のとおりです(2026年3月時点)。
| PaaSサービス | サブリソース(group-id) | Private DNS Zone名 |
|---|---|---|
| Azure Blob Storage | blob | privatelink.blob.core.windows.net |
| Azure Files | file | privatelink.file.core.windows.net |
| Azure SQL Database | sqlServer | privatelink.database.windows.net |
| Azure Key Vault | vault | privatelink.vaultcore.azure.net |
| Azure Container Registry | registry | privatelink.azurecr.io |
料金の仕組み
Private Endpointの料金は、「エンドポイント維持費」と「データ処理料金」の2本立てです(2026年3月時点、東日本リージョン)。
・エンドポイント維持費: 約$0.011/時間(月額約$8程度)
・データ処理料金: $0.011/GB(送受信合計)
1つのPrivate EndpointはVNet内の1つのNICとして機能します。複数のVNetや拠点からアクセスする場合、それぞれにPrivate Endpointを作成するか、VNetピアリングやExpressRoute経由でアクセスする設計を検討する必要があります。
Service Endpointは無料なので、「オンプレ拠点からのアクセスが不要で、同じVNet内のVMだけが使うケース」ならService Endpointのほうがコスト面では有利です。ただし、セキュリティ要件やオンプレ接続の必要性が後から出てきた場合、最初からPrivate Endpointで設計しておいたほうが改修コストを抑えられます。
応用・実務Tips
【重要】ハブ&スポークネットワーク設計でのPrivate Endpoint集約
大規模なAzure環境では、ハブVNetにPrivate Endpointを集約し、スポークVNetからはVNetピアリング経由でアクセスする設計が一般的です。この場合、Private DNS Zoneはハブ側のVNetにリンクしておき、スポークVNetからもDNS解決が通るよう設定します。
注意点として、Private DNS ZoneはVNetごとにリンクが必要です。スポークVNetを追加するたびにDNS Zoneへのリンクも追加する運用フローをあらかじめ決めておきましょう。
NSGでPrivate Endpointサブネットを保護する
2021年のAzureアップデート以降、Private Endpointが配置されたサブネットにNSG(ネットワークセキュリティグループ)を適用できるようになりました。Private Endpointのサブネットに対してアクセス元CIDRを絞るNSGルールを設定することで、VNet内でもきめ細かいアクセス制御が可能です。
オンプレからExpressRoute/VPN経由でアクセスする場合
オンプレのDNSサーバーが blob.core.windows.net のクエリをAzureのPrivate DNS Zoneに転送できるよう、Azure DNS Private Resolver(またはDNS転送ルール)の設定が必要です。オンプレ側のDNSサーバーからAzureのDNSフォワーダーIPへ条件付き転送を設定するパターンがシンプルで管理しやすいです。
よくあるトラブルと対処法
症状1: Private EndpointのIPがパブリックIPに解決される
DNSの設定が正しく反映されていない状態です。VNet内のVMから nslookup mystorageaccount.blob.core.windows.net を実行して、プライベートIP(例: 10.0.x.x)に解決されているか確認します。パブリックIPが返ってくる場合は以下を確認してください。
・Private DNS ZoneがVNetに正しくリンクされているか確認する
・Private EndpointのDNS Zone Groupが作成されているか確認する
・VMがカスタムDNSサーバーを使っている場合、そのDNSがAzure DNSにフォワードしているか確認する
症状2: ネットワーク疎通チェックでエラーになる
Private Endpointのプロビジョニング状態が「Succeeded」になっていても、接続元のVMのNSGやルートテーブルがPrivate Endpointのプライベートアドレスへの通信をブロックしている場合があります。Network Watcherの「IP フロー確認」ツールを使って、NSGルールがブロックしていないか確認するのが早道です。
症状3: ストレージのパブリックアクセスを無効化したら既存の処理が止まった
パブリックアクセスを無効化する前に、既存のアプリケーションやバッチ処理が使っているIPアドレスを事前に把握しておく必要があります。オンプレのバッチサーバーや別のAzureリージョンのVMからアクセスしている処理がある場合、Private Endpointの設計に含めるか、「信頼されたサービス」設定で対応します。パブリックアクセス無効化は必ずステージング環境で先行検証してから本番に適用してください。
本記事のまとめ
| 確認ポイント | 内容 |
|---|---|
| Private LinkとService Endpointの違い | Private EndpointはVNet内プライベートIPでPaaSに接続。オンプレからも到達可能 |
| 設定の肝はDNS | Private DNS ZoneをVNetにリンクし、PaaSのFQDNがプライベートIPに解決されるよう設定する |
| 料金 | 維持費約$8/月+データ処理$0.011/GB(2026年3月時点)。Service Endpointは無料 |
| 本番推奨構成 | セキュリティ要件が厳しい環境・オンプレ連携があればPrivate Endpointを選択 |
| ハブ&スポーク設計 | ハブVNetにPrivate Endpointを集約しDNS ZoneをリンクするとスポークVNetからも到達可 |
Azure Private Linkは、オンプレのファイアウォール・DMZ設計の感覚をクラウドに持ち込んだような仕組みです。「PaaSをパブリックに晒したくない」という当然の要件に応える機能ですが、DNS設定をミスすると繋がらないトラブルが頻発します。最初はポータルウィザードで設定し、設定後すぐにVMから nslookup で名前解決を確認する習慣をつけておくと、現場でのトラブルシューティングが格段に楽になります。
Linuxサーバーの基礎については、姉妹サイトLinuxMaster.JPで詳しく解説しています。
Azure Private Linkの設計、どこから手をつければいい?
ネットワーク設計からDNS・運用まで、現場で使えるAzureの知識を体系的に学びたい方へ。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。
