Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

Azure Web Appsを使用したシステム構成の例

はじめに

Azureを使用してWebアプリケーションを構築する場合、App Serviceに含まれるWeb Appsサービスが利用候補に挙がります。
Azureを触ったことない方やお試しで構築してみたい方向けに、Web Appsを用いた簡単なシステム構成をご紹介します。
Web Appsの詳細については、以下公式のページを参照頂ければと思います。
Azure Web Appsについて

システム構成の例

構成の例は以下の通りです。
今回は「Web Apps for Containers」を使用していますが、一般的なWebアプリを構築する場合でも大きな構成変更はありません。

構成のポイントとして以下が挙げられます。

  • ロードバランサー + Webサーバ + データベースの一般的なシステム構成を採用
    • Azure Application Gateway → ロードバランサー
    • Web Apps → Webサーバ
    • Azure SQL Database → データベース
  • PaaSのサービスを積極的に活用し、初期費用・運用コストを削減する
  • SQLServer(データベース)はサーバレスを採用し、システムを使用しない時間帯のコストを削減する

構築手順の例

今回のシステムを構築する場合、以下のような手順で実施します。
システム構成の紹介がメインのため、細かい手順や説明は割愛しております。

  • リソースグループを作成する
    • 作成したグループの中に、各種リソースを格納する
  • VNet・Subnetを作成し、ネットワーク領域を確保する
  • App Serivce・App Service Planを作成し、Webアプリが動作する環境を整える
  • 踏み台サーバとしてVMを作成する
    • Virtual Machineを作成後、sqlcmdコマンドを使用できるようインストールする
    • 踏み台サーバの代わりとして、マネージドサービスのAzure Cloud ShellでもDB接続は可能なようですが、DBのポートフォワード等が使用できないため開発で利用する場合はVMを推奨
  • Azure SQL Database・プライベートエンドポイントを作成し、Webアプリが使用するテーブルなどを作成する
  • Web Appsにアプリケーションのデプロイを行う
  • WebアプリからDBへのアクセスが可能か確認する
  • Azure Application Gatewayを作成し、ロードバランサー経由でWeb Appsのアプリにアクセスできるか確認する
    • Azure Application Gatewayは停止ができず、削除しないと料金がかかるため注意
  • GitHubやAzure Pipelinesのサービスを使用し、CI/CDの仕組みを設ける

留意点

実際に構築してみて気づいた留意点は以下の通りです。

  • Azure Application Gatewayで使用するサブネットの中に、他のリソース(VMサーバなど)を配置することができない
  • Azure Bastionサービス(踏み台サーバ)は起動停止ができず、料金がかかるためVMを別で用意し必要な時のみ起動させる

おわりに

構成図に記載していませんが、実際の環境ではオートスケールやデプロイスロットなど、運用面も考慮したシステム構築を行なっています。
他のクラウドとは各種サービスの使い方など異なるので、導入を検討する前に実際に構築してみることをオススメします。
AzureでWebアプリを構築する際は、構成を参考にしてみてください。

本記事が少しでもお役に立てれば幸いです。