サイトアイコン 協栄情報ブログ

Windowsを用いたWebサーバー構築のハンズオン


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

どうもタクエです。
今回のハンズオンでは、windows2022をインストールしたインスタンスにIISをインストールしてWebサーバーとして動作させる手順を紹介していきます。

目的

事前準備

今回使用するVPC、サブネット、ルートテーブル、インターネットゲートウェイについては作成手順は省略します。

構成図

構築手順

セキュリティグループの作成

EC2のセキュリティグループを作成します。

名前 インバウンドルール ソース
takue_SG_EC2_win22 RDP, HTTP, ICMPv4 0.0.0.0/0

WindowsではRDPを使用してリモート接続を行うため、RDPを許可しています。
IISで立ち上げたWebサイトを確認するために、HTTPを許可しています。
疎通確認用にPingを使用するため、ICMPを許可しています。


Windowsサーバーの構築

それでは、インスタンスの作成を始めていきましょう。

今回は使用するOSとして「Microsoft Windows Server 2022 Base」を選択します。

Baseは普段から使っているようなGUI形式のOSになります。
※その他で選択できるCore BaseはWindows ServerのCore(中核)部分のみが提供されるCLI形式になります。
GUIで操作するwindowsだとインスタンスタイプによって動作が重くなってしまうので、インスタンスタイプは「t3.medium」以上を推奨します。
OS、インスタンスタイプ以降の設定については、デフォルトのままで作成していきます。(キーペア、ネットワーク設定は事前に作成したものを使用しています)

これでインスタンスの準備は完了です。


Windowsサーバーの設定・疎通確認

RDPでリモート接続

各種設定を行うために、まずは起動したインスタンスにリモートで接続します。
WindowsではSSHではなく、RDPを用いてリモート接続します。接続の際には、RDPファイルとパスワードが必要になるので取得していきます。
作成したインスタンスから、接続をクリックします。タブからRDPクライアントをクリックします。

真ん中にある”リモートデスクトップファイルのダウンロード”をクリックすると、RDP接続用のファイルがダウンロードされます。
※このファイルはパブリックIPアドレスに接続をするため、インスタンスの再起動後は再度ダウンロードが必要になります。

次に、ログインパスワードを取得します。RDPクライアントの画面から”パスワードを取得”をクリックします。

画面が切り替わるので、”プライベートキーファイルのアップロード”をクリックします。

パスワード確認のためには、プライベートキーファイルが必要になります。
インスタンス作成時に設定したキーペアをアップロードします。アップロード後、パスワードの複合化をクリックします。

RDPクライアントの画面に戻ると、パスワードが表示されています。接続する際に使用するのでコピーしておいてください。

先ほどダウンロードしたリモートデスクトップファイルを開いてリモート接続していきます。
接続をクリックして、先ほどコピーしたパスワードを入力します。

エラーとでますが、そのまま「はい(Y)」で問題ありません。

Windowsの画面が出てきたら、リモート接続は無事完了です。次の項目からは接続したリモートデスクトップ上で設定を行っていきます。

外部ネットワークへの接続確認

Webサーバー内から外部インターネットへのアクセスを確認していきます。
デフォルトでインストールされているMicrosoft Edgeを起動して、適当なwebサイトを開いてみてください。問題なく表示されれば完了です。

ファイアウォールの設定

今回は疎通確認のためPingの送信テストを行いますが、Windowsはデフォルトの状態ではICMPの通信を拒否しているので、許可するためにファイアウォール設定を追加します。
ファイアウォールの設定画面を開きます。
Server Manager」→「Local Server」→「Tools」→「Windows Defender Firewall With Advanced Security
※Server Managerが開かれていない場合、Windowsボタンを押してスタート画面からServer Managerを開きます。

Firewallの設定画面が開けたら、左タブの「Inbound Rules」から「New Rule」でインバウンドルールを作成していきます。
今回はPingの疎通確認のみで細かな設定は行わないので基本的にはデフォルトの設定のまま進めていきます。

今回はICMPのみを許可するインバウンドルールを作成したいので、プロトコルを指定できる「Custom」を選択します。次へ進みます。

All programs」を選択します。すべてのプログラムに対してルールを適用します。

Protocol typeから「ICMPv4」を選択します。次へ進みます。

今回はIPアドレスの指定はせずに、「Any IP address」を選択します。次へ進みます。

Allow the connection」を選択します。次へ進みます。

ルールを適用するタイミングはパブリックにチェックがついていれば外部ネットワークから疎通確認ができるので、デフォルトのまま次へ。

最後にルールの名前を付けて完了です。

インバウンドルールの画面を確認すると、先ほど作成したルールが確認できます。


Ping疎通確認

ローカルからWebサーバーへの疎通確認を行います。ローカルからWebサーバー向けにpingを送信します。
疎通確認ができたら、ファイアウォール設定も問題なく完了です。

IISのインストール

次にWebサイトを構築するために必要なIISをインストールしていきます。IISはWindowsの役割と機能からインストールすることができます。

Server Managerの「Manage」から「Add Roles and Features」をクリックします。

この設定の説明です。次へ進みます。

役割、機能のインストールなので「Role-based or feature-based installation」のまま次へ進みます。

今回はWindowsサーバーは1つなのでデフォルトのまま次へ進みます。

今回インストールする「Web Server(IIS)」にチェックを入れます。

確認画面が出てきますので、「Add Features」で機能を追加します。

IISにチェックが入っているか確認して次に進みます。

確認画面がいくつか出てくるため確認して次に進みます。

最後に「Install」を選択してインストールを待ちます。

インストールが完了したら、ブラウザからwebサイトにアクセスしてみます。URLでlocalhostを入力して、「Internet Information Services」の画面が表示されれば、問題なくインストールができています。

Webサイトの作成

Webサーバーにデフォルトとなるファイルを配置します。ドキュメントルートはIISのマネジメントツールで確認することができます。Windowsの検索機能からIISマネジメントツールを探してみてください。「IIS Manager

マネジメントツールを開いたら左タブから自サーバーのファイルを展開します。

Default Web site」で右クリックをして、「Manage Website」から「Advanced Settings」を開きます。

この画面からドキュメントルートはドライブ内の\inetpub\wwwrootということがわかります。そのフォルダに今回表示するWebサイトを作成していきます。

ここでもう1つ、デフォルトで配置するファイル名を確認しておきます。IISでは、ファイル名指定なしで開けるファイルがいくつか用意されています。今回はそのファイル名で作成していきます。IISマネージャーで「Default Document」を開いて内容を確認します。

IISではデフォルトで返すファイル名ごとに優先度がつけられており、今回は優先度の高い「Default.htm」ファイルを作成していきます。

先ほど確認したドキュメントルートに移動します。2つのファイルがありますが、このファイルは、IISのデフォルトサイトを表示するためのファイルになっています。

ドキュメントルートに「Default.htm」を作成します。作成したファイルをテキストエディタで開いて中身を書いていきます。中身は"hello world"としておきます。

Webサイトの確認

それでは、作成したWebサイトの確認を行います。ローカルからwebサーバーのパブリックIPアドレスにアクセスします。

作成したWebサイトで「Hello world」が確認できました。

おわりに

今回は、WindowsにIISをインストールしてwebサーバーの構築を行いました。
今回は簡単な設定とWebサイト構築でしたが、Windows Serverの設定内容やGUIで確認できる部分がいくつもあるので、Server Managerの設定を確認してみてください。

また、今回はデフォルトのまま英語で進めましたが、設定から日本語パックをインストールして日本語に変更可能なのでそちらも試してみてください。

英語と日本語の両方で名前を知っておくとエラーの調査や、重要な情報取得など、何かしら役に立つ日が来るかもしれません。。

モバイルバージョンを終了