Azure App Service とは?マネージドな web アプリホスティング
Azure App Service は web アプリ、API、コンテナをホストする platform-as-a-service です。コードやイメージをデプロイすると、Azure が代わりに実行、スケール、パッチ適用を行います。
App Service を使えば、基盤の VM、OS、load balancing を管理せずに web アプリケーションをホストできます。多くの言語やランタイム、加えてカスタムコンテナをサポートし、スケーリング、TLS、deployment slot を処理します。Azure で web アプリを動かす最も簡単な方法の 1 つです。
App Service が実行するもの
.NET、Node.js、Python、Java、PHP などのコード、あるいはカスタム Docker コンテナをデプロイできます。Azure はランタイムをプロビジョニングし、OS とプラットフォームのパッチを適用し、azurewebsites.net ドメインまたは独自ドメインで HTTPS 経由でアプリを公開します。
App Service plan
App Service plan は、アプリが実行される compute(サイズと tier)を定義します。複数のアプリが 1 つの plan を共有できます。tier は free や shared から dedicated や isolated まであり、コストと引き換えにパフォーマンスや autoscaling のような機能を得られます。
deployment slot
- 本番前にデプロイして検証するための staging slot。
- ほぼダウンタイムなしのリリースのための slot swap。
- 問題があれば swap を戻すだけの簡単なロールバック。
組み込み機能
App Service には autoscaling、カスタムドメインとマネージド証明書、認証の統合、診断ロギングが含まれます。これらは、生の VM の周りに自分で構築するはずだった配管の多くを取り除きます。
CI/CD での役割
パイプラインはアプリまたはコンテナを build し、staging slot へデプロイして production へ swap し、ダウンタイムなしのリリースを行います。GitHub Actions は azure/webapps-deploy action を使い、OIDC 経由で service principal に認証するため、publish profile や secret は保存されません。
重要なポイント
- App Service は web アプリ、API、コンテナをホストする Azure の PaaS です。
- deployment slot により staging での検証と、ほぼダウンタイムなしの swap が可能です。
- パイプラインは slot へデプロイして swap し、service principal 経由で認証します。