IISとは?マイクロソフトのWindows Webサーバーとその代替サービス

Internet Information Services (IIS)は、Microsoft が提供する Windows 向け Web サーバー プラットフォームです。HTTP および HTTPS リクエストを受信し、Web サイト、Web アプリケーション、および API を提供します。「Windows Web」は、非公式に IIS を指す場合もありますが、IIS は Microsoft の独立したサーバー製品ではありません。管理者は、グラフィカルな IIS マネージャー、PowerShell、コマンドライン ツール、および構成ファイルを使用して IIS を管理できます。

Windows Serverでは、IISはWebサーバー(IIS)ロールとしてインストールされます。サポートされているWindowsクライアントエディションでは、オプション機能として有効にすることができ、通常はローカル開発またはテスト目的で使用されます。利用可能なコンポーネントはWindowsのエディションとバージョンによって異なるため、開発者用PCのセットアップは本番環境への展開ガイドとして扱うべきではありません。

接続ツリー、既定の Web サイトの選択、機能ビュー、およびアクション ペインを含む IIS マネージャー インターフェイスの図。
図解されたIISマネージャーのレイアウトは、管理者がサイトを選択し、共通設定にアクセスする場所を示しています。

IISが提供するもの

IISは、HTML、スタイルシート、スクリプト、画像などの静的ファイルを配信できます。また、コンテンツを動的に生成するアプリケーションにリクエストを渡すこともできます。IISは、認証、ログ記録、リクエストフィルタリング、圧縮、URL書き換えなどのタスクにオプションのモジュールを使用するため、管理者はアプリケーションに必要な機能だけを有効にできます。

IISは、MicrosoftのWebアプリケーションで一般的に使用されています。例えば、ASP.NET CoreはASP.NET Coreモジュールを介してIIS上で実行できます。Microsoftの最新の.NET Hosting Bundleのドキュメントには、その設定に必要なランタイムとモジュールが説明されています。他のテクノロジーは追加のハンドラーやモジュールを介して動作する場合がありますが、互換性、保守性、およびセキュリティサポートについては、特定のアプリケーションごとに確認する必要があります。

グラフィカルコンソールは、IISの主要な利便性の1つです。サイト、バインディング、アプリケーションプール、モジュール、セキュリティ設定、ログを1か所にまとめて管理できます。また、PowerShellを使用して同じ環境を自動化したり、ファイルを使用して構成したりすることもできるため、チームは複数のサーバー間で設定を再現しやすくなります。

IISがWebリクエストを処理する方法

最新のIISでは、Windows HTTPスタックのHTTP.sysがHTTPおよびHTTPSトラフィックを受信します。IISサービスとWindowsプロセスアクティベーションサービス(WAS)は、サーバーの設定に基づいてリクエストを適切なサイトとアプリケーションプールにルーティングします。その後、ワーカープロセスがリクエストを処理し、HTTPスタックを介して応答を返します。これらのコンポーネントとリクエストフローについては、 MicrosoftのIISアーキテクチャガイドで詳しく説明されています。

アプリケーションプールは、ワーカープロセス設定に基づいて1つ以上のWebアプリケーションをグループ化します。個別のプールはプロセス境界を作成し、あるアプリケーションの問題が別のプールのアプリケーションに直接影響を与えるのを防ぎます。ただし、ワークロードをサーバーの共有オペレーティングシステム、CPU、メモリ、ネットワーク容量から分離するわけではないため、リソースの使用状況とアクセス許可の監視は引き続き必要です。

ブラウザからHTTP.sys、アプリケーションプールワーカープロセスを経由してIISにリクエストが流れ、レスポンスとして返されるという概念的な流れ
概念的なリクエストフロー:HTTP.sysがブラウザからのリクエストを受け取り、IISがそれをアプリケーションプールにルーティングし、ワーカープロセスがレスポンスを返します。

IISはどのような場合に有効なのか?

  • アプリケーションが既にWindows Server、ASP.NET、Windows認証、またはIIS固有の構成に依存している場合、あるいはチームがWindowsサーバーの管理能力を備えている場合は、IISを選択してください。
  • Linuxを優先した環境構築が必要な場合、ファイルベースの設定を好む場合、または異なる動作モデルのリバースプロキシが必要な場合は、別のサーバーを検討してください。
  • フルサーバーのインストールが不要な場合、軽量なローカル開発やテストにはIIS Expressを使用してください。マイクロソフトは、これを一般的な本番環境向けホスティングの代替ではなく、開発向けバージョンと位置付けています。

IISは、サイトごとまたは訪問者ごとに別途購入するWebサーバーライセンスではなく、Windowsのコンポーネントです。ただし、Windows Serverのライセンスとアクセスルールが展開に適用される場合があります。Microsoftは、Windows Serverソフトウェアへのアクセスにはクライアントアクセスライセンス(CAL)が必要になる場合があると指摘しています。公式のCALガイダンスと、お客様のホスティング契約条件をご確認ください。

検討すべきIISの代替案

万能な「最適な」Webサーバーは存在しません。アプリケーションに必要なプラットフォーム、チームが好むサービス構成方法、そしてサーバーがアプリケーションを直接ホストする必要があるのか​​、それともトラフィックを別のプロセスにルーティングする必要があるのか​​を比較検討してください。

IISマネージャー、Apache HTTPサーバー構成ファイル、NGINXリバースプロキシ構成を比較する3つのソフトウェアパネル
概念的なインターフェースの比較:IISはWindowsコンソールを使用するのに対し、ApacheとNGINXは多くの場合、テキストファイルを通して設定されます。
オプション次のような場合に最適です考慮すべきトレードオフ
Apache HTTPサーバー豊富な設定オプションと充実したプラットフォームドキュメントを備えた、モジュール式のオープンソースサーバーをお探しですか?多数のモジュールとディレクティブにより柔軟性は高いものの、管理者は設定を理解し、維持管理する必要があります。詳細はApache HTTP Serverのドキュメントを参照してください。
NGINXアプリケーションサービスの前に、リバースプロキシまたはHTTPロードバランサーとしても機能するWebサーバーが必要です。テキストファイルで設定され、通常は動的なリクエストを別のアプリケーションプロセスにルーティングします。NGINXの公式ドキュメントを参照してください。
キャディ簡潔な設定と、対象となる公開ホスト名に対するHTTPS証明書の自動プロビジョニングおよび更新を希望する。自動HTTPSは、ドメイン、ネットワーク、およびデプロイメントの設定が正しいことに依存します。Caddyの公式自動HTTPSガイドを参照してください。

既存のWindowsアプリケーションの場合、サーバーがサポートされ、安全に保守されているのであれば、IISをそのまま使用するのが最善の選択肢となるでしょう。新規プロジェクトの場合は、アプリケーションのプラットフォーム要件と、チームが確実に運用できるオペレーティングツールに基づいて決定してください。稼働中のサイトをあるサーバーから別のサーバーに移行する前に、認証、URLルール、証明書、ログ記録、およびデプロイ動作をテストしてください。

結論

IISは、Microsoftが提供するWindows向けの構成可能なWebサーバーで、管理コンソールとアプリケーションプールモデルを備えており、多くのWindowsホスト型サイトやサービスに適しています。Apache HTTP Server、NGINX、Caddyは、プラットフォームや動作モデルがプロジェクトにより適している場合は、有力な代替選択肢となります。アプリケーションの互換性、管理上のニーズ、そして環境全体のライセンスとサポート要件に基づいて選択してください。

コメントを残す

Windows、Linux、macOS向けの最適なTFTPサーバー

Windows、Linux、macOS向けの最適なTFTPサーバー

SolarWinds、Tftpd64、tftpd-hpa、atftpd、haneWIN、dnsmasqなど、Windows、Linux、macOS向けの最適なTFTPサーバーを比較します。

デスクトップおよびWebデータベース向けのMicrosoft Accessの代替となるベスト5ツール

デスクトップおよびWebデータベース向けのMicrosoft Accessの代替となるベスト5ツール

デスクトップ、SQLite、ノーコード、ブラウザベースのデータベース作業に対応する、Microsoft Accessの代替となる5つのツールを、それぞれの長所、短所、最適な使用例とともに比較します。

オープンソースとクローズドソースの監視ツールの比較

オープンソースとクローズドソースの監視ツールの比較

オープンソースとクローズドソースの監視ツールを、コスト、サポート、カスタマイズ性、セキュリティ、そしてZabbix、Nagios、PRTGなどの最新オプションに基づいて比較します。

イングレスとエグレス:ネットワークにおける違いとは?

イングレスとエグレス:ネットワークにおける違いとは?

イングレスとエグレスが受信トラフィックと送信トラフィックをどのように表すのか、方向がネットワーク境界に依存する理由、帯域幅を監視し、危険なデータ転送を特定する方法を理解する。

集中ログ記録に最適な無料Syslogサーバー6選

集中ログ記録に最適な無料Syslogサーバー6選

WindowsとLinuxに対応した、無料のsyslogサーバーとコレクター6種類を比較します。GUIツール、オープンソースオプション、検索機能、アラート機能、セキュアな転送機能などが含まれています。

IISとは?マイクロソフトのWindows Webサーバーとその代替サービス

IISとは?マイクロソフトのWindows Webサーバーとその代替サービス

Microsoft IISの機能、リクエストパイプラインとアプリケーションプールの仕組み、そしてApache、NGINX、CaddyがWebサーバーのニーズにより適している場合について見ていきましょう。

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

Jitsi MeetブラウザのCPUスパイクを診断し、ビデオタイル、カメラエフェクト、ブラウザグラフィック、ホスト設定をチェックすることで、クライアントの負荷を軽減します。

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

Jitsi Videobridgeに内蔵されたPrometheusエンドポイントを使用して、Jitsi Videobridgeの状態、会議の負荷、トラフィックを追跡し、Grafanaでデータを探索およびグラフ化できます。

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker 用のカスタムドメインを、DNS、PUBLIC_URL、HTTPS、Let's Encrypt、ファイアウォールポート、NAT 設定、エンドツーエンド検証とともに構成します。

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。