本記事は、AZ-104の勉強中につまずいたポイントを整理するシリーズの第1回です。
- 第1回:Azureネットワーク接続の違いを整理する(本記事)
- 第2回:Recovery Services コンテナーとBackup vaultの違いを整理する
- 第3回:Log Analytics workspaceとストレージアカウントの違いを整理する
- 第4回:Entra joined、registered、hybrid joinedの違いを整理する
- 第5回:ARMテンプレートの基本構造と読み方を整理する
今回は、Azureのネットワーク接続まわりで特に混同しやすい次の5つを整理します。
- VNet Peering
- VPN Gateway
- ExpressRoute
- Service Endpoint
- Private Endpoint
どれもネットワークをつなぐもの、安全にアクセスするためのものに見えますが、実際には使う場面が違います。
この記事では、AZ-104対策として「どの機能をどの場面で使うのか」に絞って整理します。
結論
最初にざっくりまとめると、次のようになります。
| やりたいこと | 使うもの |
|---|---|
| VNet同士をつなぎたい | VNet Peering |
| オンプレミスや端末からAzure VNetにつなぎたい | VPN Gateway |
| オンプレミスとAzureを専用線相当で接続したい | ExpressRoute |
| VNet / SubnetからAzure StorageなどのPaaSへのアクセスを制限したい | Service Endpoint |
| Azure StorageなどのPaaSにプライベートIPで接続したい | Private Endpoint |
まずはこの対応関係を押さえると、どの機能をどの場面で使うのかを整理しやすくなります。
前提:VNetとは
VNet、正式にはVirtual Networkは、Azure上に作る仮想ネットワークです。
Azure VMなどのリソースは、VNetの中に配置することでプライベートIPアドレスを使って通信できます。
Microsoftのドキュメントでも、Azure Virtual Networkは、Azureリソース同士、インターネット、オンプレミスネットワークと安全に通信するための基本的な構成要素とされています。(Microsoft Learn)
ただ、VNetを作っただけでは、別のVNetやオンプレミスネットワークと自由に通信できるわけではありません。
そこで登場するのが、VNet Peering、VPN Gateway、ExpressRouteなどのネットワーク接続サービスです。
VNet Peeringとは
VNet Peeringは、VNet同士を接続するための機能です。
VNet Peeringを使うと、異なるVNetにあるリソース同士がプライベートIPアドレスで通信できるようになります。
Microsoftのドキュメントでも、Virtual Network PeeringはAzureバックボーンネットワークを使って仮想ネットワーク同士を接続する機能として説明されています。(Microsoft Learn)
VNet Peeringを使う場面
VNet Peeringは、主にAzure上のVNet同士を接続したいときに使います。
たとえば、
- 検証用VNetと共有サービス用VNetを接続したい
- Hub-Spoke構成で、Hub VNetとSpoke VNetを接続したい
- 別リージョンのVNet同士を接続したい
といったケースです。
VNet Peeringで注意すること
VNet Peeringで特に注意したいのは、基本的に推移的な接続はできないという点です。
たとえば、次のような構成があるとします。
VNet-A <---- Peering ----> VNet-B <---- Peering ----> VNet-C
この場合、VNet-AとVNet-B、VNet-BとVNet-Cは接続されています。
しかし、VNet-AからVNet-Cに自動的に通信できるわけではありません。
VNet-AとVNet-Cを通信させたい場合は、基本的にはVNet-AとVNet-Cの間にもPeeringを作成する必要があります。
また、VNet同士のアドレス空間が重複している場合もPeeringできません。
AZ-104では、VNet Peeringは単に「VNet同士をつなぐもの」と覚えるだけでなく、以下も押さえておくとよいです。
- VNet同士をプライベートIPで接続する
- Azureバックボーンを利用する
- 同一リージョンでも異なるリージョンでも使える
- アドレス空間の重複は不可
- 基本的に推移的な通信はできない
VPN Gatewayとは
VPN Gatewayは、Azure VNetと外部ネットワークをVPN接続するための機能です。
代表的なのは、オンプレミスネットワークとAzure VNetを接続するケースです。
Microsoftのドキュメントでは、VPN Gatewayはオンプレミス環境から仮想ネットワークへの暗号化されたクロスプレミス接続や、VNet間の暗号化接続を作成・管理するためのサービスと説明されています。(Microsoft Learn)
VPN Gatewayを使う場面
VPN Gatewayは、主に以下のような場面で使います。
- オンプレミスネットワークとAzureを接続したい
- クライアント端末からAzure VNetにVPN接続したい
- VNet同士をVPNで接続したい
VPN Gatewayには、よく出てくる接続方式として以下があります。
| 種類 | 用途 |
|---|---|
| Site-to-Site VPN | オンプレミス拠点とAzure VNetを接続する |
| Point-to-Site VPN | クライアントPCなどからAzure VNetに接続する |
| VNet-to-VNet VPN | VNet同士をVPN接続する |
VPN Gatewayで注意すること
VPN Gatewayを使うには、VNet内にGatewaySubnetが必要です。
通常のサブネットとは別に、GatewaySubnetという名前の専用サブネットを作成します。
また、VPN GatewayはPeeringと違い、VPNトンネルを使った接続です。
そのため、オンプレミスとの接続やクライアントVPNのような用途に向いています。
AZ-104では、以下のように覚えるとよいです。
- オンプレミスとAzureをVPN接続するならVPN Gateway
- クライアントPCからAzureに入るならPoint-to-Site VPN
- 拠点間接続ならSite-to-Site VPN
- GatewaySubnetが必要
ExpressRouteとは
ExpressRouteは、オンプレミスネットワークとAzureを、接続プロバイダー経由のプライベート接続でつなぐためのサービスです。
VPN Gatewayはインターネット上にVPNトンネルを作ってAzure VNetに接続しますが、ExpressRouteはインターネットを経由せず、専用線相当の閉域接続でAzureに接続します。
Microsoftのドキュメントでも、ExpressRouteは接続プロバイダーを介してオンプレミスネットワークをMicrosoftクラウドに拡張するためのサービスとして説明されています。(Microsoft Learn)
ExpressRouteを使う場面
ExpressRouteは、主にオンプレミスネットワークとAzureを、より安定したプライベート接続でつなぎたいときに使います。
たとえば、
- オンプレミスネットワークとAzureを専用線相当で接続したい
- インターネット経由ではなく、プライベート接続でAzureに接続したい
- 本番環境で安定した帯域や低遅延が必要
- オンプレミスとAzure間で大量のデータをやり取りしたい
といったケースです。
ExpressRouteで注意すること
ExpressRouteで特に注意したいのは、VPN Gatewayの上位互換ではなく、接続方式が異なるサービスという点です。
VPN Gatewayはインターネット上に暗号化されたVPNトンネルを作って接続します。
一方で、ExpressRouteは接続プロバイダー経由のプライベート接続を使います。
そのため、ExpressRouteを利用するには、Azure側の設定だけでなく、接続プロバイダーとの契約や回線の準備が必要になります。
また、ExpressRouteは大規模な本番環境や安定した通信が必要な構成に向いていますが、その分、VPN Gatewayよりも構成やコストは重くなりやすいです。
AZ-104では、以下のように覚えるとよいです。
- オンプレミスとAzureを専用線相当で接続する
- インターネット経由ではなく、プライベート接続を使う
- 接続プロバイダー経由で接続する
- 安定した帯域や低遅延が必要な構成で使われやすい
- VPN Gatewayとは接続方式が異なる
VPN GatewayとExpressRouteの違い
VPN GatewayとExpressRouteは、どちらもオンプレミスネットワークとAzureを接続するときに使う機能なので混乱しやすいです。
違いは、接続にインターネットを使うか、専用線相当のプライベート接続を使うかです。
| 比較項目 | VPN Gateway | ExpressRoute |
|---|---|---|
| 主な用途 | オンプレミスとAzureをVPN接続する | オンプレミスとAzureを専用線相当で接続する |
| 通信経路 | インターネット上の暗号化VPNトンネル | 接続プロバイダー経由のプライベート接続 |
| 向いているケース | 小規模構成、検証環境、比較的簡単に接続したい場合 | 大規模構成、本番環境、安定した帯域や低遅延が必要な場合 |
| 構成のしやすさ | 比較的始めやすい | 接続プロバイダーとの契約や回線準備が必要 |
| コスト | 比較的始めやすい | 構成や回線契約によって大きくなりやすい |
| AZ-104での覚え方 | インターネットVPNでオンプレミス接続 | 専用線相当でオンプレミス接続 |
ざっくり言うと、
- VPN Gateway:インターネットVPNでオンプレミスとAzureを接続する
- ExpressRoute:専用線相当のプライベート接続でオンプレミスとAzureを接続する
という違いです。
Service Endpointとは
Service Endpointは、VNetからAzure StorageやAzure SQL DatabaseなどのAzure PaaSサービスへ安全にアクセスするための機能です。
ここで重要なのは、Service EndpointはVNet同士をつなぐ機能ではないということです。
Service Endpointは、以下のようなイメージです。
VNet / Subnet ---- Service Endpoint ----> Azure StorageなどのAzureサービス
Microsoftのドキュメントでは、Virtual Network Service Endpointsは、重要なAzureサービスリソースを仮想ネットワークのみにセキュリティ保護するための機能として説明されています。(Microsoft Learn)
Service Endpointを使う場面
たとえば、Azure Storage Accountに対して、
「このサブネットからのアクセスだけ許可したい」
という場合にService Endpointを使います。
Service Endpointを有効にすると、Azureサービス側のファイアウォールで特定のVNetやサブネットからのアクセスを許可できるようになります。
Service Endpointで注意すること
Service Endpointで混乱しやすいのは、AzureサービスにプライベートIPを割り当てるわけではないという点です。
Service Endpointを使っても、接続先のAzureサービス自体にVNet内のプライベートIPが割り当てられるわけではありません。
そのため、Private Endpointとは異なり、名前解決先がVNet内のプライベートIPになる構成ではありません。
あくまでも、VNetからAzureサービスへのアクセス経路を最適化し、サービス側でVNet/Subnetベースのアクセス制御をできるようにする仕組みです。
AZ-104では、以下のように覚えるとよいです。
- VNetからAzure PaaSサービスへのアクセス制御に使う
- サブネット単位で有効化する
- サービス側のファイアウォールでVNet/Subnetを許可できる
- PaaSサービスにプライベートIPを付ける機能ではない
Private Endpointとは
Private Endpointは、Azure StorageやAzure SQL DatabaseなどのAzure PaaSサービスに、VNet内のプライベートIPで接続するための機能です。
イメージとしては、Azureサービスに対してVNet内のネットワークインターフェイスを作成するようなものです。
VNet内のVM ---- プライベートIP ----> Private Endpoint ----> Azure Storageなど
Microsoftのドキュメントでは、Private EndpointはAzure Private Linkを利用し、仮想ネットワークからサービスへプライベートかつ安全に接続するためのネットワークインターフェイスと説明されています。(Microsoft Learn)
Private Endpointを使う場面
Private Endpointは、Azure PaaSサービスに対してより閉じた構成でアクセスしたいときに使います。
たとえば、
- Storage AccountへプライベートIPでアクセスしたい
- Azure SQL Databaseへのアクセスをパブリック経路ではなくプライベート経路に寄せたい
- PaaSサービスへのアクセスをVNet内に閉じたい
といったケースです。
Private Endpointで注意すること
Private Endpointでは、DNSの理解が重要になります。
Private Endpointを作ると対象サービスへプライベートIPでアクセスする構成になりますが、名前解決が正しくできないと意図したプライベート経路で通信できません。
AZ-104では、Private Endpointについて以下を押さえておくとよいです。
- Azure PaaSサービスへプライベートIPで接続する
- VNet内にネットワークインターフェイスが作られるイメージ
- パブリックアクセスを無効化したい構成で使う
- DNS設定が重要
- Service Endpointよりもプライベートな接続に向いている
Service EndpointとPrivate Endpointの違い
Service EndpointとPrivate Endpointは、どちらもAzure PaaSサービスへのアクセスを安全にするための機能です。
ただし、考え方が違います。
| 比較項目 | Service Endpoint | Private Endpoint |
|---|---|---|
| 主な目的 | Azureサービスへのアクセス元をVNet/Subnetで制御する | AzureサービスへプライベートIPで接続する |
| 接続先 | Azureサービスのパブリックエンドポイント | VNet内のプライベートIP |
| プライベートIP | Azureサービスには付かない | Private EndpointにプライベートIPが付く |
| 設定単位 | サブネット単位で有効化 | Private Endpointリソースを作成 |
| DNSの重要度 | 比較的低い | 高い |
| 覚え方 | VNetからのアクセスを許可する仕組み | AzureサービスをVNet内のIPで使う仕組み |
ざっくり言うと、
- Service Endpoint:Azureサービス側で「このVNet/Subnetからのアクセスを許可する」
- Private Endpoint:Azureサービスに「VNet内のプライベートIPでアクセスする」
という違いです。
また、MicrosoftのService Endpointのドキュメントでは、Azureプラットフォーム上のサービスへ安全でプライベートなアクセスを行うには、Azure Private LinkとPrivate Endpointの利用が推奨される旨も記載されています。(Microsoft Learn)
まとめ
Azureのネットワーク接続まわりは、似たような用語が多くて混乱しやすいです。
今回整理した内容を一言でまとめると、以下のようになります。
| やりたいこと | 選ぶもの |
|---|---|
| VNet同士を接続したい | VNet Peering |
| オンプレミスや端末からAzure VNetに接続したい | VPN Gateway |
| オンプレミスとAzureを専用線相当で接続したい | ExpressRoute |
| Azureサービスへのアクセス元をVNet/Subnetで制限したい | Service Endpoint |
| AzureサービスへプライベートIPで接続したい | Private Endpoint |
AZ-104の勉強では、それぞれの細かい設定値を暗記するよりも、まずは 「何と何を接続するための機能なのか」 を押さえるのが大事だと思いました。
特に、VNet PeeringはAzure内のVNet間接続、VPN GatewayとExpressRouteはオンプレミスとAzureの接続として分けて考えると、選択肢を整理しやすくなります。
この整理ができると、ネットワーク系の問題で選択肢をかなり絞りやすくなります。
この記事がAZ-104を勉強している方の整理に役立てば嬉しいです。