インターネットインフォメーションサービス (IIS) は、オンプレミスディスクのデータにアクセスするのと同じ方法で、サーバーメッセージブロック (SMB) ファイルシステムのデータにアクセスできます。 IIS は Web サービスと FTP サービスを提供し、Web サイトストレージをコンピューティングから分離します。 このトピックでは、NAS ファイルシステムにアクセスするように IIS を構成する方法について説明します。
前提条件
SMB ファイルシステムが作成され、そのファイルシステムのマウントポイントが作成されていること。 詳細については、「ファイルシステムを作成する」および「マウントポイントを作成する」をご参照ください。
WinSCP がインストールされていること。
背景情報
Windows Server は、Web サイトを構築するために使用される一般的なプラットフォームです。 多くのユーザーが Windows Elastic Compute Service (ECS) インスタンス上に Web サイトを構築し、Web サイトのコンテンツリソースを信頼性が高くスループットの高い SMB ファイルシステムに保存しています。 さらに、コンピューティングリソースとストレージリソースは、特定のビジネス要件に基づいて自動スケーリングをサポートしています。
IIS が提供する FTP サービスには、幅広い要件が含まれています。 多くのウェブサイト管理者は、FTP サービスを使用してウェブサイトのコンテンツをリモートで管理しています。 一方、多くの Alibaba Cloud ユーザーは、Windows ECS インスタンス上の FTP サービスを使用して、ワイドエリアネットワーク (WAN) と Alibaba Cloud 間でファイルを転送および共有したいと考えています。
この例では、IIS 7.5 (Windows Server 2008 R2) を使用して、Windows ECS インスタンスに Web サービスと FTP サービスの両方を提供するために NAS を使用する方法について説明します。 また、Server Load Balancer (SLB) を使用して、フォールトトレランスを提供するマルチサーバー Web サイトを構築することもできます。 詳細については、「CLB とは」をご参照ください。
このトピックではセキュリティに関するいくつかの提案を提供していますが、完全なセキュリティソリューションではありません。 Web サービスとデータを保護するための独自の計画を立てる必要があります。 たとえば、ファイアウォールの設定、ECS インスタンスのセキュリティグループの構成、オペレーティングシステムパッチのインストールによって、システムセキュリティを保護できます。 また、Alibaba Cloud のセキュリティサービスを使用して、サービスセキュリティを保護することもできます。
このトピックでは、iss_user という名前の一般ユーザーを使用しています。 Windows Server 2016 に FTP サービスをデプロイしたり、IIS Web サービスを実行したりする場合は、システム管理者ではなく、このユーザーとしてデータにアクセスすることをお勧めします。

Windows IIS をインストールする
この例では、Windows Server 2008 R2 を使用して、サーバーマネージャーを使用して IIS ロールを追加し、IIS をインストールする方法について説明します。
さまざまな Windows オペレーティングシステムに IIS をインストールする方法の詳細については、「IIS および ASP.NET モジュールのインストール」を参照してください。
Windows サーバーで、 を選択します。
[サーバー マネージャー] ダイアログボックスの左側のナビゲーションウィンドウで、[役割] をクリックします。 次に、[役割の追加] をクリックします。
[役割の追加ウィザード] の左側のナビゲーションウィンドウで、[サーバーの役割] をクリックします。 次に、[web サーバー (IIS)] を選択します。

[役割の追加ウィザード] の左側のナビゲーションウィンドウで、[役割サービス] をクリックします。 次に、Web サーバー (IIS) にインストールする役割サービスを選択します。
デフォルトのサービスに加えて、FTP サービスを有効にし、スクリプトを使用して動的 Web ページを表示するには、[ASP] と [FTP サーバー] も選択する必要があります。

[次へ] をクリックし、プロンプトに従ってインストールを完了します。
SMB ファイルシステムにアクセスする
Web リソースと構成ファイルを SMB ファイルシステムの共有ディレクトリ (デフォルトでは myshare) に保存できます。 Web サーバーがファイルシステムからデータを読み取り、ファイルシステムにデータを書き込むことができるように、SMB ファイルシステムの権限グループを構成できます。
ファイルエクスプローラーウィンドウを開き、アドレスバーに \\file-system-id.region.nas.aliyuncs.com\myshare と入力して SMB ファイルシステムにアクセスします。
file-system-id.region.nas.aliyuncs.com は、SMB ファイルシステムのマウントポイントのドメイン名です。 SMB ファイルシステムのマウントポイントのドメイン名を取得する方法の詳細については、「マウントポイントを表示する」をご参照ください。
myshare は、SMB ファイルシステムのデフォルトの共有ディレクトリです。 このディレクトリは変更できません。
Web サイトの Web ページファイルを保存するために、SMB ファイルシステムの wwwmyshare ディレクトリに という名前のサブディレクトリを作成します。
この例では、静的 Web ページファイル index.html と動的 Web ページファイル test.asp が myshare\www ディレクトリに作成されます。 次のサンプルコードは、ファイルを作成する方法を示しています。
Index.html
<HTML> <HEAD> <TITLE>Hello World in HTML</TITLE> </HEAD> <BODY> <CENTER><H1>Hello World!</H1></CENTER> </BODY> </HTML>静的 Web ページには
Hello World!が表示されます。Test.asp
<HTML> <BODY> This page was last refreshed on <%= Now() %>. </BODY> </HTML>動的 Web ページには現在のシステム時刻が表示されます。
Windows IIS Web サービスを設定する
Windows サーバーで、 を選択します。
左側のナビゲーションウィンドウで、 を選択します。 次に、[基本設定] をクリックします。
[サイトの編集] ダイアログボックスで、[物理パス] を設定し、[OK] をクリックします。
[物理パス] フィールドに、NAS 上の Web リソースの保存パス (例: \\file-system-id.region.nas.aliyuncs.com\myshare\www) を入力します。 file-system-id.region.nas.aliyuncs.com は、SMB ファイルシステムのマウントポイントのドメイン名です。 ドメイン名は実際の値に置き換えてください。
説明デフォルトでは、ユーザーセッションでマップされたネットワークドライブ (例: Z:\) にアクセスするには、IIS のユーザーアカウントとユーザーグループを使用する必要があります。 Windows ユーザーとしてマップされたネットワークドライブに直接アクセスすることはできません。 そうしないと、アクセスエラーが発生する可能性があります。
オプション。 レジストリを変更し、iis_user ユーザーを追加します。
IIS と NAS の連携を実現するには、次の手順を実行する必要があります。 Windows Server 2016 の場合、レジストリを変更して iis_user ユーザーを追加する必要があります。 Windows Server 2019 の場合、レジストリを変更し、iis_user ユーザーを追加してから、PowerShell で New-SmbGlobalMapping コマンドを実行して SMB ファイルシステムをマウントする必要があります。 このコマンドにより、ダイナミックリンクライブラリ (DLL) をロードできます。
SMB クライアントのレジストリキーを変更します。
Windows サーバーで、 を選択します。
[レジストリエディター] の左側のナビゲーションウィンドウで、 を選択し、空白領域を右クリックして、 を選択します。
値名を [allowinsecureguestauth] に設定し、値のデータを [1] に設定して、[OK] をクリックします。
NAS に保存されている Web リソースにアクセスするローカルユーザーを指定します。
Windows サーバーで、 を選択します。
左側のナビゲーションウィンドウで、 を選択します。 次に、[基本設定] をクリックします。
[サイトの編集] ダイアログボックスで、[接続身份] をクリックします。
[特定のユーザー] を選択し、[設定] をクリックします。
ユーザー名とパスワードを設定し、[OK] をクリックします。
この例では、ユーザー名は iis_user です。
PowerShell で New-SmbGlobalMapping コマンドを実行して、SMB ファイルシステムをマウントします。
# Define clear text string for username and password [string]$userName = 'WORKGROUP\administrator' [string]$userPassword = '****' # Convert to SecureString [securestring]$secStringPassword = ConvertTo-SecureString $userPassword -AsPlainText -Force [pscredential]$credObject = New-Object System.Management.Automation.PSCredential ($userName, $secStringPassword) New-SmbGlobalMapping -LocalPath z: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true -Credential $credObject****は、オペレーティングシステムの管理者のパスワードです。file-system-id.region.nas.aliyuncs.comは、SMB ファイルシステムのマウントポイントのドメイン名です。 ドメイン名は実際の値に置き換えてください。説明IIS が NAS ファイルシステムの共有ディレクトリ内のファイルにアクセスする場合、IIS のバックエンドは共有ディレクトリに複数回アクセスする可能性があります。 各アクセスリクエストに長い時間はかかりませんが、複数のアクセスリクエストが送信された場合、クライアントの応答に時間がかかる場合があります。 詳細については、「IIS から NAS へのアクセスパフォーマンスを向上させるにはどうすればよいですか?」をご参照ください。
JS ファイルや CSS ファイルなど、IIS によって頻繁にアクセスされる Web 関連ファイルは、ローカルディスクに保存することをお勧めします。
上記の手順を実行した後も書き込みエラーが発生する場合は、NAS テクニカルサポート にお問い合わせください。
設定を確認します。
ブラウザのアドレスバーに index.html ファイルと test.asp ファイルのローカルパスを入力して、これらのファイルを開きます。 次の図が表示された場合、IIS は正常に動作しています。 また、ECS インスタンスのセキュリティグループを構成し、Windows ファイアウォールを構成して、アクセスセキュリティを確保することもできます。


Windows IIS FTP サービスを設定する
Windows サーバーで、 を選択します。
SSL 証明書をインストールします。
ホームページで、[サーバー証明書] をダブルクリックします。

[サーバー証明書] ページで、[自己署名入り証明書の作成] をクリックします。
証明書の [名前] を指定し、[OK] をクリックします。
FTP サイトを設定します。
左側のナビゲーションウィンドウで、[サイト] をダブルクリックします。
[サイト] ページで、[FTP サイトの追加] をクリックします。
[FTP サイトの追加] ダイアログボックスで、関連パラメーターを構成し、[次へ] をクリックします。
[物理パス] フィールドに、NAS 上の Web リソースの保存パス (例: \\file-system-id.region.nas.aliyuncs.com\myshare\www) を入力します。 file-system-id.region.nas.aliyuncs.com はマウントポイントのドメイン名です。 ドメイン名は実際の値に置き換えてください。
ビジネス要件に基づいて、myshare ディレクトリ内の別のサブディレクトリを選択できます。 また、異なるポートを提供して異なるディレクトリにアクセスする複数の FTP サイトを設定することもできます。

[バインドと SSL 設定] ダイアログボックスで、関連パラメーターを構成し、[次へ] をクリックします。
次のパラメーターを構成します。
[ポート]: デフォルトのポート番号は 21 です。セキュリティ上の理由から、ポート 2222 が使用されます。
[SSL 証明書]: 作成した SSL 証明書を選択します。

認証と承認の情報を構成し、[完了] をクリックします。
次のパラメーターを構成します。
[認証]: [基本] を選択します。
[承認]: NAS へのアクセスを許可するユーザーを選択します。 この例では、iis_user が使用されます。
[権限]: ユーザーに読み取りと書き込みの権限を付与します。

FTP ファイアウォールを設定します。
ホームページで、[FTP ファイアウォールサポート] をダブルクリックし、[データチャネルポート範囲] を指定して、[適用] をクリックします。

[サーバー マネージャー] ウィンドウで、FTP サービスを再起動してポート範囲の構成を検証します。

ECS コンソールで、ECS インスタンスのセキュリティグループを構成して、FTP クライアントのアクセスを制限します。 詳細については、「セキュリティグループを作成する」をご参照ください。
FTP クライアント WinSCP を使用して FTP サイトにアクセスします。
WinSCP を開きます。
[はい] をクリックして、サーバー証明書を受け入れます。

プロトコルタイプ、ポート番号、およびログイン情報を設定します。

承認されたユーザー (iis_user) のパスワードを入力します。

サーバーがリモートディレクトリからデータを読み取り、リモートディレクトリにデータを書き込むことができるように、データ接続を確立します。

接続が作成されたら、ファイルをアップロードまたはダウンロードします。
