IISで始めるWebサーバー構築と運用の基本ガイド

目次

はじめに

本ドキュメントの目的

本書は、Windows環境でIIS(Internet Information Services)を使い、実際にWebサーバーを構築・運用するための基本と手順をわかりやすくまとめたガイドです。初心者でもつまずきにくいように、画面操作や設定の流れを重視して解説します。

対象読者

  • WindowsサーバーでWeb公開を始めたい方
  • 開発者でローカルや社内向けに簡単なホスティングを行う方
  • 基本設定や運用のポイントを知りたいIT担当者

本書で扱う内容(全章の概略)

  • IISの特徴と役割
  • インストールからサイト登録、公開までの手順
  • 認証やセキュリティ、運用の注意点
  • ApacheやNginxとの比較と選定の視点
  • よくあるトラブル対処と運用のコツ
  • 実運用で役立つ応用例

前提と準備

本書はWindows(サーバーまたはクライアント)で作業する前提です。管理者権限が必要な操作がありますので、作業前に権限の確認をお願いします。

読み方のおすすめ

はじめてなら章順に読み進めることをおすすめします。既に慣れている部分があれば、該当章だけを参照して実作業に移ってください。

IISとは何か?Webサーバーとしての特徴

概要

IIS(Internet Information Services)はMicrosoft製のWebサーバーです。主にWindows ServerやWindows OS上で動作し、企業の業務システムや社内Web、.NET系アプリの公開に多く使われます。管理画面が使いやすく、Windows環境での運用に向きます。

主な特徴

  • Windowsとの統合: Active Directoryによる認証やグループポリシーと連携できます。例:社内アプリにWindowsログオンで自動ログインを設定可能です。
  • GUIによる管理: IISマネージャーが直感的で、初心者でもサイト追加や設定変更が行いやすいです。PowerShellで自動化もできます。
  • .NETとの親和性: ASP.NETや.NET Coreアプリをネイティブに動かしやすく、開発→公開の手順が短くなります。
  • セキュリティと隔離: アプリケーションプールでプロセスを分け、障害や脆弱性の影響を局所化できます。リクエストフィルタリングやSSL設定も標準で整っています。

利用シーンと留意点

企業内の業務系システム、社内ポータル、ファイル配布やAPI公開などでよく使います。Windows以外の環境では選択肢が少ない点に注意してください。また、細かい最適化や拡張は設定やモジュール追加で対応します。

IISによるWebサーバー構築の全体フロー

概要

IISでWebサーバーを構築する流れを段階ごとに示します。手順を順に追えば、基本的な公開から運用まで対応できます。

1. 設計(サーバ名・IP・ドメイン)

サーバ名や固定IP、公開ドメインを決めます。例:社内向けはホスト名のみ、公開サイトはFQDN(www.example.com)を使います。

2. 準備(OS・ネットワーク)

Windows Serverのバージョンを確認し、必要な更新を適用します。ファイアウォールやルーターでポート80/443を開けます。

3. IISのインストール

役割と機能からIISを追加します。必要な機能(静的ファイル、ASP.NET、URL Rewriteなど)を選びます。

4. Webサイトの登録・設定

アプリケーションプールを作り、サイトの物理パスとバインド(IP/ポート/ホスト名)を設定します。書き込み権限やログ出力も設定します。

5. DNSとSSL証明書

ドメインのDNSをサーバーIPに向けます。SSLは商用証明書かLet’s Encryptで導入し、バインドに証明書を割り当てます。

6. 認証・アクセス権限

NTFS権限やIISの認証方式(匿名、Windows認証、フォーム認証など)を設定します。最小権限の原則でユーザーを設定します。

7. 動作確認と運用

ブラウザでアクセス確認、ログ確認、負荷やセキュリティの監視を始めます。定期バックアップと更新をスケジュールします。

IISのインストール手順(Windows Server例)

準備

IISを導入するサーバーで管理者権限のアカウントを用意します。可能であればサーバー名の変更はインストール前に行い、再起動して反映させてください。

サーバーマネージャー(GUI)での手順

  1. サーバーマネージャーを開き「役割と機能の追加」を選択します。
  2. ウィザードで対象のサーバーを選び、「役割」一覧から「Web サーバー(IIS)」にチェックを入れます。
  3. 役割サービスの選択画面で必要な機能(例:Windows 認証、ASP.NET、管理ツール)をチェックします。
  4. インストールを実行し、完了したらサーバーを再起動するよう指示があれば再起動します。

PowerShellでの手順(例)

管理者権限のPowerShellで次を実行します。
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
必要な認証や拡張機能は個別に指定できます(例:Web-Windows-Auth)。

インストール時に選ぶ主な項目(わかりやすく)

  • 管理ツール:IIS管理コンソールを使うなら必須です。
  • 認証方式:社内向けならWindows認証、公開向けは匿名アクセスが基本です。
  • ASP.NETなど:アプリを使う場合に追加します。

インストール後の確認と初期設定

  • ブラウザで http://localhost にアクセスし既定ページが表示されるか確認します。
  • IISマネージャーでサイトやアプリプールが起動しているか確認します。
  • 公開フォルダーに対してIIS_IUSRSに読み書き権限を設定します。
  • ファイアウォールでHTTP/HTTPSポートを許可します。

以上がWindows Server上での基本的なIISインストール手順です。用途に合わせて役割サービスを追加し、検証を行ってください。

IISでWebサイトを登録・公開する

前提

IISマネージャーが起動できること、公開するファイルを置くフォルダーがあることを前提に説明します。

手順(簡潔)

  1. IISマネージャーを起動します。
  2. 左ペインで「サイト」を右クリックし「Webサイトの追加」を選びます。
  3. 必要事項を入力して「OK」を押します。

必要な設定項目の説明

  • サイト名:管理用の名前です。例:MySite
  • 物理パス:HTMLや画像を置くフォルダー(例:C:\inetpub\wwwroot\mysite)。フォルダーに読み取り権限があることを確認します。
  • IPアドレス:特定IPで公開する場合は指定、通常は「すべて未割り当て」を選びます。
  • ポート:通常は80(HTTP)です。別ポートで公開する場合は指定します。
  • ホスト名(ホストヘッダー):複数サイトを同じIPで運用する場合に使います。例:www.example.local

公開後の確認

  • ブラウザでhttp://ホスト名/またはhttp://IP:ポート/にアクセスして確認します。
  • サイトを停止・開始するにはIISマネージャーのサイト一覧から操作します。

よくある問題と対処

  • 403エラー:フォルダーのアクセス権(IUSR, IIS_IUSRS)を確認します。
  • ポート競合:別アプリが同じポートを使っていないか確認します。
  • ファイアウォール:サーバーのポートが許可されているか確認します。

補足(簡単な運用ポイント)

  • アプリケーションプールの選定で実行アカウントや.NETバージョンを合わせます。
  • 仮想ディレクトリを使うと物理パスを柔軟に分けられます。

以上が基本的な登録・公開の流れです。各設定は環境に合わせて調整してください。

認証・セキュリティ・運用のポイント

概要

IISは複数の認証方式やSSL/TLS対応、細かいアクセス制御を備えます。ここでは実務で押さえておくべき点を具体例を交えて説明します。

認証の種類と使いどころ

  • 匿名認証: パブリックなサイト向け。ログイン不要な公開ページに使います。
  • 基本認証: ユーザー名/パスワードを送ります。必ずHTTPSと組み合わせてください。
  • 統合Windows認証: Active Directoryと連携する社内システムに最適です。ユーザー管理が楽になります。
  • クライアント証明書: 高い認証強度が必要な場面で有効です。

SSL/TLSとHTTPSの設定

サイトのバインドで証明書を登録し、「要求SSL」を設定します。HTTPからHTTPSへリダイレクトするルールを追加すると安全です。証明書の有効期限は自動監視すると運用負荷が下がります。

アクセス制御とファイル権限

  • NTFSの最小権限でファイルを保護します。
  • ディレクトリ閲覧は無効にし、既定ドキュメントを適切に設定します。
  • Request FilteringやURL Authorizationで不要なリクエストを遮断します。

運用のポイント

  • ログを有効にし、定期的に確認します。
  • アプリプールはサイトごとに分け、最小権限のアカウントで実行します。
  • 定期バックアップ、パッチ適用、ステージング環境での検証を行ってください。

具体例:社内ポータルは統合Windows認証+HTTPS、外部公開は匿名+HTTPS+WAFが安全です。

IISと他Webサーバー(Apache/Nginx)との比較・選定ポイント

概要

IISはMicrosoft公式のサポートやWindowsとの親和性が高く、.NET系アプリやActive Directory連携が得意です。ApacheやNginxはLinuxで広く使われ、オープンソース志向の構成に向きます。

比較の主なポイント

  • OS適合性:IISはWindows専用です。Linux環境ならNginx/Apacheが自然です。
  • フレームワーク連携:ASP.NETやWindows認証を使う場合はIISが設定しやすいです。
  • パフォーマンス用途:静的配信やリバースプロキシはNginxが高速です。動的処理はサーバー設定よりアプリ設計が重要です。
  • 設定と運用:IISはGUIやPowerShellで管理しやすく、Windows管理者に優しいです。Apache/Nginxは設定ファイル中心で柔軟性が高いです。
  • サポートとコスト:IISは公式サポート(有償含む)を受けやすく、OSSはコミュニティや商用サポートを組み合わせます。

選定の実例

  • 社内業務アプリ(ASP.NET、Windows認証):IISを推奨。
  • 静的サイトやAPIゲートウエイ:Nginxがコストと性能で有利。
  • 複雑なモジュールや従来設定が多い場合:Apacheが適することがあります。

決め方の手順(実務向け)

  1. 要件を明確にする(OS、言語、認証、負荷)。
  2. 優先順位を付けて小規模で試験運用する。1〜2週間の負荷試験を行ってください。
  3. 運用体制(保守者のスキル、サポート要否)を考慮して最終決定します。

用途や運用方針を軸に選ぶと、長期的な安定運用につながります。

トラブルシューティング・運用のヒント

よくある原因

  • 権限不足:ファイルやフォルダのNTFS権限が不適切で読み込めない。例:IIS_IUSRSやアプリプールIDに読み取り権限がない。
  • ファイル配置ミス:ルートや既定ドキュメントの位置が違う。index.htmlやweb.configの場所を確認します。
  • ポート競合・バインド設定:別プロセスが80/443を使っている、ホストヘッダが誤っている。
  • ファイアウォール:受信ルールでポートが閉じている。
  • 設定エラー:web.configやMIME設定、リクエストフィルタでブロックされる。

ログと診断方法

  • IISログ:%SystemDrive%\inetpub\logs\LogFiles を確認。アクセス状況とステータスコードを見ます。
  • Failed Request Tracing(FREB):特定の失敗を詳細に追跡できます。
  • Windowsイベントビューア:アプリケーションやシステムログでエラーの痕跡を探します。
  • コマンド類:netstat -ano(ポート確認)、Get-NetTCPConnection、Test-NetConnection、telnetで接続確認。

具体的な対処手順(頻出ケース)

  1. 403/401系:NTFS権限と認証設定、既定ドキュメントを順に確認します。
  2. 500系:IISログとFREBで詳細を確認し、web.configの構文エラーを修正します。
  3. ポートが取れない:netstatでPIDを確認し、必要なら該当プロセスを停止します。
  4. SSL問題:証明書のバインドとキーストアの有効性を確かめます。

運用のヒント

  • 定期バックアップ:web.config・サイトファイル・SSL証明書を定期的に保存します。
  • パッチ適用と再起動計画:更新後にサービス停止が必要ならスケジュールを決めます。
  • ログの保管とローテーション:ディスク満杯を防ぎます。
  • アクセス制御の見直し:不要なアカウントやルールを定期的に削除します。
  • 採用例:ステージングで先に動作確認してから本番へ反映すると安全です。

運用時は小さな変更でもログを残し、問題発生時に戻せる手順を用意しておくことが重要です。

IISを使ったWebサーバー構築の応用例

概要

IISは社内ポータルや複数サイトの同居、HTTPS化、ロードバランサー連携など幅広く応用できます。ここでは具体例を挙げて、運用の工夫を分かりやすく説明します。

Active Directory連携による社内ポータル

社内向けサイトでWindows認証を使うと、ユーザーは社内アカウントでそのままログインできます。例:従業員向けポータルで出勤管理や文書共有を実現します。内部CAで証明書を配布すれば安全に運用できます。

複数Webサイトの運用

1台のIISで複数ドメインを運用するにはホスト名バインドを使います。例:www.example.comとapi.example.comを同一サーバで公開するケースです。バーチャルディレクトリでコンテンツを分けると管理が楽になります。

HTTPS化と証明書管理

証明書は公開CAや内部CAから取得します。自動更新が必要ならスクリプトやACMEクライアントを利用します。証明書のバインドを忘れないようにしてください。

ロードバランサーとの連携

MicrosoftのARRや外部ロードバランサーで負荷分散します。ヘルスチェックを設定して、異常なノードを自動的に外すようにします。セッション保持が必要ならクッキーやステートレス設計を検討します。

PowerShellによる一括管理とリモート管理

サイト作成・証明書バインド・ログ収集などはPowerShellで自動化できます。遠隔地のサーバはリモート管理機能を使い、安全に運用します。

実用例

・社内ポータル:Windows認証+内部CA
・顧客向けサービス:複数ホスト名+HTTPS+ARRで冗長化

各機能は段階的に導入すると失敗が少なくなります。必要であれば具体的な設定手順やスクリプト例もお作りします。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次