Azure App Service ソリューションの設計

完了

Azure App Service は、Web アプリ、バックグラウンド ジョブ、モバイル バックエンド、RESTful API を構築してホストできる HTTP ベースのサービスです。 任意のプログラミング言語を使用し、GitHub、Azure DevOps、または任意の Git リポジトリから自動デプロイを構築できます。 App Service により、自動スケーリングと高可用性が提供されます。

Azure App Service について知っておくべきこと

Azure App Service を使用すると、すべてのアプリで一般的な利点が共有されます。 これらの利点により、App Service は、新しいワークロードをサポートしてデータを移行するためにホストされている Web アプリケーションに最適なコンピューティング ソリューションになります。

Flowchart that shows the decision tree for selecting Azure App Service to build new workloads and to support lift and shift migrations.

  • Azure App Service は、サービスとしてのプラットフォーム (PaaS) 環境です。 Web サイトの開発と API のロジックに集中します。 Azure により、Web アプリを実行してスケーリングするためのインフラストラクチャが処理されます。

  • App Service では、複数の言語とフレームワークでの開発がサポートされ、セキュリティで保護されたエンドポイントを使用した統合デプロイと管理が提供されます。

  • App Service では、高可用性を備えた組み込みの負荷分散とトラフィック管理がグローバル規模で提供されます。

  • App Service には、組み込みの認証と認可の機能 (Easy Auth と呼ばれることもある) が用意されています。 ユーザーのサインインとデータへのアクセスを、記述するコードを最小限にするか、なしにすることで行うことができます。

継続的なデプロイ

Azure App Service を使用すると、継続的デプロイが可能になります。 Azure DevOps には、作業の計画、コード開発の共同作業、アプリケーションのビルドとデプロイを行うためのサポート チーム向けの開発者サービスが用意されています。 コードを継続的にデプロイするときは可能な限り、新しい運用ビルドのデプロイ スロットを使用します。

Diagram that shows container slots for development, staging, primary, and production when using Azure App Service.

Standard App Service プラン レベル以上を選んだ場合は、ステージング環境へのアプリのデプロイ、変更の検証、パフォーマンス テストを行うことができます。 準備ができたら、ステージングおよび運用スロットを入れ替えることができます。 入れ替え操作により、運用規模に合わせて必要なワーカー インスタンスがトリガーされます。

Azure App Service のコスト

アプリで要求を処理するときに使用する Azure コンピューティング リソースについて支払います。 コストは、選んだ Azure App Service プランに基づいています。 App Service プランによって、ホストに利用されるハードウェアの量が決まります。 このプランでは、専用ハードウェアと共有ハードウェアのどちらを使用しているか、および予約されているメモリの量が指定されます。 アプリごとに異なる App Service プランを作成でき、プランはいつでもスケールアップおよびスケールダウンできます。

Azure App Service を使用するときに考慮すべきこと

Azure App Service を使用するシナリオをいくつか見てみましょう。 これらのオプションを確認するときは、Tailwind Traders インフラストラクチャで Azure App Service を統合する方法について考えてください。

  • Web アプリについて考える。 App Service で、ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP、または Python を使って Web アプリを作成します。 ホスト オペレーション システムとして Windows か Linux のいずれかを選択できます。

  • API アプリについて考える。 選んだ言語とフレームワークを使って、REST ベースの Web API と同様の API アプリを構築します。 Azure App Service では、Swagger の完全サポートを受けられるほか、API をパッケージ化し、Azure Marketplace で公開できます。 アプリは、任意の HTTP または HTTPS クライアントから利用できます。

  • WebJobs について考える。 App Service WebJobs 機能を使用して、プログラムまたはスクリプトを実行します。 プログラムの例としては、Java、PHP、Python、Node.js などがあります。 スクリプトの例には、cmd、bat、PowerShell、Bash などがあります。 WebJobs は、スケジュールしたりトリガーで実行したりすることができます。 多くの場合、WebJobs は、アプリケーション ロジックの一環としてバックグラウンド タスクを実行するために使用されます。

  • Mobile Apps について考える。 Azure App Service の Mobile Apps 機能を試し、iOS および Android アプリのバックエンドをすばやく構築します。 モバイル アプリ側では、App Service により、ネイティブ iOS、Android、Xamarin、および React ネイティブ アプリに対する SDK のサポートが提供されます。 Azure portal でいくつかの手順を実行するだけで、次のことが可能です。

    • クラウドベースの SQL データベースにモバイル アプリ データを格納する。
    • MSA、Google、Twitter、Facebook など、一般的なソーシャル プロバイダーに対して顧客を認証する。
    • プッシュ通知を送信する。
    • C# または Node.js でカスタム バックエンド ロジックを実行する。
  • 継続的デプロイについて考える。 Standard App Service プラン レベル以上を選び、コードの継続的デプロイを有効にします。 ステージング スロットにアプリをデプロイし、テストの実行でアプリを検証します。 アプリをリリースする準備ができたら、ステージングと運用のスロットを入れ替えます。 入れ替え操作によって、必要なワーカー インスタンスが運用規模に合わせてウォームアップされるため、ダウンタイムがなくなります。

  • 認証と認可について考える。 Azure App Service の組み込みの認証機能を利用します。 Web アプリまたは API で機能を使用するために、言語、SDK、セキュリティの専門知識、コードは必要ありません。 Microsoft Entra ID、Facebook、Google、Twitter などの複数のサインイン プロバイダーと統合できます。 Azure Functions には、App Service で使用できるのと同じ組み込みの認証機能が用意されています。

  • コストを削減するための複数の計画について考える。 アプリごとに異なる Azure App Service プランを構成します。 プランを任意の時点でスケールアップまたはダウンします。 Free App Service プランで Web アプリのテストを無料で開始します。 カスタム DNS 名を Web アプリに追加する場合は、プランを Shared レベルにスケーリングするだけです。