🕌

App ServiceのVNET統合を設定する

2024/04/20に公開

AppServiceのVNET統合とは

通常AppServiceのようなPaaSサービスは仮想ネットワークを使わず、パブリックIPを使用します。
VNET統合を行うことで、AppServiceからの通信(送信方向)を仮想ネットワークを介して行うことができるようになります。
※AppServiceへの通信(受信方向)はプライベートリンクサービスを使用します。
これにより、AppServiceをパブリックに公開せず、仮想ネットワークに閉じた環境で使用することも可能になります。
https://learn.microsoft.com/ja-jp/azure/app-service/overview-vnet-integration#how-regional-virtual-network-integration-works

事前準備

接続先(Linuxサーバ)の準備

Linuxサーバ(今回はUbuntu)を作成し、Neginxをインストールしておきます。
パブリックIP:20.243.19.234
プライベートIP:10.0.0.4

Neginxのインストール
$sudo su -
#apt update
#apt install nginx

・AppServiceからパブリックIPでのアクセス

・AppServiceからプライベートIPでのアクセス

制限事項の確認

制限事項も確認しましょう。仮想ネットワーク(IPアドレス)周りは特に注意です。
 ・AppServiceの価格レベルはBasic または Standard、Premium、Premium v2、Premium v3、Elastic Premiumがサポート対象
・AppService専用のサブネットが必要
 ※App Service プラン インスタンスごとに、統合サブネットから 1 つのアドレスが使用される。
アプリを 4 つのインスタンスにスケールする場合は、4 つのアドレスが使用される。
・インスタンス サイズをスケールアップ/ダウンすると、スケーリング操作の完了時に App Service プランで使用される IP アドレスの量が一時的に 2 倍になる
https://learn.microsoft.com/ja-jp/azure/app-service/overview-vnet-integration#limitations

VNET統合の設定

ここからはVNET統合を設定していきます。

1.AppServiceがFreeプランなので、Basicに上げます

2.AppServiceからネットワークをクリックすると「仮想ネットワーク統合」のリンクがあるのでクリック

3.「仮想ネットワーク統合の追加」をクリック

4.仮想ネットワークとサブネットの情報を入力し、「接続」をクリック

※専用サブネットがない場合、このように作成できないので注意。

5.設定画面が表示されることを確認

動作確認

1.プライベートIPを指定してCurlコマンドを実行してみましたが、接続できるようになりました。

2.VMのNSGでsshとVirtualNetwork以外の通信を拒否するルールを入れてみました。

2-1.パブリックIPでは接続できません。

2-2.プライベートIPで接続できたので仮想ネットワークを使用できていることが確認できました。

最後に

VNET統合を使うことでAppServiceからの通信を閉域化することができます。
AppServiceが受信する通信はVNET統合ではなく、プライベートリンクサービスを使用する必要があるので注意しましょう。

Discussion