이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.22 10:05
마이크로소프트 IIS는 마이크로소프트가 개발한 웹 서버 소프트웨어이다. 이 소프트웨어는 마이크로소프트 윈도우 운영 체제 상에서 동작하도록 설계되어 있으며, 윈도우 서버 제품군에 기본적으로 포함되어 제공된다. 1995년 5월 30일에 처음 출시된 이후, ASP.NET, 웹소켓, HTTP/2 등 현대적인 웹 기술을 지속적으로 지원하며 발전해왔다.
IIS는 정적 HTML 페이지 제공부터 동적 웹 애플리케이션 호스팅에 이르기까지 다양한 기능을 제공한다. 특히 마이크로소프트의 .NET 프레임워크와 긴밀하게 통합되어 ASP.NET 기반 애플리케이션을 실행하는 데 최적화되어 있다. 또한 FTP 서버, SMTP 서버, 미디어 스트리밍 서비스 등 추가적인 인터넷 서비스를 구축하는 데에도 널리 사용된다.
마이크로소프트 IIS는 1995년 5월 30일, 마이크로소프트 윈도우 NT 3.51 서비스 팩 3에 포함되어 처음 출시되었다. 당시 월드 와이드 웹의 초기 성장기에 맞춰, 마이크로소프트가 유닉스 계열의 아파치 HTTP 서버와 같은 경쟁 제품에 대응하기 위해 도입한 윈도우 기반의 웹 서버 솔루션이었다. 초기 버전은 기본적인 HTTP 서비스 기능을 제공하는 데 중점을 두었다.
IIS 1.0의 등장 이후, 마이크로소프트는 인터넷 정보 서비스를 윈도우 서버 운영 체제의 핵심 구성 요소로 빠르게 발전시켰다. 특히 액티브 서버 페이지 기술을 도입한 IIS 3.0은 윈도우 플랫폼에서 동적 웹 페이지 개발을 크게 촉진하는 계기가 되었다. 이후 버전에서는 보안, 관리 도구, 그리고 .NET 프레임워크와의 긴밀한 통합이 지속적으로 강화되었다.
주요 버전별 발전 과정은 다음과 같다.
버전 | 출시 연도 | 주요 특징 및 포함된 윈도우 버전 |
|---|---|---|
IIS 1.0 | 1995 | 윈도우 NT 3.51에 포함된 최초 버전. |
IIS 3.0 | 1997 | ASP 도입. 윈도우 NT 4.0 옵션 팩에 포함. |
IIS 5.0 | 2000 | 윈도우 2000 서버에 기본 포함. 보안 및 관리 기능 향상. |
IIS 6.0 | 2003 | 윈도우 서버 2003에 포함. Worker Process Isolation Mode 도입으로 안정성 대폭 향상. |
IIS 7.0 | 2008 | 모듈식 아키텍처로 완전히 재설계. 윈도우 서버 2008 및 윈도우 비스타에 포함. |
IIS 8.5 | 2013 | 윈도우 서버 2012 R2에 포함. SNI 지원 강화. |
IIS 10.0 | 2016 | 윈도우 서버 2016 및 이후 버전에 포함. HTTP/2 지원. |
현재 IIS는 윈도우 서버 제품군의 표준 웹 서버로서, 인트라넷부터 대규모 인터넷 서비스까지 다양한 환경에서 활용되고 있다. 지속적인 업데이트를 통해 클라우드 컴퓨팅 환경과 컨테이너 기술에 대한 지원도 확대하고 있다.
Microsoft IIS는 마이크로소프트 윈도우 서버 운영 체제에 최적화된 다양한 웹 서버 기능을 제공한다. 핵심 기능으로는 HTTP 및 HTTPS를 통한 정적 콘텐츠 서비스, ASP.NET 및 PHP와 같은 서버 측 스크립트 언어를 실행하는 애플리케이션 서버 역할, 그리고 FTP 서버, SMTP 서버를 포함한 통합 서비스 지원이 있다. 이는 단일 플랫폼에서 웹 사이트 호스팅, 파일 전송, 이메일 전송을 관리할 수 있는 통합 환경을 구성한다.
IIS는 확장 가능한 모듈식 아키텍처를 기반으로 하여, 필요에 따라 기능을 추가하거나 제거할 수 있다. 관리 편의성을 위한 GUI 기반의 IIS 관리자 도구를 제공하며, PowerShell을 통한 스크립트 기반 자동화 관리도 지원한다. 또한 웹 배포 도구를 활용한 애플리케이션 배포, 부하 분산을 위한 응용 프로그램 요청 라우팅 모듈, 그리고 웹 소켓 프로토콜 지원 등 현대적인 웹 호스팅 요구사항을 충족시킨다.
보안 및 인증 측면에서도 다양한 기능을 포함한다. 윈도우 인증, 기본 인증, 클라이언트 인증서 매핑 등 다중 인증 방식을 지원하며, 요청 필터링과 IP 주소 및 도메인 제한을 통한 접근 제어가 가능하다. SSL/TLS 설정을 통한 암호화 통신 구성과 함께, 로그 파일 분석을 위한 중앙화된 로깅 기능을 제공하여 보안 감사 및 문제 해결에 용이하다.
IIS의 아키텍처는 윈도우 서버 운영 체제의 핵심 서브시스템과 긴밀하게 통합되어 설계되었다. 이는 유닉스 계열의 아파치 HTTP 서버와 같은 독립 실행형 웹 서버와는 차별화되는 특징이다. IIS는 HTTP.sys 커널 모드 드라이버, WAS 프로세스 관리자, 애플리케이션 풀, 그리고 ISAPI 확장 및 필터와 같은 구성 요소로 이루어진 모듈식 구조를 가진다.
핵심 구성 요소로는 HTTP 요청을 수신하는 커널 모드의 HTTP.sys와, 애플리케이션 풀을 관리하며 워커 프로세스를 생성하는 WAS가 있다. 각 애플리케이션 풀은 하나 이상의 웹 애플리케이션을 호스팅하며, 독립된 w3wp.exe 프로세스로 실행되어 애플리케이션 간의 격리와 안정성을 제공한다. 이 아키텍처는 하나의 사이트나 애플리케이션에 문제가 발생하더라도 다른 풀에 영향을 미치지 않도록 한다.
기능 확장은 주로 ISAPI 필터와 ISAPI 확장, 그리고 이후 등장한 ASP.NET 통합 파이프라인을 통해 이루어진다. CGI나 FastCGI도 지원하여 PHP와 같은 비마이크로소프트 기술 스택도 실행할 수 있다. 이러한 모듈식 설계는 필요한 기능만을 로드하여 자원 효율성을 높이고, 관리자가 서버 역할을 세부적으로 구성할 수 있게 한다.
IIS의 구성 설정은 주로 XML 기반의 applicationHost.config 및 web.config 파일에 저장되며, IIS 관리자 그래픽 도구나 PowerShell cmdlet을 통해 중앙에서 관리된다. 이 아키텍처는 윈도우의 Active Directory 및 성능 모니터 같은 시스템 서비스과의 통합을 용이하게 하여, 기업 환경에서의 통합 관리와 보안 정책 적용에 강점을 보인다.
IIS는 마이크로소프트 윈도우 운영 체제에 기본적으로 포함되거나 별도의 설치 프로그램을 통해 설치할 수 있다. 최신 버전의 윈도우 서버에서는 서버 관리자에서 '웹 서버(IIS)' 역할을 추가하는 방식으로 설치하는 것이 일반적이다. 데스크톱 버전의 윈도우에서는 'Windows 기능 켜기/끄기'를 통해 IIS 구성 요소를 선택적으로 활성화할 수 있다.
설치 후 구성은 주로 IIS 관리자라는 그래픽 도구를 통해 이루어진다. 이 도구에서는 사이트, 애플리케이션 풀, 가상 디렉터리를 생성하고 관리할 수 있으며, SSL 인증서 바인딩, 인증 방식, IP 주소 및 포트 설정, 기본 문서 지정 등 핵심적인 웹 서버 설정을 제어한다. 또한 web.config 파일을 직접 편집하여 XML 기반의 세부 구성을 적용할 수도 있다.
IIS는 ASP.NET, PHP 등 다양한 웹 애플리케이션 프레임워크를 호스팅할 수 있도록 구성할 수 있다. 이를 위해서는 해당 기능을 역할 서비스로 추가 설치하거나, FastCGI 설정과 같은 모듈을 구성해야 한다. Windows PowerShell을 이용한 스크립트나 DISM 도구를 활용하면 자동화된 배포 및 대규모 구성 관리가 가능하다.
주요 구성 요소와 그 역할은 다음과 같다.
구성 요소 | 주요 역할 |
|---|---|
애플리케이션 풀 | 웹 애플리케이션을 격리 실행하고 리소스를 관리 |
사이트 | 특정 포트와 호스트 이름으로 서비스되는 웹 콘텐츠의 단위 |
가상 디렉터리 | 물리적 경로를 사이트 내 논리적 경로로 매핑 |
모듈 | 요청 처리 파이프라인에 기능을 추가하는 네이티브 또는 관리 코드 |
IIS는 마이크로소프트 윈도우 서버 운영 체제 환경에서의 보안을 위해 설계된 다양한 기능과 도구를 제공한다. 기본적으로 윈도우 서버의 사용자 계정과 액티브 디렉터리와의 긴밀한 통합을 통해 인증과 권한 관리를 수행하며, IP 주소 및 도메인 이름 기반의 접근 제한, 요청 필터링, SSL/TLS를 통한 암호화 통신 지원이 핵심 보안 요소이다.
주요 보안 구성 요소로는 요청 필터링, 인증 모듈, 권한 부여 규칙이 있다. 요청 필터링은 허용되지 않는 파일 확장자나 HTTP 동사, URL 시퀀스를 차단한다. 인증은 윈도우 인증, 기본 인증, 폼 인증 등 다양한 방법을 지원하며, 권한 부여 규칙은 특정 사용자나 그룹에 대한 리소스 접근을 제어한다. 또한 IIS 관리자 도구를 통해 각 웹 사이트 또는 애플리케이션별로 세부적인 보안 설정을 구성할 수 있다.
보안 강화를 위해 정기적인 업데이트 적용이 필수적이다. 마이크로소프트는 윈도우 업데이트를 통해 IIS와 관련된 보안 패치를 지속적으로 제공한다. 관리자는 불필요한 모듈과 기능을 제거하여 공격 표면을 최소화하고, 애플리케이션 풀의 격리된 ID로 실행하며, 상세한 로그 기록을 활성화하여 침해 사고 발생 시 조사에 활용해야 한다.
IIS는 웹 서버로서의 성능을 극대화하고 안정적인 운영을 보장하기 위한 다양한 모니터링 및 튜닝 도구를 제공한다. 성능 최적화를 위해 HTTP 압축을 활성화하여 네트워크 대역폭을 절약하고, 응용 프로그램 풀을 적절히 분리 및 구성하여 웹 응용 프로그램 간의 영향을 최소화할 수 있다. 또한 캐싱 정책을 구성하여 정적 및 동적 콘텐츠의 응답 속도를 향상시킬 수 있다.
서버의 상태를 실시간으로 파악하기 위해 성능 모니터(Performance Monitor)와 통합된 IIS 카운터를 활용할 수 있다. 주요 모니터링 지표는 다음과 같다.
모니터링 지표 | 설명 |
|---|---|
현재 연결 수(Current Connections) | 서버가 현재 처리 중인 동시 연결 수 |
초당 요청 수(Requests/sec) | 서버가 초당 처리하는 HTTP 요청 수 |
총 바이트 수/초(Total Bytes/sec) | 서버의 총 네트워크 처리량 |
응용 프로그램 풀 CPU 사용률 | 개별 응용 프로그램 풀의 CPU 점유율 |
응용 프로그램 풀 작업자 프로세스 | 풀의 활성 작업자 프로세스 수 |
이러한 지표를 통해 병목 현상을 식별하고, 부하 분산 구성을 검토하거나 하드웨어 리소스를 증설하는 등의 결정을 내릴 수 있다. IIS는 또한 실패한 요청 추적(Failed Request Tracing) 기능을 제공하여 성능 저하나 오류가 발생하는 특정 요청의 상세 정보를 로그로 기록하고 분석할 수 있게 한다.
IIS는 마이크로소프트의 윈도우 서버 운영 체제 생태계와 긴밀하게 통합되어 동작한다. 이는 단순한 웹 서버를 넘어 ASP.NET, 윈도우 커뮤니케이션 파운데이션 등 마이크로소프트의 웹 애플리케이션 개발 프레임워크를 위한 핵심 호스팅 플랫폼 역할을 한다. 또한 액티브 서버 페이지와 같은 레거시 기술에 대한 지원도 유지하며, 다양한 세대의 웹 애플리케이션을 실행할 수 있는 환경을 제공한다.
주요 통합 기술은 다음과 같다.
통합 기술 | 설명 |
|---|---|
IIS는 .NET Framework 및 .NET Core/.NET 5 이상 런타임과 통합되어 ASP.NET 웹 애플리케이션과 웹 API를 호스팅한다. | |
액티브 디렉터리와 통합된 케르베로스 인증, NTLM, 기본 인증 등을 지원하여 엔터프라이즈 환경의 통합 로그인에 적합하다. | |
웹 애플리케이션에서 널리 사용되는 데이터베이스로, IIS 호스팅 애플리케이션과의 연동이 원활하다. | |
웹 애플리케이션, 사이트 설정, 인증서 등을 IIS 서버에 원격으로 게시하고 동기화하는 도구이다. |
IIS는 인터넷 정보 서비스 관리자라는 그래픽 관리 도구를 통해 구성되며, 파워셸 cmdlet을 이용한 스크립트 기반 자동화 관리도 지원한다. 성능 모니터링을 위해 윈도우 성능 모니터와 통합되어 있으며, 로그는 주로 W3C 확장 로그 파일 형식으로 저장되어 이벤트 뷰어나 기타 분석 도구에서 확인할 수 있다. 이러한 깊은 수준의 통합 덕분에 순수 마이크로소프트 기술 스택을 사용하는 환경에서 강력한 관리성과 편의성을 발휘한다.
IIS는 마이크로소프트 윈도우 서버 환경에서 주로 사용되는 웹 서버이지만, 다른 운영 체제를 기반으로 하는 여러 대체 제품들이 존재한다. 가장 대표적인 경쟁자는 아파치 HTTP 서버로, 오픈 소스이며 리눅스, 유닉스, 윈도우 등 다양한 플랫폼에서 동작하여 전 세계 웹 서버 시장 점유율에서 높은 비중을 차지한다. Nginx는 고성능과 낮은 자원 소모로 정적 콘텐츠 처리와 리버스 프록시 서버로 널리 사용되며, IIS와 마찬가지로 동적 콘텐츠 처리를 위해 FastCGI 등을 통해 PHP나 다른 언어와 연동할 수 있다.
주요 웹 서버 간의 차이점은 다음과 같은 표로 요약할 수 있다.
항목 | Microsoft IIS | Apache HTTP Server | Nginx |
|---|---|---|---|
주요 운영 체제 | |||
라이선스 | 사유 소프트웨어 | 오픈 소스 (Apache License 2.0) | 오픈 소스 (BSD 라이선스) 및 상용 |
주요 아키텍처 | 스레드 기반/IIS 애플리케이션 풀 | 프로세스 기반/모듈식 | 이벤트 기반/비동기식 |
.NET 통합 | ASP.NET과의 긴밀한 통합 | mod_mono 등 별도 모듈 필요 | FastCGI 등을 통한 연동 |
이 외에도 Caddy나 Lighttpd와 같은 경량 웹 서버나, Node.js나 Tomcat과 같은 애플리케이션 서버도 특정 용도에서 웹 서버 역할을 수행할 수 있다. IIS의 선택은 주로 윈도우 서버 인프라, Active Directory 통합, ASP.NET 또는 .NET Core 애플리케이션 호스팅 등 마이크로소프트 생태계와의 긴밀한 통합이 필요할 때 강점을 발휘한다. 반면, 비용 부담이 적고 크로스 플랫폼 지원이 중요한 환경이나 특정 고성능 정적 서비스가 주를 이룰 경우에는 아파치 HTTP 서버나 Nginx가 선호되는 편이다.
IIS는 마이크로소프트의 윈도우 서버 운영 체제와 깊게 통합되어 있어, 윈도우 기반 인프라 환경에서 높은 호환성과 관리 편의성을 제공한다. 이로 인해 액티브 디렉터리 인증이나 윈도우 인증과 같은 기업 내부 시스템과의 연동이 용이하며, 마이크로소프트의 다른 서버 제품군과의 통합도 원활하다.
초기 버전인 IIS 1.0은 윈도우 NT 3.51에 추가 기능으로 포함되어 출시되었으며, 당시 인터넷 정보 서비스라는 명칭보다는 인터넷 서버 소프트웨어로 인식되었다. 시간이 지나며 ASP.NET 프레임워크의 공식 호스트 서버로 자리 잡으면서 닷넷 개발 생태계의 핵심 기반이 되었다.
IIS는 전통적으로 아파치 HTTP 서버와 비교되는데, 두 제품은 각각 윈도우와 유닉스 계열 운영 체제 환경을 대표하는 웹 서버로 여겨진다. IIS의 시장 점유율은 윈도우 서버의 보급과 함께 꾸준히 유지되어 왔으며, 특히 마이크로소프트 기술 스택을 사용하는 기업 환경에서 널리 채택되고 있다.