0
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?

【第1回】Azureで社内システム再現(オンプレ編)|Azure FilesとIISでアプリをホストする

Last updated at Posted at 2025-04-11

概要

「Azureで社内システム再現(オンプレ編)」では、
AzureのIaaSサービスを使って簡単な社内システムを再現します。

機能としては、社員番号を入力して検索ボタンを押すと、
対応する名前を表示するだけのシンプルなものです。

※詳しい全体構成については、【第0回】Azureで社内システム再現(オンプレ編)|構成図と動作の流れで紹介しています。


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

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

azure_onpre_joutai (2).png

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

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


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

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

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

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


IISサーバーへのマウント(Azure Files)

作成した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 コマンド※によるマウントでは、コマンドを実行したユーザーにしかマウントが見えません。

※Azure Portalの「接続」メニューで表示されるPowerShellスクリプトにも使われている一般的なマウント方法

そのため、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 上に保存された HTML / JavaScript ファイルを、
IIS を通じて Web ページとして配信できることが確認できました。

0
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
0
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?