Appearance
CDNと統合されたフルマネージドな環境にSingle Page Application (SPA) を構築する
概要
このアーキテクチャで達成できる要件
- フルマネージドなサービスを利用したい
- グローバル CDN を利用してコンテンツを高速に配信したい
構成図
構成説明
- WebアプリケーションをデプロイするAzure Static Web Appsを作成します。
- Azure Static Web AppsにデプロイしたWebアプリケーションへアクセスするためのドメイン名を、Azure DNSへCNAMEへ登録します。
処理フロー
- クライアントからアプリケーションへのFully Qualified Domain Name (FQDN) が、Azure DNSによって解決される。
- 解決された結果を基に、クライントからAzure Static Web Appsへリクエストが送信される。
- Azure Static Web Appsへホスティングされたアプリケーションがクライアントへロードされる。
他方式との比較
Azure App Service
- アプリケーションをホスティングするサービスとしてAzure App Serviceを利用する選択肢を考えられます。
- Azure App Serviceを用いた方式は、以下の場合に適しています。
- Node.jsなどのバックエンドサーバを統合してホストしたい。
Azure Blob Storage + Azure CDN
- アプリケーションをホスティングするサービスとしてAzure Blob Storage + Azure CDNを利用する選択肢を考えられます。
- Azure Blob Storage + Azure CDNを用いた方式は、以下の場合に適しています。
- シンプルな設定で静的コンテンツを安価に配信したい。
AssemblyLineの構成
このアーキテクチャでは、以下のAssemblyLineが生成されます。
Azure Frontend Application
- Webアプリケーションをデプロイする。
Azure Frontend Application
このAssemblyLineは、以下のPipelineから構成されます。
deploy
- WebアプリケーションをデプロイするためのAzure Static Web Appsリソースを作成します。
publish-site
- Azure Static Web Appsへ静的ファイルをデプロイします。
Architecture Decision Records
Azure DNSを利用して独自ドメインを設定する
Context
- Azure Static Web Appsは、リソースが作成されると自動生成ドメインが提供されます。
- 自動生成ドメインはランダムな文字列で構成されるため、ブランドイメージを統一できない、覚えづらいためユーザ体験が低下するといった問題があります。
Decision
- Azure Static Web Appsで自動生成されたドメインに対して、Azure DNSを利用して別名の独自ドメインを設定します。
- 公開するアプリケーションに対して任意のドメイン設定することで、ブランドイメージの統一やユーザ体験の向上を達成できます。
非機能要件
可用性
冗長化構成
- 本アーキテクチャ構成では冗長化構成は行なっていません。可用性はAzure Static Web Appsで担保されています。 詳細はService Level Agreements (SLA) for Online Servicesからご確認いただけます。
ロケーション構成
- Azure Static Web Apps: デフォルトは
East Asia
。パラメータで変更可能。
運用・保守性
バックアップ
Azure Static Web Appsではバックアップ機能は提供されていません。コードベースのバックアップはソースコード管理システムを使うなどしてユーザ側で管理することが推奨されます。
保守
- SSL証明書の自動更新
- 作成したCNAMEレコードを利用してAzure Static Web Appsにカスタムドメインが登録され、無料のSSL/TLS証明書が自動的に作成されます。
- 発行された証明書の期限は半年であり、自動更新されます。
セキュリティ
通信
- 本アーキテクチャではデフォルトで通信するデータをHTTPSを利用して暗号化します。
アクセス制限
- アクセス制限方法
- Azure Static Web AppsではMicrosoft Entra IDとGithubの承認プロバイダを利用して、認証認可プロセスを構築できます。詳細はAzure Static Web Apps の認証と認可からご確認いただけます。
ログ
- Azure Static Web Appsページから「監視」->「メトリック」から以下のメトリック確認できます。詳細はMicrosoft.Web/staticsitesで確認いただけます。
- BytesSent
- CdnPercentageOf4XX
- CdnPercentageOf5XX
- CdnRequestCount
- CdnResponseSize
- CdnTotalLatency
- DataApiErrors
- DataApiHits
- FunctionErrors
- FunctionHits
- SiteErrors
- SiteHits