連載
» 2017年07月27日 05時00分 公開

Azure ハイッ! ここ大事!:Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2/3)

[打越浩幸,デジタルアドバンテージ]

Web Appsの中をのぞいてみる

 だいたい仕組みが分かったので、実際のAzureではアプリケーションがどうやって動作しているのか確認してみましょう。

 まずはプロセスの状態。この場合、オンプレミスのWindows OSなら、タスクマネージャーや、各種の管理ツールなどをサクっと使うところですが、AzureのWeb Appsではこれらは使えないようです。そこでコマンドライン(CUI)のツールを使ってみます。

【ハイッ! ここ大事!】

【ハイッ! ここ大事!】

 App Serviceのプロセス確認には、オンプレミスWindows OSでは当然のタスクマネージャーなどは使えません。このプロセス情報の確認に限らず、Azure管理では、コマンドラインツールを活用する場面が増えそうです。


 現在のAzureでは、CUIで操作する方法として、取りあえず次の3つの方法があります。

  • 開発ツールの「コンソール」画面
  • 高度なデプロイ支援ツール「Kudu」
  • Azure Cloud Shell

開発ツールの「コンソール」

 まずは開発ツールに用意されている「コンソール」を起動してみましょう。これは簡単に言うと、Webブラウザ上で動作するコマンドプロンプトです。起動するためには、まずAzureポータルのダッシュボードで作成したWeb Appsの画面を開きます。

【ハイッ! ここ大事!】

【ハイッ! ここ大事!】

 Azureの「コンソール」は、Webブラウザで使えるコマンドプロンプトみたいなものです。ただしコマンドプロンプトとの違いもあります(後述)。


Web Appsの概要を開く Web Appsの概要を開く
まずはAzureダッシュボードでWeb Appsアプリを開きます。
  (1)これを選択します。

 左側のメニューの[開発グループ]を見ると、[コンソール]と[高度なツール]の2つがあるので、最初は[コンソール]を実行してみます。

開発ツールのコンソールの起動 開発ツールのコンソールの起動
開発・運用に使えるツールとして、「コンソール」と「高度なツール(Kudu)」の2つがあります。
  (1)「コンソール」ツールを起動します。
  (2)「Kudu」ツールを起動します。

 起動すると次の画面のように、コンソールのウィンドウが開かれます。

コンソールツールによるファイル操作 コンソールツールによるファイル操作
コンソールとは、Windows OSのコマンドプロンプトに相当するツールです。コマンドプロンプトとほぼ同じように使えます。
  (1)起動時に表示されるメッセージ。AZUREと書いてあるようです。
  (2)これはWebサイトのルートフォルダです。
  (3)dirコマンドを実行してみます。
  (4)WordPressを構成するファイルの一覧です。

 これを見ると分かるように、Windows OSのコマンドプロンプト画面と似ているし、ほぼ同じように操作できます(メッセージはすべて英語ですが)。でもサンドボックス中で実行されているため、利用できないコマンドがあります(しかも表示を途中で止めたり、コマンド実行を中断したりできません。かなり使いづらいです。moreすら使えません)。オンプレミスのWindows OSでも、管理者権限でないコマンドプロンプトだと実行できないコマンドが多数ありますが、それよりも制限は厳しいようです。

【ハイッ! ここ大事!】

【ハイッ! ここ大事!】

 Azureの「コンソール」は、見かけはWebブラウザベースのコマンドプロンプトのようですが、セキュリティのために、利用できないコマンドも多くあります。オンプレミスと同じ使い勝手を期待していると裏切られます。


Web AppsのプラットフォームはWindows Server 2012相当?

 VerコマンドでOSのバージョンを確認すると、バージョン番号は「Version 6.2.9200」と表示されます。

D:\home\site\wwwroot ……Web Appsアプリ(WordPress)のインストール先フォルダ

> dir ……サイトのルートフォルダを表示してみる
D:\home\site\wwwroot
Volume in drive D is Windows
 Volume Serial Number is 648B-8605

 Directory of D:\home\site\wwwroot

07/20/2017  10:19 PM    <DIR>          .
07/20/2017  10:19 PM    <DIR>          ..
07/10/2017  01:23 AM             2,561 azuredeploy.json
07/10/2017  03:38 AM               418 index.php
……(中略)……
07/10/2017  03:38 AM            29,924 wp-signup.php
07/10/2017  03:38 AM             4,513 wp-trackback.php
07/10/2017  03:38 AM             3,065 xmlrpc.php
              21 File(s)        155,750 bytes
               5 Dir(s)  53,393,698,816 bytes free

> cd %windir% ……OSのインストール先へ移動
D:\Windows ……C:\Windowsではなく、D:\Windowsにインストールされている

> dir
D:\Windows
Volume in drive D is Windows
 Volume Serial Number is 648B-8605

 Directory of D:\Windows

07/20/2017  05:11 AM    <DIR>          .
07/20/2017  05:11 AM    <DIR>          ..
05/10/2017  07:18 AM                 0 AddRdBits.txt
07/26/2012  08:04 AM    <DIR>          AppCompat
04/29/2017  08:50 AM    <DIR>          apppatch
07/20/2017  05:10 AM    <DIR>          assembly
……(中略)……
07/26/2012  03:21 AM            10,752 winhlp32.exe
05/09/2017  07:48 AM    <DIR>          WinSxS
07/26/2012  03:08 AM            10,752 write.exe
04/29/2017  06:38 AM    <DIR>          zh-CN
              28 File(s)      6,468,076 bytes
              56 Dir(s)   3,321,905,152 bytes free

> ipconfig  ……IPアドレスを確認してみる
D:\Windows
Access is denied.  ……オンプレミスのWindows OSなら必ず実行できるが、AzureのWeb Apps環境(サンドボックス中)だと権限が不足していて実行できない。このようなコマンドが多数あるので、ちょっと戸惑う

> ver  ……バージョン番号の確認
D:\Windows
Microsoft Windows [Version 6.2.9200]  ……Windows 8やWindows Server 2012と同じバージョン/ビルド番号に見えます

>



 バージョン/ビルド番号が「6.2.9200」ということは、Windows 8やWindows Server 2012と同じですね。ファイルのタイムスタンプもWindows Server 2012のものとほぼ同じですので(2012/07/26となっているファイルが多い)、このあたりのWindows OSをベースに大幅にカスタマイズしてAzure用のWeb Appsの実行環境が作られているのでしょう。

【ハイッ! ここ大事!】

【ハイッ! ここ大事!】

 Web Appのプロセスから見えるOSのバージョン番号はWindows Server 2012と同じですが、中身はかなり異なるようです(制限が厳しい)。最新のWindows OSがベースではないのですが、互換性を考えるとこの方が望ましいのでしょう。本当に最新のWindows Server OSの機能を使いたければ、VMを使う必要がありそうです。


 古い日付のファイルが多いですが、新しい機能を追加するよりは、互換性の維持を最大限に重視してAzureの開発が進んできたので(古いVMやアプリをずっとそのまま使えるようにするため)、こうなっていると考えられます(IISのレベルでは、もう特に追加すべき機能がないのかもしれませんが)。アプリの開発者/運用者としては、勝手に実行環境がバージョンアップされて、ある日突然アプリが動かなくなる、という危険性が少なくなるので、これは助かります。

 「D:\Program Files」や「D:\Program Files (x86)」フォルダの中を見ると、標準のWindows OSに対して、PHPやApache Tomcat、Java、Git、Grunt、Gulp、Node.js、SQL Server、MySQLなど、さまざまなツールがあらかじめインストールされているようです。

 さてWeb Apps実行環境の中を見ようと、例えばtasklistコマンドを実行してみたのですが、エラーで実行できませんでした。このようにこのコンソールでは実行できないコマンドが多くて、今回の目的にはちょっと使えませんでした。ファイルのコピーや内容のチェックといった、簡単な操作なら問題なくできるのですが……。

 Azure Web AppsはIIS上で動作しているようなので、それも確認してみましょう。

> cd D:\Windows\System32\inetsrv  ……IISの設定をチェックしてみる
D:\Windows\System32\inetsrv

> appcmd list app  ……appcmdでIISのWebサイト情報を確認
D:\Windows\System32\inetsrv
APP "Default Web Site/" (applicationPool:DefaultAppPool)  ……このようなサイトが作成されている

> appcmd list apppool  ……appcmdでIISのアプリ実行環境を確認
D:\Windows\System32\inetsrv
APPPOOL "DefaultAppPool" (MgdVersion:v4.0,MgdMode:Integrated,state:Unknown)  ……これらはWindows OSのIISと同じ
APPPOOL ".NET v4.5 Classic" (MgdVersion:v4.0,MgdMode:Classic,state:Unknown)
APPPOOL ".NET v4.5" (MgdVersion:v4.0,MgdMode:Integrated,state:Unknown)
APPPOOL "Classic .NET AppPool" (MgdVersion:v2.0,MgdMode:Classic,state:Unknown)
APPPOOL ".NET v2.0 Classic" (MgdVersion:v2.0,MgdMode:Classic,state:Unknown)
APPPOOL ".NET v2.0" (MgdVersion:v2.0,MgdMode:Integrated,state:Unknown)

>



 通常のWindows OS(のIIS)とほぼ同じようですね。

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。