App ServiceのVNET統合を設定する
AppServiceのVNET統合とは
通常AppServiceのようなPaaSサービスは仮想ネットワークを使わず、パブリックIPを使用します。
VNET統合を行うことで、AppServiceからの通信(送信方向)を仮想ネットワークを介して行うことができるようになります。
※AppServiceへの通信(受信方向)はプライベートリンクサービスを使用します。
これにより、AppServiceをパブリックに公開せず、仮想ネットワークに閉じた環境で使用することも可能になります。
事前準備
接続先(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 倍になる
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