AzurePaaS研究サイト

~理解しずらい情報をシンプルにお伝えします~

AppServiceプランとストレージアカウントのストレージ領域をAppService/Functionsから活用する

 
 
AppService と Functions を利用する際に、
 
「デプロイしたアプリケーションはどこに配置されるのか」
「アプリケーション処理でファイル入出力するとき、どこのサーバ領域を使えるのか」
 
など気になると思いますので、このページでは、その辺りの内容を料金プランごとに説明していきます。
 

AppServiceプランの場合(AppService, Functions 共通)

 
AppServiceプランを作ると、AppServiceプラン用のストレージ領域が用意されます。(ストレージアカウントのリソースが作成されるわけではないのでご理解ください)

デプロイについて

デプロイやKuduサイトAppServiceとFunctionsに同じAppServiceプランを指定した場合、同じストレージ領域が使用されます。
 
アプリケーションのAzure上へのデプロイについては、AppService/Functions を新規作成した際に指定したAppServiceプランのストレージ領域にアプリケーションデータがデプロイ(配置)されます。
 

アプリケーションコードがデプロイ(配置)される場所

d:\home\site\wwwroot に配置されます。
デプロイ後に、kudu サイトで確認できます。
詳細はこちらのページに書いたのでご参考ください。
 

公開情報

AppServiceプランのプランの種類ごとのストレージサイズはこちらの公式ドキュメントに書かれてます。
 
azure.microsoft.com ===== 抜粋ここから =====

f:id:nanacy7741:20201212123622p:plain

===== 抜粋ここまで =====
 
 

Functions の従量課金プラン・Premium プランの場合

 
Function App のリソースを新規作成する際に、ホスティングタブのストレージアカウントで指定したリソースのストレージ領域が使用されます。

デプロイについて

Functions の従量課金プラン・Premiumプランの場合は、指定したストレージアカウントのファイル共有にデプロイされます。

公開情報

docs.microsoft.com

Functionsに割り当てるストレージアカウントを仮想ネットワーク上にセキュアに構成する

以下を構築すると、Functions に割り当てるストレージアカウントはパブリックアクセスを拒否できて、ストレージアカウントへのアクセスがプライベート接続で通信できます。
 
(1)仮想ネットワークを作成 ※ サブネットも作成
(2)ストレージアカウントを作成
(3)Functions を作成 ※ ストレージアカウントは(2)を指定
(4)ストレージアカウントにプライベートエンドポイントを作成などする
(5)Functions のネットワーク設定からVnet統合する
 

ストレージ領域の活用方法

アプリケーション処理でファイル入出力を行う

アプリケーション処理で D:\home、D:\local などにファイル入出力する場合があると思います。ファイルの保存先は、アプリの実装に依存します。
 
D:\home、D:\local などのファイルシステムに保存するように実装されている場合にはファイルは暗号化されません。保存するファイルを暗号化したい場合は、アプリケーションで独自に、暗号化される StorageAccount にファイル保存するように実装する必要があります。

デプロイについて

Functions が AppServiceプランを利用している場合は、先述したのと同じく d:\home\site\wwwroot にデプロイ(配置)されます。
 
しかし、Functions の 従量課金プラン と Premiumプランの場合は、Zip デプロイ とい方法が推奨されています。

Zip デプロイ

Functions のアプリケーション設定に、以下が設定されていると Azure 側が関数アプリケーションを実行するときは、d:\home\data\SitePackages フォルダー内のパッケージ ファイルから実行します。
名前:WEBSITE_RUN_FROM_PACKAGE
値 :1
 
こうすることで、従量課金プランの場合のコールドスタートが緩和される効果があります。(コールドスタートについては、こちらのページをご参考ください)
 
しかし、Zip ファイルがデプロイされるので、kudu サイトでプログラムコードの参照や変更ができなくなりますが、どうせプログラムコードの参照や変更は VisualStudio からしかやらないわ、という方にはデメリットにはならないと思います。
 

docs.microsoft.com

===== 抜粋ここから =====
Azure App Service では、デプロイ ZIP パッケージ ファイルから直接アプリを実行できます。 この記事では、アプリでこの機能を有効にする方法を示します。
===== 抜粋ここまで =====

 

アプリケーションデータを暗号化して保存する

 
Microsoft はセキュリティ対策がよくされているとはいえ、クラウド上にアプリケーションデータを暗号化せずにアップロードすると心配だから暗号化したい!という方のための情報です。
 

docs.microsoft.com

 
 
以下は、デプロイしたリソースをストレージアカウント上に暗号化して保存する際の公式ドキュメントです。

docs.microsoft.com

===== 抜粋ここから =====
Azure Storage では、データはクラウドに永続化されるときに自動的に暗号化されます。 Azure Storage 暗号化によってデータは保護され、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。
===== 抜粋ここまで =====
 

 
 
以上です。
 

ご意見・ご要望はこちらへ