はじめに
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アプリを構築する際は、構成を参考にしてみてください。
本記事が少しでもお役に立てれば幸いです。