Azure App Service を調べる

完了

Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。 お気に入りのプログラミング言語またはフレームワークで開発できます。 アプリケーションの実行とスケーリングは、Windows ベースの環境と Linux ベースの環境の両方で容易に行うことができます。

組み込みの自動スケールのサポート

スケールアップとスケールダウンまたはスケールアウトとスケールインの機能は、Azure App Service に組み込まれています。 Web アプリの使用量に応じて、Web アプリをホスティングしている基盤のマシンのリソースをスケールアップまたはスケールダウンできます。 リソースには、コア数または使用可能な RAM の容量が含まれます。 スケールアウトとスケールインは、Web アプリを実行しているマシン インスタンスの数を増減させる機能です。

コンテナー サポート

Azure App Service を使うと、コンテナー化された Web アプリを Windows と Linux にデプロイして実行できます。 プライベートの Azure Container Registry または Docker Hub からコンテナー イメージをプルできます。 Azure App Service では、マルチコンテナー アプリ、Windows コンテナー、コンテナー インスタンス調整用の Docker Compose もサポートされています。

継続的インテグレーション/デプロイのサポート

Azure portal からは、開発用コンピューターで Azure DevOps Services、GitHub、Bitbucket、FTP、またはローカル Git リポジトリを継続的に統合し、デプロイするためのすぐに使える機能が提供されます。 上のソースのいずれかを使って自分の Web アプリに接続すると、App Service でコードとそのコードでの今後の変更が Web アプリに自動同期され、自動的に残りの作業が行われます。 コンテナー化された Web アプリの継続的インテグレーションとデプロイも、Azure Container Registry または Docker Hub を使ってサポートされます。

デプロイ スロット

Standard App Service Plan レベル以上を実行しているなら、Web アプリをデプロイするとき、既定の運用スロットではなく別個のデプロイ スロットを使用できます。 デプロイ スロットは、固有のホスト名を持つライブ アプリです。 アプリのコンテンツと構成の各要素は、(運用スロットを含む) 2 つのデプロイ スロットの間でスワップすることができます。

App Service on Linux

App Service では、サポートされているアプリケーション スタック向けに Web アプリを Linux 上でネイティブにホストすることもできます。 また、カスタム Linux コンテナー (Web App for Containers とも呼ばれます) を実行することもできます。 App Service on Linux では、さまざまな言語に固有の組み込みイメージがサポートされています。 コードをデプロイするだけで済みます。 サポートされている言語とプラットフォームには以下が含まれます。Node.js、Java (JRE 8 と JRE 11)、PHP、Python、.NET、Ruby。 アプリケーションに必要なランタイムが組み込みイメージでサポートされていない場合、カスタム コンテナーを使用してデプロイできます。

言語とサポートされるバージョンは定期的に更新されます。 Cloud Shell で次のコマンドを使用すると、現在の一覧を取得できます。

az webapp list-runtimes --os-type linux

制限事項

App Service on Linux にはいくつかの制限があります。

  • App Service on Linux は共有価格レベルではサポートされていません。
  • Azure portal では、Linux アプリで現在動作している機能のみが表示されます。 機能が有効になると、ポータルでアクティブになります。
  • 組み込みイメージにデプロイされているコードとコンテンツには、Azure Storage によってサポートされる、Web コンテンツ用のストレージ ボリュームが割り当てられます。 このボリュームのディスク待ち時間は、コンテナー ファイルシステムの待ち時間よりも長く、可変です。 コンテンツ ファイルに対する高負荷の読み取り専用アクセスが必要なアプリでは、コンテンツ ボリュームではなく、コンテナー ファイルシステムにファイルを配置するカスタム コンテナー オプションを使用した方が有益な場合があります。