今回はWeb App for Containersでコンテナイメージからアプリを簡単にデプロイする方法を解説します。Azure App ServiceのWeb Appsを使用すると、WebアプリをデプロイするためのWindowsまたはLinuxベースのPaaS環境を迅速かつ簡単に準備できます。Windowsベースの場合は、.NET、Java、Node.js、PHP、またはPythonのPaaS環境を、Linuxベースの場合は、.NET Core、Node.js、PHP、またはRubyのPaaS環境が用意されていますLinuxベースの後者を、特にWeb Apps Linuxと呼ぶこともあります。

Web App for ContainersでLinuxコンテナを無料で試す

App Serviceにはもう1つ、Web App for Containersが用意されています。Web App for Containersは、Dockerまたはカスタムのコンテナイメージをデプロイするための、コンテナホスト環境を提供するもので、Azureで定義されていないアプリケーションスタックを準備するのに利用できます。

このサービスもWindowsとLinuxの両方に対応していますが、一般提供されているのはLinuxコンテナーの環境であり、Windowsコンテナについては、現在、パブリックプレビュー段階にあります(2019年4月3日にWindows Server 2019ベースになり、最新バージョンのWindowsコンテナのデプロイが可能になりました)。

Web App for Containersには、Docker Hubの公式イメージやローカルまたはクラウド上のDocker開発環境で準備したカスタムイメージを、Azure Container Registry(ACR)、Docker Hubのパブリックまたはプライベートレジストリ経由で簡単にデプロイすることができます。

以下のドキュメントでは、Azure CLIのコマンドラインを使用したチュートリアルで説明されていますが、今回はAzureポータルを使用する方法で、極めて簡単にデプロイできるかということを紹介します。

LinuxベースのWeb Apps LinuxおよびWeb App for Containersは、サービスプランB1 Basic(開発/テスト向け)をデプロイ後30日間無料で試用することができます。どちらも、東日本(Japan East)および西日本(Japan West)リージョンの両方で利用可能なサービスです。

なお、Web Apps Linuxでは2019年5月初めに無料のサービスプランF1(Free)が利用可能になりましたが、Web App for Containersを利用できる最小のサービスプランはB1です。

Docker公式イメージからnginxをデプロイする

例として、オープンソースのWebサーバ「nginx」を、Docker Hubで公開されているDocker公式イメージからWeb App for Containersの30日間無料プランで東日本(または西日本)リージョンにデプロイしてみましょう。

Azureポータルで「+リソースの作成」をクリックし、Marketplaceで「Web App for Containers」を検索してリソースの作成を開始します。なお、汎用的な「Web App」または「Webアプリ(プレビュー)」(2019年5月初めからの新しいプレビューUI)を選択して、OSとして「Linux」を選択し、公開方法として「Dockerイメージ」を選択することでもWeb App for Containersにアプリをデプロイすることが可能です。

  • Azure“超”入門 第27回

    Marketplaceから「Web App for Containers」を検索して「作成」をクリックする。「Web App」を使用して作成することも可能

「Web App for Containers」ブレードが表示されるので、「アプリ名」を入力します。「アプリ名.azurewebsites.net」が未使用であれば、任意のアプリ名を入力できます。続いて、「リソースグループ」として新規(または既存)のリソースグループ名を入力し、「OS」の選択肢から「Linux」を選択します(「Web App」ブレードで作成する場合は、さらに「公開」から「Dockerイメージ」を選択します)。

「App Serviceプラン/場所」を展開し、「+新規作成」をクリックして、「App Serviceプラン」に任意の名前を入力し、「場所」のドロップダウンリストから「Japan East(またはJapan West)」を選択します。価格レベルの既定は運用環境向けの「P1V2 PremiumV2」ですが、これを開発/テスト向けの「B1 Basic」に変更し、「OK」をクリックします。

  • Azure“超”入門 第27回

    Linuxコンテナは東日本(Japan East)と西日本(Japan West)の両方のリージョンでサポートされ、最小(Free/Sharedを除く)の価格レベル「B1 Basic」からデプロイ可能

次に「コンテナーの構成」を展開し、「イメージのソース」から「Docker Hub」を選択して、「リポジトリアクセス」から「Public」を選択し、「イメージとオプションのタグ」のところにdocker pullコマンドに指定するのと同じ形式でイメージ名を入力します。今回の例では単に「nginx」と入力します。

  • Azure“超”入門 第27回

    「Docker Hub」の「Public」レジストリを選択し、イメージ名としてDocker公式イメージの「nginx」と入力する

「適用」をクリックして「コンテナーの構成」を閉じ、「作成」をクリックすると、デプロイが始まります。Linuxコンテナの場合、数十秒であっという間にデプロイが完了し、コンテナが実行状態になります。

  • Azure“超”入門 第27回

    Linuxコンテナは数十秒でデプロイが完了し、コンテナが実行状態になる

上記のように、Linuxコンテナを価格レベル「B1 Basic」でデプロイした場合、デプロイから30日間は無料で試用できます。試用を終了するには、App Serviceからそのアプリを削除して、WebアプリおよびApp Serviceプランを削除してください。対応するリソースグループも同時に削除されます。

Windowsコンテナのデプロイについて

Web App for ContainersのWindowsコンテナ対応は、2018年8月からパブリックプレビューとしてサポートされます。

2019年4月からは、コンテナホスト環境がWindows Server 2016ベースから最新のWindows Server 2019ベースに更新され、従来からのWindows Server 2016ベースのServer Coreイメージに加えて、Windows Server, version 1709/1803(SAC)およびWindows Server 2019(LTSC)のServer Coreイメージ、およびWindows Server, version 1809(SAC)のNano Serverイメージが新たにサポートされるようになりました。

  • Azure“超”入門 第27回

    Windowsコンテナのサポートはパブリックプレビュー段階。2019年4月からは最新バージョンのServer Coreイメージ(:ltsc2019)やNano Serverイメージ(:1809)をデプロイ可能に

ただし、現状、利用可能なリージョンは限定されており、東日本と西日本リージョンでは利用できません。また、価格レベルはWindowsコンテナ用に用意された「PC2 Premiumコンテナー」(プレビュー期間中は50%オフの料金)以上でサポートされます。

著者プロフィール

山市良
Web媒体、IT系雑誌、書籍を中心に執筆活動を行っているテクニカルフリーライター。主にマイクロソフトの製品やサービスの情報、新しいテクノロジを分かりやすく、正確に読者に伝えるとともに、利用現場で役立つ管理テクニックやトラブルシューティングを得意とする。2008年10月よりMicrosoft MVP - Cloud and Datacenter Management(旧カテゴリ: Hyper-V)を連続受賞。ブログはこちら。

主な著書・訳書
「インサイドWindows 第7版 上」(訳書、日経BP社、2018年)、「Windows Sysinternals徹底解説 改定新版」(訳書、日経BP社、2017年)、「Windows Server 2016テクノロジ入門 完全版」(日経BP社、2016年)、「Windows Server 2012 R2テクノロジ入門」(日経BP社、2014年)などがある。