BLOGAzureブログ

アプリケーションをどこでホスティングする? Azure App Service はどうでしょう?代表格は Web Apps!

2023.01.11

皆さまこんにちは、SB C&Sの八釼です。
アプリケーションを開発・稼働させるプラットフォーム機能を提供するPaaS ( Platform as a Service ) のサービスは、パブリッククラウドを利用しているならば運用コストや開発速度の面からできる限り活用したいものです。

Azureにおいてもこういった多様なサービスが提供されますが、今回はその中でもアプリケーション用のPaaSであるAzure App Serviceについて概要をご紹介します。

Azure App Service ( App Service ) とは?

ユーザーアプリケーションを動かすための基盤であり、用途別に以下のようなサービスが提供されます。つまりこれらのサービスの総称がAzure App Serviceなのです。ただし、これはあくまで広義の分類であり狭義では(基本的には)Web Apps、API Apps、Mobile Appsです。Logic AppsとFunctionsについてはAzureにおけるサーバーレスコンピューティングソリューションという分類ができます。

Web Apps
Webアプリケーションをホスティング

API Apps
Web API を作成・公開

Mobile Apps
モバイルアプリケーションのバックエンドに特化

Logic Apps
ノーコード/ローコードサービス

Functions
イベントドリブン型のFaaS ( Function as a Service )

稼働を支える環境

これらのサービス群(にデプロイするアプリケーション)を稼働させるための環境として「App Serviceプラン」という重要な概念が存在します。そしてこれはAzureのリソースとして作成されてデプロイされます。つまりこれは、アプリケーションを実行するための一連のコンピューティングリソースであり、App Serviceの実体なのです。少々イメージしにくいと思いますので、アプリケーションを動かすための仮想マシン(サーバー)と考えていただいても差し支えありません。

App Serviceプランを作成するためにはOSの種類や価格レベルなどを指定する必要があります。詳細については以下の公式ドキュメントをご確認いただければと思いますが、コンピューティングリソースがハイパフォーマンスを発揮できたり、その量が多くなるほど利用料金は高くなります。また上位のプランほどサポートされる機能も増えますので、要件に応じて適切なものをご選択ください。

ちなみに、Web Apps、API Apps、Mobile Appsの三つは必ずApp Serviceプランリソースにてアプリケーションが実行されますが、サーバーレスコンピューティングソリューションであるLogic AppsとFunctionsは必ずしもそうではありません。

代表的なサービスWeb Apps

AzureにおいてまたApp Serviceにおいても代表的と言えるサービスが、Web Appsです。Webアプリケーションは現代人にとっては非常に身近なものですし、ざっくり言えば現在運用中のものや今後リリース予定のもののデプロイ先をApp Serviceプランに変えるだけですので、活用するユーザーが非常に多いのです。

デプロイ出来るアプリケーション

以下の三つのアプリケーションのデプロイが可能ですが、大枠としてはWindowsベースの環境かLinuxベースの環境となります。そしてその環境に応じてホストするApp Serviceプラン(仮想マシンインスタンス)のOSが決まります。ほとんどのランタイムはどちらのOSでも実行可能ですが、ASP.NETはWindowsのみRubyはLinuxのみというように、いずれかのOSでしか実行できないものがあるので、その関係でApp Serviceプランが複数必要になる可能性はあります。

その他にも、アプリケーションに必要なランタイムが組み込みイメージでサポートされていない場合などを考慮し、独自のコンテナのデプロイもできます。

  • Windows ベース
  • Linux ベース
  • Docker コンテナ

1インスタンスの詳細抜粋.png

ちなみに、静的なHTMLファイル(動的なコンテンツが比較的少ないサイト)をホストすることもできますが、基本的にはより最適化されたAzure Static Web Appsというサービスを活用することが推奨となります。

デプロイ方法

大まかに言うと自動でも手動でも可能です。クラウドフォルダ(DropboxかOneDrive)に格納したソースコードを同期してAzure上でビルドしてデプロイという方法も可能ですし、FTPを使って手動でコピーすることやZIPなどのパッケージにしてデプロイすることも可能です。もちろん、リモートリポジトリのホスティングサービス ( GitHub、Bitbucket、Azure Repos ) のリポジトリを活用した継続的デプロイも可能です。というか、むしろぜひ積極的にご活用をいただければと思います。

CI/CDパイプラインとこのようなアプリケーション用のPaaSを組み合わせて使用することで、さらなる開発(リリース)速度や品質の向上そしてコスト削減につながりDevOpsを実現する一助にもなります。

便利なツール「 Kudu 」

App Service 用のデプロイエンジンであり、トラブルシューティングと分析に使用できるツールが存在します。これがKuduであり、このコンソールにはWebブラウザを使ってアクセスします。主にはデプロイのためのエンジンですが、そこでアプリケーション(プログラム)をホストする環境の詳細について確認したり、コマンドラインにより標準的な操作(ディレクトリの変更、ファイルのコピー/名前変更/削除など) を行うことや、ファイルやフォルダをアップロードしたりダウンロードしたりもできます。前述した手動デプロイに関連する例としては、例えば作成したZIPパッケージをKuduコンソール ( Webページ上 ) のエクスプローラー領域にドラッグして簡単にアップロードすることが可能です。

PaaSのサービスについては、OSやミドルウェアなどはマイクロソフト社(クラウドサービスプロバイダー)側で管理されており、基本的にはユーザーが関知する必要はありませんが、やはり環境をブラックボックスにはしたくないものですしユーザー側でトラブルシューティングなどできるのはありがたいことです。

2Windows-Kuduサイトのトップページ.png

3Kudu-Debug-console.png

詳細については以下の公式ドキュメントをご確認ください。

代表的な便利機能

プラン(価格レベル)によっては使用の可否が変わりますが、代表的なものを二つだけ紹介します。なお、プランは後から変更することができますので必要に応じて行ってください。

自動スケール

まずそもそもの話としてApp Serviceプランのインスタンス数も後から変更することができて、1~上限値の間で任意の値を随時手動で設定することができます。

4リソースをスケーリングする方法を選択します.png

その上で、設定した条件に基づいた自動でのスケーリング(アウト/イン)も可能です。需要(アクセス)に応じて、またはユーザーが定義したスケジュールに基づいて、自動的に増減させることで、コストを最適化した形で可用性を高めることができます。

デプロイスロット

複数のバージョンを同時にホスティングすることができ、新旧入れ替え時のリスクを小さくすることができます。例えば、運用とステージング用のデプロイスロットを作成し、運用スロットに現在バージョンがステージングスロットに新バージョンをデプロイした状態で、ステージングスロットの環境をテストし問題がなければスワップ操作によりダウンタイムなしでこれらのバージョンを入れ替えユーザーに新バージョンを提供できます。つまりBlue-Greenデプロイメントを容易に実現できるのです。

最後に

クラウドネイティブシステムを設計するためにはPaaSのサービスは無視できない存在です。Azureにおいてはさまざまなアプリケーションホスティングサービスがありますし、必ずしもApp Serviceが最適というわけではありません。しかし代表的なサービスの一つではありますのでAzureで動かしたいアプリケーションがApp Serviceの仕様に合うかぜひご検討いただき、合うようであれば積極的な活用をお願いします。

弊社では、こういったPaaSのサービスの活用を考慮しつつユーザー様の状況を踏まえて最適な形でのAzureの導入のご支援を提供しておりますので、ぜひとも法人でのAzure 導入前の相談窓口であるAzure相談センターまでお気軽にお問い合わせください。Azure に精通したスタッフが丁寧にご回答いたします。

  • 【 著者紹介 】
    八釼 友輔 - Azure エヴァンジェリスト
    SB C&S株式会社 ICT事業本部 クラウド・ソフトウェア推進本部 クラウドプラットフォーム推進統括部 マーケティング部 販売推進課
yyatsurugi-image.png

Azureの導入や運用に関するお悩みは SoftBankグループのSB C&Sにご相談ください

SoftBankグループのSB C&Sは、さまざまな分野のエキスパート企業との協力なパートナーシップによって、多岐にわたるAzure関連ソリューションをご提供しています。

「Azureのサービスを提供している企業が多すぎて、どの企業が自社にベストか分からない」
「Azure導入のメリット・デメリットを知りたい」
「Azureがどういう課題を解決してくれるのか知りたい」
など、Azureに関するお悩みならお気軽にお問い合わせください。
中立的な立場で、貴社に最適なソリューションをご提案いたします。

クラウドサーバーご検討中の方必見
お役立ち資料一覧

クラウドサーバーご検討中の方必見 お役立ち資料一覧
  • クラウドサーバーの導入を検討しているがオンプレミスとどう違うのか
  • AWSとAzureの違いについて知りたい
  • そもそもAzureについて基礎から知りたい
  • 今、話題の「WVD」って何?

そのようなお悩みはありませんか?
Azure相談センターでは、上記のようなお悩みを解決する
ダウンロード資料を豊富にご用意しています。
是非、ご覧ください。

Azureの導入・運用に役立つ資料を
無料でダウンロードしていただけますDOWNLOAD

オンプレミスからクラウドへの移行を検討している方のために、安心・スムーズな移行を実現する方法を解説し、
運用コストの削減に有効な「リザーブドインスタンス」もご紹介するホワイトペーパーです。

Azureのことなら、
SB C&Sにご相談を!

導入から活用まで専門スタッフが回答いたします。
お気軽にお問い合わせください。