1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【第1回】Azureで社内webシステムを再現|AzureFiles ✖︎ IIS

1
Last updated at Posted at 2025-04-11

はじめに

本記事は、「Azure で社内システムを再現する」シリーズの第1回です。
Azure の IaaS を用いて、オンプレミス環境を模した構成を段階的に構築していきます。

構成図と処理フローの詳細は、以下の記事をご参照ください👇
【第0回】Azureで社内webシステムを再現|構成図と動作の流れ


システム構成(今回の対象範囲)

以下は、最終的に構築を目指す全体構成図です。

azure_onpre_joutai (2).png

この記事では、赤枠で囲っている部分が対象です。
IISからAzure Filesに配置したアプリケーションのファイルを参照して表示する構成を作成します。

IISではこの共有フォルダをマウントして参照しており、Webページとしてそのまま配信できる構成です。
これにより、アプリの更新時はAzure Files上のファイルを差し替えるだけで反映されるようにします。


Azure Filesの作成とファイルの配置

Azure Portalから、ストレージアカウントを作成し、その中にファイル共有(Azure Files)を作成します。

スクリーンショット 2025-04-11 22.02.22.png

作成したファイル共有には、Webアプリケーションで使用する静的ファイルをアップロードしておきます。
これらのファイルは、後ほどIISサーバーからマウントして参照することになります。


AzureFilesのマウント

作成したAzure Filesは、IISをインストールした仮想マシン上にネットワークドライブとしてマウントします。
今回は、Yドライブとして割り当てました。

スクリーンショット 2025-04-11 22.03.31.png

エクスプローラ上でも、正常にマウントされていることが確認できます。

スクリーンショット 2025-04-11 22.04.49.png


IISでの仮想ディレクトリ設定

IISでは、マウントしたYドライブを仮想ディレクトリとして設定し、Web上に公開します。

 .PNG

仮想ディレクトリ名は employee-app とし、物理パスには Azure Files の UNC パス(\\<ストレージアカウント名>.file.core.windows.net\<ファイル共有名>)を指定しました。

※注意
Y:\ のようなネットワークドライブ経由のパスを指定すると、IISの実行ユーザーからアクセスできないことがあります。
そのため、仮想ディレクトリには UNC パスを直接指定することが推奨されます


アクセス時のエラーと対処

仮想ディレクトリの設定を終え、ブラウザからアクセスを試みたところ、403エラーが発生しました。

スクリーンショット 2025-04-11 22.24.02.png

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ページが正常に表示されるようになりました。

スクリーンショット 2025-04-11 22.37.48.png

これで、Azure Files 上に保存されたファイルを、
IIS を通じて Web ページとして配信できることが確認できました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?