こんにちは、サイオステクノロジー武井(Twitter:@noriyukitakei)です。今回はとっても便利なApp ServiceのVNet統合について、ちょっとだけお話したいと思います。
VNet統合とは?
App Serviceを使っていますと、仮想ネットワーク上のリソースにアクセスしたくなることがあります。例えば、仮想ネットワーク上に構築したActive Directoryとかですね。あと、さらにオンプレミスにあるサーバーにもアクセスしたくなることがあるかもしれません。
そんなときのVNet統合です。App Serviceはそのまんまだと仮想ネットワーク上のリソースにはアクセスできませんが、このVNet統合を使えばバッチリです。
構成としては以下のようになります。
まず仮想ネットワーク上にVNet統合用サブネットを用意します。そのサブネットを経由して、同じ仮想ネットワーク上にある他のサブネットや、Service Endpoint経由でAzure Database for MySQLなどのマネージドサービス、Express Route経由でオンプレミスのリソースにアクセスします。
ちなみに詳細は、以下の公式ドキュメントに記載があります。
https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-integrate-with-vnet
実践してみよう!!
では早速実践してみましょう!!以下の構成で実践してみたいと思います。
App Serviceから仮想ネットワーク上にある仮想マシンにSSHするという単純なものです。
App Serviceの作成
まずはApp Serviceを作成してみます。Azureポータルにアクセスして「リソースの作成」をクリックして、以下のように「web app」と入力してエンターを押します。
「作成」をクリックします。
リソースグループやサブスクリプションなどは環境にご自分の環境にあったものを入れて下さい。2つ指定がありまして、1つはApp Service Planは必ずPremiumプラントして下さい。そうでないとこの後試すスケールアウトができません。もう一つは「公開」はもちろん「Dockerコンテナー」を選択して下さい。最後に「確認および作成」をクリックします。
「作成」をクリックします。しばらくすると出来上がります。
仮想ネットワークの作成
Azureポータルにアクセスして「リソースの作成」をクリックして、以下のように「仮想ネットワーク」と入力してエンターを押します。
「仮想ネットワーク」をクリックします。
「作成」をクリックします。
サブスクリプションやリソースグループ、仮想ネットワーク名等必要な事項を適宜入力します。「次:IPアドレス >」 をクリックします。
アドレス空間は任意ですが、サブネットについては、仮想マシンが配置されるサブネットと、App Serviceが配置されるサブネット(VNet統合用サブネット)の2つを以下のように作って下さい。最後に「確認および作成」をクリックします。
「作成」をクリックします。しばらくすると出来上がります。
仮想マシンの作成
先程作成した仮想マシン用サブネットにLinuxの仮想マシンを作成します。詳細な方法は割愛します。
VNet統合の設定
いよいよVNet統合の設定をおこいます。App Serviceにアクセスして、左部メニューの「ネットワーク」をクリックします。すると右に「VNet統合」が表示されるので「構成するにはここをクリック」をクリックします。
「+VNetの追加」をクリックします。そして、「仮想ネットワーク」には先程作成した仮想ネットワーク、「サブネット」には同様に先程作成した2つのサブネットのうち、App Service用のサブネット(VNet統合用サブネット)を選択して、「OK」をクリックします。これで完了です。
試してみる!!
先程作成した仮想マシンにSSHしてみましょう。App Serviceのポータル画面左部にある「SSH」をクリックして「移動→」をクリックして下さい。
SSHのコンソールが表示されるので、先程作成した仮想マシンのプライベートIPアドレスにSSHしてみます。
root@2c9d7962e808:/home# ssh admin@172.17.0.4 admin@172.17.0.4's password: Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1026-azure x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Oct 3 21:22:53 UTC 2020 System load: 0.13 Processes: 109 Usage of /: 4.7% of 28.90GB Users logged in: 0 Memory usage: 12% IP address for eth0: 172.17.0.4 Swap usage: 0% * Kubernetes 1.19 is out! Get it in one command with: sudo snap install microk8s --channel=1.19 --classic https://microk8s.io/ has docs and details. * Canonical Livepatch is available for installation. - Reduce system reboots and improve kernel security. Activate at: https://ubuntu.com/livepatch 0 packages can be updated. 0 updates are security updates. New release '20.04.1 LTS' available. Run 'do-release-upgrade' to upgrade to it. Last login: Sat Oct 3 21:22:17 2020 from 172.17.1.254 To run a command as administrator (user "root"), use "sudo". See "man sudo_root" for details. admin@testvm:~$
できましたー(๑•̀ㅂ•́)و✧
まとめ
VNet統合を使えば、仮想ネットワークのリソースにアクセスできるので、App Serviceの活用の幅が広がりますね。Express Route経由であればオンプレミスのリソースにもアクセスができます。ぜひ有効活用しましょう(๑•̀ㅂ•́)و✧