AzurePaaS研究サイト

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 ===== 抜粋ここから =====

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

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

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

デプロイについて

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

公開情報

docs.microsoft.com

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

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

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

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

アプリケーション処理でAzureサーバ上にファイル入出力したいケースががあると思います。
ファイルの保存先は、 外部ストレージ領域のD:\home\site\wwwroot配下になります。
 
D:\homeなどのファイルシステムに保存するように実装されている場合にはファイルは暗号化されません。保存するファイルを暗号化したい場合は、アプリケーション側の実装・処理で暗号化される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 暗号化によってデータは保護され、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。
===== 抜粋ここまで =====
 
 
 
以上です。
 

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