Azure研究サイト

Azure研究サイト

~理解しずらい情報をシンプルにお伝えします~

Vnet統合・サービスエンドポイント・プライベートエンドポイントを理解する

Vnet統合とは

AppService/Functions/LogicApps等のネットワーク設定のVnet統合とは、どういう機能なのか皆さん説明できますでしょうか?「当然、AppService/Functions等をVnet内に配置できるようになる機能でしょう!」と思ってる方いませんか?それは違います。正しくは、「AppService/Functions等がVnet(仮想ネットワーク)にアクセスできるようになる機能」というのが正しいです。どういうことかというと、AppServiceはマルチテナント向けサービスで、仮想ネットワークは非マルチテナント向けサービスです。これらは本来通信し合えないサービス同士なんです。それを、通信できるようになるというのがAppService/Functions等のVnet統合という機能なんです。
 
 
公式ドキュメントでは以下のように説明されていますが、私はわかりづらいと思いました。

docs.microsoft.com

===== 抜粋 ここから =====
Azure仮想ネットワーク(VNet)では、インターネットでルーティングできないネットワークに、多くの Azure リソースを配置できます。 AppServiceのVNet統合機能を使用すると、アプリは仮想ネットワーク内のリソースにアクセスしたり、仮想ネットワークを通じてリソースにアクセスしたりできます。 仮想ネットワーク統合では、アプリにプライベートでアクセスすることはできません。
===== 抜粋 ここまで =====

サービスエンドポイントとプライベートエンドポイントの違い

  • [サービスエンドポイント]: グローバルIPを使用して、インターネットを経由して通信されます。※ Resolve-DnsNameコマンドでドメイン解決すると、グローバルIPが返ってくることが確認できます。

  • [プライベートエンドポイント]: プライベートIPを使用して、インターネットを経由して通信されます。※ Resolve-DnsNameコマンドでドメイン解決すると、プライベートIPが返ってくることが確認できます。

 
サービスエンドポイントもプライベートエンドポイントも、Azure 環境上に「Azure 仮想ネットワーク」というリソースを一つ作成して、その仮想ネットワーク上にAppService/FunctionsやStorageAccountなどを接続させると、仮想ネットワークに属しているリソース同士の通信のみ許可させる構成を作れる。という意味では、どちらも同じような通信はできます。また、最初にイメージ・理解しておくべきことは、AppService -> StorageAccountの通信をセキュアにしたければStorageAccount側の設定でプライベートエンドポイント等を設定する必要があります。AppService -> SQLDatabaseの通信をセキュアにしたければSQLDatabase側の設定でプライベートエンドポイント等を設定する必要があります。更に、AppServiceのネットワーク設定からVnet統合をする必要があります。
 

全プロダクトでサービスエンドポイントとプライベートエンドポイントを作れるわけではない

この公式ドキュメントでサポートしているプロダクトの一覧が書かれています。

docs.microsoft.com

エンドポイントに関連するアプリケーション設定

  • [WEBSITE_DNS_SERVER]: WEBSITE_DNS_SERVER (値 168.63.129.16)
  • [WEBSITE_VNET_ROUTE_ALL]: 値:1を設定していない場合、AppServiceから送られる通信はインターネットを介するパブリック通信になります。値:1を設定した場合、全ての通信がVnetに向けて送信されます。
     
     
    以上です。
     
ご意見・ご要望はこちらへ 


/*--------------------------------------------------------------------*/