Windows Server에 IIS(Internet Information Services) 설치하는 방법

목차
- Server Manager로 IIS 설치하기
- Server Manager 열기
- 역할 및 기능 추가
- 서버 선택 및 역할 설치
- 설치 확인
- PowerShell 및 DISM으로 IIS 설치하기
- PowerShell 방법
- DISM 방법
- 설치 전 요구사항 및 권장 구성
- 설치 후 해야 할 기본 설정
- 보안 강화와 운영 체크리스트
- 자동화/배포 권장 방법론
- 자주 발생하는 문제와 대처 방법
- FAQ
- 요약
Server Manager로 IIS 설치하기
1. Server Manager 열기
- Start 메뉴에서 Server Manager를 선택합니다.
- Server Manager가 열리면 상단의 Manage 메뉴를 클릭하고 Add Roles and Features를 선택합니다.
2. 역할 및 기능 추가
- Add Roles and Features Wizard가 나타나면 Next를 클릭합니다.
- 설치 유형에서 Role-based or feature-based installation을 선택하고 Next를 클릭합니다.
3. 서버 선택 및 역할 설치
- 서버 풀에서 설치 대상 서버를 선택한 뒤 Next를 클릭합니다.
- Select server roles 화면에서 Web Server (IIS)를 체크합니다. 요구되는 추가 기능이 있으면 자동으로 추가하라는 프롬프트가 표시됩니다.
- Select features 섹션에서 필요에 따라 ASP.NET, .NET Extensibility 등 선택합니다.
- 구성 항목을 검토한 후 Install을 클릭하여 설치를 시작합니다.
4. 설치 확인
- 설치가 완료되면 Close를 클릭합니다.
- 서버에서 브라우저를 열고 http://localhost 로 이동하여 기본 IIS 환영 페이지가 보이는지 확인합니다.
중요: 방화벽이나 네트워크 정책으로 인해 외부에서 접속되지 않을 수 있으므로 외부 접속 테스트는 방화벽 규칙을 확인한 후 수행하세요.
PowerShell 및 DISM으로 IIS 설치하기
PowerShell 방법
PowerShell을 관리자 권한으로 실행하고 다음 명령을 실행하세요:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
추가 기능(예: ASP.NET, 관리 도구, WebSockets 등)을 포함하려면:
Install-WindowsFeature -Name Web-Server, Web-ASP, Web-Mgmt-Tools, Web-WebSockets
DISM 방법
DISM은 이미지 기반 설치 또는 스크립트 자동화에서 유용합니다. 관리자 권한 명령 프롬프트에서 다음을 실행하세요:
dism /online /enable-feature /featurename:IIS-WebServerRole /all
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
dism /online /enable-feature /featurename:IIS-WebSockets /all
이 방법들은 자동화와 대량 배포에 적합합니다.
설치 전 요구사항 및 권장 구성
- 운영체제 버전 확인: Windows Server의 정확한 빌드(예: 2016, 2019, 2022)에 따라 일부 기능 이름이 다를 수 있습니다.
- 관리자 권한: 설치는 관리자 권한이 필요합니다.
- 네트워크 포트: 기본 HTTP 포트(80)와 HTTPS 포트(443)가 열려 있는지 확인하세요.
- 디스크 용량: 로그와 웹 콘텐츠를 위한 충분한 디스크 공간을 확보하세요.
설치 후 기본 설정 작업
- 사이트 바인딩 구성: 호스트 이름, IP, 포트 설정을 확인하세요.
- SSL/TLS 설정: SSL 인증서를 추가하고 HTTPS 리디렉션을 설정하세요.
- 애플리케이션 풀 구성: 애플리케이션 풀의 .NET CLR 버전과 아이덴티티(계정)를 적절히 설정하세요.
- 기본 문서 및 디렉터리 보안: 기본 문서 순서(index.html/index.aspx 등)와 디렉터리 브라우징을 검토하세요.
보안 강화와 운영 체크리스트
- TLS 최소 버전 강제: IIS에서 TLS 1.2 이상을 사용하도록 구성하세요.
- 불필요한 모듈 비활성화: 설치 시 기본으로 추가된 불필요한 IIS 모듈을 비활성화하여 공격 표면을 줄이세요.
- Request Filtering: 요청 크기, 파일 확장자 필터링 등으로 악성 요청을 차단하세요.
- 권한 최소화: 웹 루트(예: C:\inetpub\wwwroot)의 파일 권한을 최소 권한 원칙으로 설정하세요.
- 로그 중앙화: 이벤트 및 IIS 로그를 중앙 로깅 시스템(예: SIEM)에 전송하세요.
자동화 및 배포 권장 방법론(미니 방법론)
- 요구사항 정의: 대상 서버 이미지, IIS 역할, 필요한 기능 목록을 문서화합니다.
- 스크립트화: PowerShell/DISM 명령을 스크립트로 통합합니다.
- 구성 관리: Desired State Configuration(DSC) 또는 Ansible/WinRM을 사용해 상태를 유지합니다.
- 테스트: 테스트 서버에 배포 후 기능/보안 테스트를 자동화합니다.
- 롤아웃: 단계별 롤아웃(스테이징→프로덕션) 및 모니터링을 수행합니다.
팁: DSC 리소스로 IIS 구성을 선언형으로 관리하면 drift를 방지할 수 있습니다.
역할 기반 체크리스트
- 시스템 관리자
- Server Manager/PowerShell로 IIS 설치 확인
- 방화벽 규칙 및 포트 열기(80/443)
- 보안 담당자
- TLS 구성 및 불필요한 모듈 제거
- 요청 필터링과 인증 방식 점검
- 개발자
- 애플리케이션 풀 설정과 .NET 버전 확인
- 배포 스크립트(웹 배포 패키지/CI 파이프라인) 테스트
- QA/테스터
- http://localhost 기본 페이지 확인
- SSL 연결과 리다이렉션 테스트
자동화 예시 체크리스트 (간단 템플릿)
- PowerShell 스크립트로 Web-Server 설치
- 관리 도구 포함 여부 확인
- ASP.NET 및 필요한 확장 설치
- 서비스 시작 및 포트 리스닝 확인
- 기본 환영 페이지 응답 확인
- 모니터링 에이전트 배포
자주 발생하는 문제와 해결 방법
IIS 설치 후 http://localhost가 보이지 않을 때
- IIS 서비스(Windows Process Activation Service, World Wide Web Publishing Service)가 실행 중인지 확인하세요.
- 방화벽에서 포트 80(또는 설정한 포트)이 허용되어 있는지 확인하세요.
- 다른 프로세스(예: 다른 웹 서버나 애플리케이션)가 포트 80을 점유하고 있지 않은지 검토하세요.
PowerShell/DSIM 명령이 실패할 때
- 관리자 권한으로 실행했는지 확인하세요.
- Windows 업데이트가 필요한 패키지를 잠그지 않았는지 확인하세요(재부팅 요구 여부 확인).
SSL 인증서 바인딩 문제
- 인증서의 개인 키가 서버에 설치되어 있는지 확인하세요.
- 인증서의 호스트 이름과 바인딩의 호스트 이름이 일치하는지 확인하세요.
퍼포먼스 문제
- 애플리케이션 풀의 최대 워커 프로세스 설정을 확인하세요.
- 정리 정책(로그 순환, 임시 파일 정리)을 적용하세요.
언제 IIS가 최선의 선택이 아닌가
- 크로스플랫폼 성능이나 가벼운 정적 파일 서빙을 최우선으로 할 경우 Nginx 또는 Caddy 같은 대안이 더 적합할 수 있습니다.
- 도커 기반 마이크로서비스 환경에서는 컨테이너 내부에서 경량 웹서버를 사용하는 것이 더 효율적일 수 있습니다.
- 그러나 ASP.NET(특히 레거시 ASP.NET MVC/.aspx) 앱은 IIS가 호환성과 관리 측면에서 유리합니다.
수용 기준(검증 항목)
- http://localhost에 기본 IIS 페이지가 응답한다.
- 지정한 기능(예: ASP.NET, WebSockets)이 설치되어 동작한다.
- 포트 80/443에서 서비스가 바인딩되고 방화벽 규칙이 적용되어 있다.
- 애플리케이션 풀이 실행 중이며 예상된 계정으로 동작한다.
간단한 테스트 케이스
- 테스트 1: 브라우저에서 http://localhost 접속 → HTTP 200 및 환영 페이지 표시
- 테스트 2: HTTPS 바인딩이 있는 경우 https://localhost 접속 → 인증서 경고 없이 연결(또는 올바른 인증서 적용)
- 테스트 3: PowerShell 스크립트 재실행 시 idempotent(중복 실행 안전) 확인
호환성 및 마이그레이션 팁
- Windows Server 버전별 기능 이름 차이를 문서화하세요(예: IIS 확장명칭).
- 기존 IIS 설정(사이트, 바인딩, 애플리케이션 풀)은 AppCmd 또는 Web Deploy로 내보내기/가져오기를 사용할 수 있습니다.
1줄 용어집
- IIS: Windows에서 제공하는 웹 서버 플랫폼
- Application Request Routing(ARR): IIS 기반 리버스 프록시/로드밸런서 모듈
- URL Rewrite: 요청 경로를 재작성하는 IIS 확장
- 애플리케이션 풀: 앱 실행 환경(프로세스 격리)
- Binding: 사이트에 할당된 IP/포트/호스트 이름
짧은 공지문(예시, 100–200자)
Windows Server에서 웹 서비스를 시작하려면 IIS 설치가 필요합니다. Server Manager 또는 PowerShell/DISM으로 신속히 설치할 수 있으며, 설치 후 SSL 구성과 보안 모듈 비활성화 등 기본 보안 점검을 반드시 수행하세요.
FAQ
IIS를 Server Manager 없이 설치할 수 있나요?
네. PowerShell(Install-WindowsFeature)과 DISM은 무인 설치를 지원하므로 자동화에 적합합니다.
IIS 설치 후 서버를 재부팅해야 하나요?
대부분의 경우 즉시 기능이 적용되며 재부팅이 필요하지 않습니다. 다만 일부 고급 구성이나 Windows 업데이트 상태에 따라 재부팅을 요구할 수 있습니다.
IIS가 올바르게 설치되었는지 어떻게 확인하나요?
서버에서 http://localhost로 접속했을 때 기본 IIS 환영 페이지가 표시되면 설치가 완료된 것입니다.
PowerShell에서 관리 도구도 함께 설치되나요?
-IncludeManagementTools 옵션을 추가하면 관리 도구가 포함되어 설치됩니다. 옵션을 지정하지 않으면 수동으로 추가해야 합니다.
요약
- Server Manager, PowerShell, DISM 세 가지 방법으로 IIS를 설치할 수 있습니다.
- 설치 후에는 바인딩, SSL, 애플리케이션 풀, 보안 모듈 점검을 수행하세요.
- 자동화는 DSC나 스크립트를 사용하면 운영 일관성을 유지하는 데 도움이 됩니다.