Azure Managed Service Column <Azure運用コラム>

Azure Virtual Network とは

Category: 入門編

2021.04.02

はじめに

ネットワークを構築する際に便利なのが、クラウドサービスを利用しての仮想ネットワークの構築です。ここでは、クラウドプロバイダの一つ、Microsoft Azureが提供する仮想ネットワークサービス「Azure Virtual Network(VNet)」の概要や通信方法、セキュリティ、注意点などについて解説していきます。

クラウドプロバイダが提供するネットワークサービスとは

従来、ネットワークを構築する際には、設計を行い、それに合わせて物理的なネットワーク機器を購入し、設置・配線することになります。そのため、構成するネットワーク機器に関する高度な知識と物理的な運用管理が必要でした。

しかし、近年ではクラウドを利用してネットワークを構築する方法もあります。

クラウドプロバイダが提供するネットワークサービスとは、広帯域の物理ネットワークを論理的に分割し、共有ネットワークとして提供するものです。回線と物理的なネットワーク機器をソフトウェア定義ネットワーク(SDN)で仮想化し、ユーザーが高い自由度で簡単にネットワークを構成できるようにします。

Azureも上記のクラウドプロバイダの例に漏れず、共有ネットワークサービスを提供しています。Azureを利用すれば、ユーザーは物理的なネットワークを気にせずに、GUI画面やCLI(コマンドライン)から簡単に使用したいネットワークを構成できます。

Azure VNetとは

Azure VNet(Azure Virtual Network)とは、Azure内に他ネットワークと論理的に分離されたプライベートなネットワークを構築できるサービスです。各種Azureサービスやオンプレミスサーバーと接続するために必要となります。

作成したVNet上にVM(Virtual Machine:仮想マシン)や一部のPaaSをデプロイすることができ、VNet内でリソース間の相互通信ができます。

それぞれのVNetは独立しており、デフォルトではほかのネットワークから接続することはできません。Vnet間を接続する必要がある場合は、VPN接続やピアリングといった方法をとります。

アドレス空間とサブネット

VNetには1つ以上のアドレス空間を割り当て、それぞれのアドレス空間には1つ以上のサブネット(VNetをさらに細かく分割したもの)を配置します。サブネット内にAzureリソースをデプロイすると、サブネットに紐づくプライベートIPアドレスが割り当てられ、仮想ネットワークへ接続できるようになります。

Azure VNetとは
Azure VNetとは)

なお、VMについてはプライベートIPアドレスのほか、外部からの通信を受け付けられるパブリックIPアドレスを紐づけることも可能です。プライベートIPアドレスはサブネット内のレンジから自動的に、パブリックIPアドレスはリージョン内のレンジからオプションの設定によって、割り当てられます。

VNetのアドレス空間はあとからでも拡張が可能ですが、サブネットのアドレス範囲は変更できません。特に大規模システムの構築時には、アドレス空間を適切に設定するよう注意しましょう。アドレス範囲が足りなくなった場合は、新たにサブネットを作成し、すべてのリソースを移動させる必要が出てきます。

VNetに配置できるリソースの種類

VNetを作っただけでは、IPアドレス空間を確保した状態に過ぎません。他のリソースと相互通信をするには、仮想ネットワークに内にVMなどのリソースをデプロイし、それが接続するサブネットを指定する必要があります。

なお、VNetにデプロイできるAzureリソースの種類は以下のとおりです。

(※出典:https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-for-azure-services

仮想ネットワークサービスエンドポイント

仮想ネットワークに直接デプロイできないサービスを、Azureサービスに安全に接続できるサービスです。サービスのエンドポイント(外部公開URL)に対するパブリックインターネットアクセスを排除し、VNetからのアクセスのみを許可することでセキュリティを強化します。

VNetからAzureバックボーンネットワークを介して、Azureサービスへ直接接続する仕組みのため、ユーザー側は複雑なルーティングを考慮する必要がありません。また、AzureのAzure SQL DatabaseやAzure Storageといった一部のAzure PaaSサービスでは、特定のVNetからのアクセスのみ受け付ける設定もできます。ただし、VNetと接続するPaaSは同一リージョンにある必要があります。

ルーティング

ルーティングとは、データを通信先まで送信する際の最適な配達経路を決めることです。VNetではユーザー定義のルートで、Azure既定のシステムルートの上書き・サブネットのルートテーブルへのルート追加ができます。

例えば、VNetからインターネットに出ていくパケットを常にオンプレミス経由で出したり、セキュリティアプライアンスを経由させたりするなどの方法で、セキュリティを担保することができます。

名前解決

名前解決とは、ドメイン名に対応するIPアドレスをDNSサーバーから教えてもらうことです。これが解決できなければ、目的のサーバーにアクセスができません。VNet内のVMとその他のリソースが相互に通信する際は、IPアドレスを使用するよりドメイン名を使うほうが便利です。

VNet内で名前解決をする方法としては、以下の3つがあります。リソース間の通信に必要な要件に応じて選択するとよいでしょう。

1.Azure DNS プライベートゾーンを使用する(推奨)

VNet内およびVNet間の名前解決ができます。パブリックDNSゾーンとプライベートDNSゾーンで名前の共有が可能であり、独自のカスタムドメインも使用できます。

2.Azureで提供される名前解決を使用する

基本的なDNS機能のみ提供されます。DNSゾーン名とレコードはAzureによって自動的に管理される仕組みで、ゾーン名やレコードのライフサイクルを制御できません。

3.ユーザー独自のDNSサーバーを使用する

名前解決のニーズが Azureで提供される機能の範囲を超える場合、ユーザー独自のDNSサーバーの使用も可能です。

外部のネットワークとの通信方法

ここでは、VNet外部のネットワークとの通信方法について見ていきましょう。

インターネットとの通信

インターネットからの接続が必要な場合は、VNet内のリソースにパブリックIPアドレスを設定するか、もしくはパブリックロードバランサーを介して接続することになります。

VNetとインターネットとの通信
VNetとインターネットとの通信

ただし、セキュリティの観点から、インターネットに公開するサービスが稼働する VM でない限り、基本的にパブリックIPアドレスは設定しないと考えておくとよいでしょう。

VNetとクライアントコンピュータとの通信(P2S VPN)

VNetとクライアントコンピュータとの通信を行う場合は、P2S VPN接続(ポイント対サイトVPN接続)で端末とVNetを接続します。端末上のVPNクライアントから、VPN内のVPN GatewayへVPN接続を要求することで通信ができます。

VNetとクライアントコンピュータとの通信(P2S VPN)
VNetとクライアントコンピュータとの通信(P2S VPN)

オンプレミスとの通信

VNetとオンプレミスを接続する際には、以下の2種類の方法があります。

1. S2S VPN接続

オンプレミス環境とVNetをサイト間VPN接続します。仮想ネットワーク上のローカルネットワークゲートウェイにオンプレミスのグローバルIPアドレスとアドレス空間を指定して接続します。

VNetとオンプレミス(S2S VPN接続)
VNetとオンプレミス(S2S VPN接続)

利用にあたっては、オンプレミス側でグローバルIPアドレスとVPNデバイスが必要です。なお、ローカルネットワークゲートウェイの更新は手動で行います。

2. ExpressRouteを介した接続

ExpressRouteは、通信キャリアが提供する閉域網または専用線を介した接続を行います。インターネット回線を利用しないため、高いセキュリティと安定した通信品質を担保できます。

ExpressRouteを介した接続
ExpressRouteを介した接続

VNet間の通信方法

VNet間で他のAzureリソースと接続する方法を4つ紹介します。

1. S2S VPN接続

VNet間をVPN接続する方法です。オンプレミスとVNet間のS2S VPN接続と同様、仮想ネットワーク上のローカルネットワークゲートウェイに対してもう一方のVPN GatewayのグローバルIPアドレスとVNet内のアドレス空間を指定して接続します。
接続先の情報は静的に設定するため、アドレス空間に変更があった場合はローカルネットワークゲートウェイを手動で更新する必要があります。

VNet間の通信方法(S2S VPN)
VNet間の通信方法(S2S VPN)

2. V2V接続

VNet対VNet接続の略称で、VNet間をVPN Gatewayを介して接続する方法です。自動的にローカルネットワークゲートウェイができる点や、片方のアドレス空間が変更されても他方でルーティング情報を自動更新する点、同一リージョン内であればデータ転送料がかからない点がS2S VPN接続と異なります。

VNet間の通信方法(V2V VPN)
VNet間の通信方法(V2V VPN)

3. VNet Peering

VPN Gatewayを使用せずに同一リージョン内のVNetを接続する方法です。この方法で接続したVNet同士は、Azureデータセンターを結ぶMicrosoftバックボーンを介して一つのネットワークのように機能します(一方の仮想ネットワーク内のリソースが、ピアリングされているもう一方の仮想ネットワーク内のリソースに直接接続できるようになります。従ってピアリングするVNet間でサブネットの重複があってはいけません。)。

VNet間の通信方法(VNet Peering)
VNet間の通信方法(VNet Peering)

VNet Peeringではインターネット通信や暗号化が不要で、高速な通信ができるというメリットがあります。
また、ピアリング作成時や作成後にダウンタイムが発生しない点や、ピアリングするVNetのどちらかにVPN Gatewayがあれば、リモートゲートウェイ転送を有効化することで、トラフィックの転送を行うこともできます。

4. Global VNet Peering

データセンターのリージョンが異なるVNet同士を接続する方法です。VPN Gatewayを使用せずに相互通信できますが、ピアリング先との通信に限定されており、リモートゲートウェイ転送の設定ができない点は前述のVNet Peeringと異なります。

VNet間の通信方法(Global VNet Peering)
VNet間の通信方法(Global VNet Peering)

Azureのバックボーンネットワークを利用して接続しVPNゲートウェイも使わないため、通信速度はV2V接続よりも高速です。

PaaSとの通信方法

VNetと一部のPaaSとの接続方法を2つ紹介します。

1. VNet サービスエンドポイント

先に説明した仮想ネットワーク(VNet)サービスエンドポイントを活用すれば、VNetとPaaSを接続できます。エンドポイントを使用することで、インターネットからPaaSへのアクセスを排除し、VNetからのアクセスに限定することが可能です。

PaaSとの通信方法(Vnetサービスエンドポイント)
PaaSとの通信方法(Vnetサービスエンドポイント)
(図版出典:https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoints-overview

VNetサービスエンドポイントで接続できるPaaSは公式サイトをご参照ください

2. Azure App Service のVNet統合

PaaSであるAzure App Serviceを使ってアプリケーションを構築する際、VNet内にあるVM(例えば、Active Directoryサーバーなど)にアクセスしたい場合、デフォルトではVNet内へアクセスできません。そのようなときに使えるのがVNet統合の設定です。

仮想ネットワーク内に統合用サブネットを用意し、そのサブネットを経由することで、同じ仮想ネットワーク上にある他のサブネットと通信できるようになります。

PaaSとの通信方法(Azure App Service のVNet統合)
PaaSとの通信方法(Azure App Service のVNet統合)

セキュリティ

ここではVNetのセキュリティ機能について確認していきましょう。

ネットワークセキュリティグループ

ネットワークセキュリティグループ(NSG)とは、Vnet上の仮想のファイアウォール機能です。具体的には以下のような項目にルールを設定することで、VNet内のAzureリソースへのアクセスを制御します。

  • プロトコル
  • 送信元ポート
  • 宛先ポート
  • 送信元IPアドレス
  • 宛先IPアドレス
  • トラフィックの方向
  • 優先順位
  • トラフィックの許可または拒否

Azure DDoS Protection

DDoS攻撃※を常時監視し、攻撃があった場合には自動軽減する保護サービスです。Basic(無償)とStandard(有償)があり、BasicはすべてのAzureプロパティに適用されています。

一方、StandardはBasicの機能に加え、VNetリソースに対してチューニングされた追加の軽減機能や、専用のトラフィック監視と機械学習アルゴリズムによりチューニングされた保護ポリシーなどの機能が提供されます。

※DDoS攻撃:リソースを使い果たし正常なユーザーがアプリケーションを利用できないようにするサイバー攻撃

VNet構築上の注意点

VNetを構築する際に、気をつけるべき点について確認していきましょう。

VNetは基本的に複数のリージョンにまたがって使用できない

IaaSを利用してシステム構築する際は、可用性を高めるために複数のリージョンをまたいだネットワーク設計をする場合があります。しかし、VNetは基本的に複数のリージョンをまたいだ利用ができません。

異なるリージョンのリソースを同じネットワーク上にあるかのように扱いたい場合は、Global VNet PeeringやV2V接続を行うことが必要です。

はじめに、同一リージョン内と異なるリージョン間のどちらの可用性を重視するのか、ネットワーク設計ポリシーを明確にしておくとよいでしょう。

VNetデプロイモデルにより、ネットワーク数の制限や、IPアドレスの指定方法が違う

VNetのデプロイには「クラシックデプロイモデル(Azure仮想マシンV1)」「Azure Resource Manager(Azure仮想マシンV2)」の2つのモデルがあります。それぞれのモデルでは仮想ネットワーク数・サブネットの規定数・上限数が異なるため、ご注意ください。

また、それぞれのモデルでは、パブリックIPアドレスとプライベートIPアドレスの割り当て方法も異なります。モデルの併用は可能であるものの、接続が複雑になるため、VNetの構築・運用時には注意が必要です。

Azure VNetの料金

Azure VNet自体は無料で利用でき、サブスクリプションごとに最大50のVNetをすべてのリージョンで作成できます。ただし、VNet内で使用するVMに割り当てるパブリックIPアドレスやVPN Gatewayなどには、以下のような利用料金が発生します。

  • パブリックIPアドレス:動的IPアドレスはBasicで1時間当たり0.448円、静的IPアドレスはBasicで1時間当たり0.4032円、Standardで0.56円など
  • VPN Gateway:Basic(帯域幅100Mbps)で1時間当たり4.04円、VpnGw2(帯域幅1Gbps)で1時間当たり54.88円など
  • VNet Peering:受信データ転送・送信データ転送とも1GBにつき1.12円
  • Global VNet Peering:受信データ転送・送信データ転送とも、ゾーン1で1GBにつき3.920円、ゾーン3で1GBにつき17.92円など

なお、利用料金は月ごとの請求となります。料金の詳細について知りたい方は、こちらの公式ページをご確認ください。

おわりに

VNet内にVM等のリソースを配置すると、他のAzureリソースやオンプレミスとの安全な通信が可能になります。通常、VNet間は分離しており、デフォルトでは他のネットワークからの接続はできません。そのため、VNet間での通信には、VPN接続やピアリングといった方法をとります。

仮想ファイアウォール機能の「ネットワークセキュリティグループ」や、DDoS攻撃を常時監視する保護サービス「Azure DDoS Protection」といったセキュリティ機能を適切に使うと、仮想ネットワークをより安全に利用できるでしょう

VNetは、基本的に複数のリージョンにまたがっての設定はできませんが、VNetを活用することにより、さまざまなネットワーク構成を実現することができます。VNet内で使用するVMなどのリソースにはそれぞれ利用料金が発生しますが、VNet自体は無料で利用可能ですので、システムを構築する際には、VNetを有効に使った設計をしてみてください。

Azureの構築を任せたい

Azure構築サービス

Azure構築サービス

Microsoft Azureを利用したシステム構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Tag: Azure VNet Virtual Network

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php