この文書では、Windows で SMB プロトコル (Alibaba Cloud NAS でサポートされている) および ECS インスタンスを使用して、Windows の組み込みインターネットインフォメーションサービス (IIS) を使ってWeb および FTPサービスを有効にする方法について説明します。
プロダクトの実装
- Windows Vista / Windows Server 2008 またはそれ以降の Windows バージョンを使用する必要があります。 それ以前のバージョン (Windows XP や Windows Server 2003 など) はサポートされていません。 Windows 2008 R2 以降を使用することを強く推奨します。
- Windows アプリケーションが変更を必要とせずに直接NAS にアクセスできるように、SMB ファイルシステムの使用を優先します。
基本設定
例として IIS 7.5 (Windows Server 2008 R2) を使用して、Alibaba Cloud NAS を使って Alibaba Cloud 上でシングルノードの Web および FTP サービスを提供する方法を以下に説明します。 他のバージョンの Windows Server (Windows Server 2008、Windows Server 2012 など) のインストールと展開でも、同様のセットアップが実装されています。 Windows Server 2016 の場合、設定に関する主な違いは次のセクションで詳しく説明します。 さらに、Alibaba Cloud Server Load Balancer をデプロイして、エラー耐性と回復力を備えたマルチサーバーノード Web サイトを作成することもできます。 詳細は、What is Server Load Balancer を参照してください。
データと Web サイトサービスのセキュリティを維持するために必要なすべての措置を講じるようにしてください。 Alibaba Cloud は最高のデータセキュリティ基準を維持するよう努めていますが、発生する可能性のあるすべての攻撃に対する保護については責任を負いません。 リソースを完全に保護するために、ファイアウォールとECS インスタンスセキュリティグループの設定、利用可能になったときに更新された OS パッチのインストールなど、包括的なセキュリティ対策を講じることを推奨します。
IIS をインストールする
例として Windows Server 2008 R2 を使用して、サーバーコンソールから IIS のロールを追加し、IIS をインストールする手順を以下に示します。WindowsOS への IIS のインストールの詳細な手順については、Microsoft のオンラインドキュメントを参照してください。
- IIS 7 のインストールと展開
- IIS および ASP.NET モジュールをインストールする(Windows Server 2012および2012 R2)
- サーバーコンソールから Web サーバー(IIS) のロールを選択します。
- Web サーバーのロールサービスを選択します。 この例では、基本的な HTTP 機能に加えて、FTP サービスと拡張機能、ASP サービス、およびその他のサービスが選択されています。 これらは FTP over SSL サービスおよび動的 Web ページスクリプトに使用されます。 次に、 [次へ] をクリックします。
- [インストール] をクリックします。
NAS に SMB ファイルシステムを作成する
Web サービスリソースと設定ファイルのストレージをAlibaba Cloud NAS SMB 共有で集中管理できます。 SMB をサポートする Alibaba Cloud NAS ファイルシステムを作成した後、現在の Web サーバーが SMB 共有の対応するファイルシステムへの読み取りおよび書き込みアクセスを持つように権限グループを設定します。 NAS ファイルシステムと Web サーバーを接続するには、VPC またはクラシックネットワークを使用できます。
SMB ファイルシステムを作成したら、ファイルシステムのデフォルト共有 "myshare"にディレクトリを作成します。たとえば、 "www"
を使って、ウェブサイトのファイルを保存します。 これ以降の例では、静的ファイル "index.html" と動的 ASP スクリプトファイル "test.asp" が "myshare \ www"の下に作成されます。 前者は "Hello World"
を表示し、後者は現在時刻を動的に取得して表示します。
-
"index.html" ファイルは次のとおりです。
<HTML> <HEAD> <TITLE>Hello World in HTML</TITLE> </HEAD> <BODY> <CENTER><H1>Hello World! </H1></CENTER> </BODY> </HTML>
-
"test.asp" ファイルは次のとおりです。
<HTML> <BODY> This page was last refreshed on <%= Now() %>. </BODY> </HTML>
次の図に示すように、現在の ECS インスタンスのユーザーは、Windows ファイルマネージャを使って SMB 共有へのアクセスを確認できます。 この例では:
- "\\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare\www" は、ウェブサイトリソースの物理パスです。
- "\\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare" は、前述のステップで作成した Alibaba Cloud NAS SMB 共有です。
セキュリティと管理のために、ユーザー "iis_user" がシステムに追加されています。 次の例では、FTP サービスをプロビジョニングするとき、または Windows Server 2016 を実行するときに、データアクセスは管理者ではなくこのユーザーで行います。
IIS Web サービスを設定する
UNC アドレス "\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare\www" を Web サイトリソースの物理パスとして入力します。デフォルトでは、IIS ではユーザーアカウントと IIS アプリケーションのユーザーグループを使ってデータへアクセスします。 現在のセッション中に、Windows ユーザーがネットワークドライブ (Z: など) をマップすると、そのネットワークドライブを直接使用できないか、またはシステムがアクセスエラーを返します。
さらに、サーバーユーザーは Alibaba Cloud セキュリティグループと Windows ファイアウォールを設定して Web アクセスを制限することができます。
Windows Server 2016
Windows Server 2016 ユーザーの場合、マイクロソフトが IIS の製品サイクルにいくつかの変更を加えたため、IIS が Alibaba Cloud NAS SMB サービスと正しく連携するように、次の 2 つの追加設定を実装する必要があります。
-
SMB クライアントの次のレジストリキーを変更して、匿名ユーザーとしての SMB 共有へのアクセスをサポートします。 レジストリエディタ (regedit) を実行してレジストリを編集できます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth
手順は次のとおりです。
- レジストリエディタを起動し、
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parametersを探します。右クリックして "New(N) > DWORD (32) Value(D)"を選択します。
-
"AllowInsecureGuestAuth"を編集して、値を「1」に設定します。
- レジストリエディタを起動し、
-
Alibaba Cloud NAS の Web サイトリソースにアクセスするには、IIS Web サイト設定でローカルユーザーを指定します。以下の図に具体的な手順を示します。 ウェブサイトの [基本設定] を選択し、[別名で接続] をクリックして、指定したユーザーを設定できます。 この例では、ユーザー "iis_user" が選択されています。
IIS FTP サービスを設定する
FTP を使ってファイルを共有したり Web サイトのコンテンツを公開したりできるようにするには、IIS を使ってFTP over SSL サービス (FTP-SSL、S-FTP、またはFTP Secure とも呼ばれる) を設定する必要があります。
- SSL 証明書をインストールする
- IIS Server セクションで、[サーバー証明書]を選択して、サーバー証明書を適用し管理します。
- サーバー証明書の名前を指定する
- 成功すると、証明書は次のように表示されます。
- FTP サイトを設定する
-
IIS Website セクションで、[FTP サイトの追加] を選択します。
Web サービスと同様に、物理パスは UNC 形式の SMB 共有パスです。 この例では、Web サービスの"www" ディレクトリを使用します。 ニーズにあわせて、"myshare" の他のディレクトリを選択できます。または、複数の FTP サイトを設定し、異なるポートから異なるディレクトリへアクセスします。 -
FTP サービスを提供する IP アドレスをバインドし、ポート番号を割り当てます。
セキュリティのために、この例では FTP 制御情報チャネルを提供するために標準ポート "21" ではなくポート "2222" を使用します。 [このFTP サイトへの接続に SSL 証明書を要求する] を選択し、以前に作成した SSL 証明書を使用することを推奨します。 -
ID 認証方法を [基本]に指定し、読み取りおよび書き込み権限を"iis_user" へ割り当てます。 必要に応じて、この段階で複数の許可ユーザーを選択できます。
-
セキュリティのために、この例では IIS コンソールでサーバーレベルの FTP ファイアウォールサポートを有効にすることで FTP データチャンネルのポート範囲を制限します。 これを行うには、次のように [適用] をクリックします。
-
サーバーコンソールで FTP サービスを再起動して、ポート範囲をただちに有効にします。
-
セキュリティのために、この例では Alibaba Cloud Security Group 設定を次のように変更することで FTP クライアントアクセスを制限します。
FTP 制御およびデータポート範囲にアクセスするためのクライアント IP アドレスを 1 つだけ許可します。 必要に応じて、複数の IP アドレス、または 1 つ以上のCIDR ブロックを認証することもできます。 -
次の図は、FTP over SSL を選択して FTP クライアントWinSCP を使って FTP サイトにアクセスする方法を示しています。
- サーバー証明書を受け入れます。 このメッセージは、初めて FTP サイトに接続したときにのみ表示されます。
- プロトコルの種類、ポート番号、およびログイン情報を設定します。
-
[ログイン] をクリックします。 IIS サーバー上の許可ユーザーのパスワードを入力するように求められます。
-
接続が確立します。 これにはしばらく時間がかかります。
成功すると、ファイルをアップロードおよびダウンロードできることを示す次のメッセージが表示されます。
-