はじめに
本記事は、「Azure で社内システムを再現する」シリーズの第1回です。
Azure の IaaS を用いて、オンプレミス環境を模した構成を段階的に構築していきます。
構成図と処理フローの詳細は、以下の記事をご参照ください👇
▶ 【第0回】Azureで社内webシステムを再現|構成図と動作の流れ
システム構成(今回の対象範囲)
以下は、最終的に構築を目指す全体構成図です。
この記事では、赤枠で囲っている部分が対象です。
IISからAzure Filesに配置したアプリケーションのファイルを参照して表示する構成を作成します。
IISではこの共有フォルダをマウントして参照しており、Webページとしてそのまま配信できる構成です。
これにより、アプリの更新時はAzure Files上のファイルを差し替えるだけで反映されるようにします。
Azure Filesの作成とファイルの配置
Azure Portalから、ストレージアカウントを作成し、その中にファイル共有(Azure Files)を作成します。
作成したファイル共有には、Webアプリケーションで使用する静的ファイルをアップロードしておきます。
これらのファイルは、後ほどIISサーバーからマウントして参照することになります。
AzureFilesのマウント
作成したAzure Filesは、IISをインストールした仮想マシン上にネットワークドライブとしてマウントします。
今回は、Yドライブとして割り当てました。
エクスプローラ上でも、正常にマウントされていることが確認できます。
IISでの仮想ディレクトリ設定
IISでは、マウントしたYドライブを仮想ディレクトリとして設定し、Web上に公開します。
仮想ディレクトリ名は employee-app とし、物理パスには Azure Files の UNC パス(\\<ストレージアカウント名>.file.core.windows.net\<ファイル共有名>)を指定しました。
※注意
Y:\のようなネットワークドライブ経由のパスを指定すると、IISの実行ユーザーからアクセスできないことがあります。
そのため、仮想ディレクトリには UNC パスを直接指定することが推奨されます。
アクセス時のエラーと対処
仮想ディレクトリの設定を終え、ブラウザからアクセスを試みたところ、403エラーが発生しました。
403エラーは、アクセス権限が不足している場合によく発生します。
そのため、IISがAzure Filesに対してアクセスできていない可能性があると考えました。
調査を進める中で、以下の参考サイトを発見しました。
Azure FilesをWindowsでユーザー指定マウントする方法(jpaztech.github.io)
このページでは、PowerShellの New-SmbGlobalMapping コマンドを使って、
Azure Filesを“すべてのユーザーからも利用できる状態で”マウントする方法が紹介されています。
通常の net use コマンドによるマウントでは、コマンドを実行したユーザーにしかマウントが見えません。
そのため、IISのアカウント(たとえば IUSR やアプリケーションプールの実行アカウント)からは、Azure Filesにアクセスできず、403エラーになったんじゃないかなと考えました。
New-SmbGlobalMapping コマンドの実行
以下のコマンドを使用して、Azure Files を Yドライブにマウントしました。
# ストレージアカウント名をユーザー名として指定
$User = "localhost\<ストレージアカウント名>"
# アクセスキーをパスワードとして指定
$PWord = ConvertTo-SecureString -String "<ストレージアカウントアクセスキー>" -AsPlainText -Force
# 認証情報(Credential)を作成
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
# Azure Files を Y ドライブにマウント(他のユーザーからも参照できるように)
New-SmbGlobalMapping -RemotePath "\\<ストレージアカウント名>.file.core.windows.net\<ファイル共有名>" -Credential $Credential -LocalPath Y: -Persistent $true
アクセス確認
グローバルマウントを行った後、ブラウザから再度アクセスを試みたところ、
Webページが正常に表示されるようになりました。
これで、Azure Files 上に保存されたファイルを、
IIS を通じて Web ページとして配信できることが確認できました。






