Azure App Service の管理ツール “Kudu” の紹介

はじめに

Azure の PaaS 製品である App Service ですが、 App Service ではウェブブラウザから操作可能な管理ツールがデフォルトで付属することが特徴です。
その管理ツールは Kudu と呼ばれますが、この記事では Kudu について解説をしていきます。

Kudu とは

Kudu は日本語では「高度なツール」と記載されることもありますが、 App Service で何らかのアプリをホストすると自動で付属する管理ツールです。
Windows 版の App Service と Linux 版とではやや異なりますが、基本的に Kudu を使用してできることはあまり変わりません。

また、 Kudu は無料の App Service Plan で稼働する App Service でも使用することが可能です。

Azure ポータルでは App Service の左のブレード内、 [開発ツール] に配置されています。

Kudu でできること

Kudu では下記のような機能が提供されており、これらを活用することで App Service をより効果的に利用することが可能になります。

  • 管理画面への Web ブラウザアクセス
  • File Manager
    • ブラウザでアプリ内のディレクトリ、ファイルを参照・変更できる
  • Kudu コンソール
    • ブラウザでコンソールの実行が可能 (Windows の場合は コマンドプロンプト、Linux の場合は WebSSH で Linux に接続)
  • 環境変数や稼働中プロセスの確認

その他、ユーザーがあまり意識することのない部分として、 App Service アプリへのデプロイなども実際には Kudu が担っています。

参考:Kudu サービスの概要

Kudu へのアクセス方法

Kudu にアクセスする方法は URL を直接入力するか、 Azure ポータルのリンクからアクセスする方法があります。

Kudu アクセス用 URL :
https://<App Service のアプリ名>.scm.azurewebsites.net

※ Linux 版の App Service の場合、上記 URL でアクセスできる通常の Kudo では機能が制限され一部の機能しか使用できませんが、下記 URL にアクセスすることで、Windows版と同様の Kudu を使用可能です。

Linux 向け Kudu (Kudu Lite) アクセス用 URL :
https://<App Service のアプリ名>.scm.azurewebsites.net/newui

App Service の種類によって変わる Kudu

Windows 版 App Service でアクセスできる Kudu

https://<App Service のアプリ名>.scm.azurewebsites.net

Linux 版 App Service でアクセスできる Kudu (Windows 版に比べて機能が少ない)

https://<App Service のアプリ名>.scm.azurewebsites.net

Linux 版 App Service でアクセスできる Kudu Lite

https://<App Service のアプリ名>.scm.azurewebsites.net/newui

Kudu でよく使用する機能

独断と偏見にはなりますが、 Kudu でよく使用する機能は “コンソール” と “File Manager” だと思います。
これらはアプリをデバッグする際や、アプリのログ確認時に非常によく使用します。

Windows 版の App Service では [Debug Console] が上記のコンソールと File Manager を兼ねています。
試しに Windows 版の App Service で Kudu にアクセスし、 [Debug Console] から [CMD] を開いてみてください。すると下記のような画面が表示され、ファイル一覧とコマンドプロンプトの実行画面が表示されるかと思います。

この画面の上部にはファイル一覧が表示され、 Windows 版では c:\home 配下がデフォルトで表示されます。
この画面から、 App Service 内のファイルの閲覧や編集、アップロードやダウンロードを行うことができ、ちょっとしたファイル操作を行う際は非常に便利です。

今回の記事では App Service 内部のディレクトリ構成については深く触れませんが、この home 配下はネットワークストレージとなっており、各インスタンスにスケールアウトされた全てのアプリから参照できるものとなります。
参考: App Service を構成する主要な要素とそれぞれの役割

また、 LogFiles 配下にはデプロイ時のログやアプリが標準出力 (stdout) に出力しているログなどが格納されます。
参考: Azure App Service でのアプリの診断ログの有効化 – ログのストリーミング

Linux 版の Kudu Lite では、コンソールは [WebSSH] として提供されており、 Linux の App Service 上で稼働しているコンテナ (Linux の App Service は内部的にはコンテナが稼働しています) に対して SSH でアクセスすることが可能です。
ただしカスタムコンテナーの場合はアクセス許可の設定が必要になります。
参考: Azure App Service のカスタム コンテナーを構成する – SSH を有効にする

Linux 版の Kudu Lite では File Manager がコンソールとは別で提供され、メニュー内の [File Manager] からアクセス可能です。

まとめ

App Service を駆使してアプリを開発するためには、デバッグやファイル操作 Kudu の存在は非常に重要となります。

また、 Kudu は App Service のデプロイやアプリの再起動など、 App Service を管理する様々な役割を担っているプロセスでもあります。

そのため Kudu をしっかり理解して使用することで、 App Service の活用の幅を広げることが可能となりますので、ぜひ活用してみてください。

参考:Kudo Wiki

「App Service」に関連する記事