インターネットインフォメーションサービス (IIS) は、オンプレミスディスクのデータにアクセスするのと同じ方法で、サーバーメッセージブロック (SMB) ファイルシステムのデータにアクセスできます。 IISは、webサイトストレージとコンピューティングを分離するwebおよびFTPサービスを提供します。 このトピックでは、NASファイルシステムにアクセスするようにIISを構成する方法について説明します。
前提条件
SMBファイルシステムが作成され、ファイルシステムのマウントターゲットが作成されます。 詳細については、「ファイルシステムの作成」および「マウントターゲットの作成」をご参照ください。
WinSCPがインストールされています。
背景情報
Windowsサーバーは、Webサイトの構築に使用される一般的なプラットフォームです。 多数のユーザーがWindows Elastic Compute Service (ECS) インスタンスでWebサイトを構築し、Webサイトのコンテンツリソースを信頼性の高い高スループットのSMBファイルシステムに保存します。 さらに、コンピューティングおよびストレージリソースは、特定のビジネス要件に基づいて自動スケーリングをサポートします。
IISによって提供されるFTPサービスには、さまざまな要件が含まれています。 多数のWebサイト管理者が、FTPサービスを使用してWebサイトコンテンツをリモートで管理します。 一方、多数のAlibaba Cloudユーザーは、Windows ECSインスタンスのFTPサービスを使用して、WANとAlibaba Cloudの間でファイルを転送および共有したいと考えています。
この例では、IIS 7.5 (Windows Server 2008 R2) を使用して、NASを使用してWindows ECSインスタンスにwebサービスとFTPサービスの両方を提供する方法を説明します。 Server Load Balancer (SLB) を使用して、エラー耐性を提供するマルチサーバーWebサイトを構築することもできます。 詳細については、「SLBとは何ですか?」をご参照ください。
このトピックでは、セキュリティに関するいくつかの提案を提供しますが、完全なセキュリティソリューションではありません。 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) にインストールするロールサービスを選択します。
既定のサービスに加えて、[ASP] と [FTPサーバー] を選択してFTPサービスを有効にし、スクリプトを使用して動的webページを表示する必要があります。
[次へ] をクリックし、プロンプトに従ってインストールを完了します。
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ファイルシステムのデフォルトの共有ディレクトリです。 このディレクトリは変更できません。
SMBファイルシステムのmyshareディレクトリにwwwという名前のサブディレクトリを作成して、webサイトのwebページファイルを保存します。
この例では、静的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ページに表示されます。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に設定し、値dataを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ファイルなどのweb関連ファイルがIISによって頻繁にアクセスされる場合は、これらのファイルをローカルディスクに保存することをお勧めします。
上記の操作を実行しても書き込みに失敗した場合は、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 Firewall Support] ダイアログボックスをダブルクリックし、[Data Channel Port Range] を指定して、[Apply] をクリックします。
[サーバーマネージャー] ウィンドウで、FTPサービスを再起動してポート範囲の設定を検証します。
ECSコンソールで、ECSインスタンスのセキュリティグループを設定して、FTPクライアントのアクセスを制限します。 詳細については、「セキュリティグループの作成」をご参照ください。
FTPクライアントWinSCPを介してFTPサイトにアクセスします。
WinSCPを開きます。
[はい] をクリックして、サーバー証明書を受け入れます。
プロトコルタイプ、ポート番号、およびログオン情報を設定します。
許可されたユーザーのパスワード (iis_user) を入力します。
データ接続を確立して、サーバーがリモートディレクトリからデータを読み書きできるようにします。
接続が作成されたら、ファイルをアップロードおよびダウンロードできます。