Windows Server 2008 부터 처음 소개 된 Server Core 는 경량화 되고 최소 모듈만을 제공하는 서버 운영체제 였습니다.
적은 리소스 사용으로 원하는 모듈만을 운영할 수 있는 Server Core 는 다수의 웹 서버를 운영해 본 분이시라면 반겼을 것입니다.
게다가, Windows 보안 업데이트가 나올때 Server Core 버전은 영향이 없슴이라 적혀 있을때면 씩 하고 미소지어 졌지요 :)
하지만, 사실 윈도우의 UI 환경에만 익숙하신 분들은 모든 작업을 Command 에서만 처리되는 Server Core 가 약간은 부담(?) 스러웠을 수 도 있습니다.
또, Windows Server 2008 시절 Server Core 는 처음 이러한 운영체제를 선보인다는데 의의가 있었다고 해도 과언이 아니었습니다.
왜냐, 몇가지 아쉬운 점이 없지 않아 있었던 거죠.
가장 큰 아쉬움은 뭐니 뭐니 해도 윈도우 기반의 웹 응용 프로그램인 ASP.NET 을 제공하지 않는 다는 것입니다.
거기다 한가지 더해 ASP.NET 의 기반으로 운영되는 PowerShell 이 함께 구동되지 않는 다는 점이 많이 부족해 보였습니다.
하지만 Windows Server 2008 R2 의 Server Core 는 ASP.NET 을 제공할 뿐만 아니라, PowerShell 그리고 PowerShell 을 원격에서 명령할 수 있는 기능 뿐 아니라,
R2 에 포함된 IIS 7.5 는 Server Core 에서도 IIS 를 원격에서 관리할 수 있는 기능이 추가된 것입니다.
Windows Server 2008 시절 Server Core 에서 IIS 를 설정하려면 무수히 많은 Command Line 을 작성했어야 했고, 이를 어려워 하시는 분들이 적지 않았습니다.
Windows Server 2008 R2 는…
sconfig.cmd 라고 하는 미리 정의된 명령을 묶어놓은 명령 라인을 제공합니다.
Windows Server 2008 에서는 위와 같은 옵션을 사용하기 위해서는 긴 명령구문을 작성하여 입력했어야 하지만, 지금은 이처럼 자주 사용하는 명령어를 묶어서 하나의 파일로 제공합니다.
이 명령 스크립트는 원래 Hyper-V 만을 제공하는 Hyper-V Server 에서 제공하는 것이었습니다.
이것을 조금 다듬어서 R2 에 포함 하였더군요.
자 그러면 이제부터 서버코어를 이용하여, 웹 서버를 만들어 볼 차례입니다.
기존에는 서버모듈을 설치하기 위해서 ocsetup 이란 명령어를 사용하였었습니다.
하지만, Windows 7 이후 부터 제공하던 dism 이라는 명령어가 있습니다.
dism 은 원래 OS 를 배포할때 배포할 OS 이미지를 수정하고 만들때 사용하던 명령어 인데, Windows Server 2008 R2 에서는 서버의 온라인 모듈을 설치하거나, 제거할때도 사용합니다.
참고로 Windows Server 2008 에서 사용하던 Servermanagercmd 라는 명령어는 Windows Server 2008 R2 까지만 제공하고 이후에는 제공될지는 불분명 하다고 하니, dism 에 익숙해 지시길 바랍니다.
ServerCore 에 IIS 7.5 및 ASP.NET 설치 하기
ASP.NET 을 서버코어에서 사용하기 위해서는 3가지 제한 사항이 있습니다.
1. MMC 스냅인이 없습니다. 그러므로 ASP.NET 웹 사이트를 관리하기 위해서는 원격 컴퓨터에서 IIS Manager 를 통해 관리 하거나, 호스트에서 작업시는 APPCMD 라는 명령어로 관리 하여야 합니다.
2. System.Web.Mail 네임스페이스 가 없어졌습니다. 이것은 Server Core 에서는 CDOSYS 객체가 없어 졌기 때문입니다. 즉 폼 메일등을 제작할 때 사용하였던 모듈이 없어졌기 때문입니다. 대신 해당 네임스페이스 대신 System.Net.Mail 네임스페이스를 사용하시면 됩니다.
3. Web Site Administration Tool (WAT) 를 사용하실 수 없습니다. 이는 Visual Studio 를 통해 IIS 를 관리할 수 있는 웹 툴 입니다.
먼저 ASP.NET 을 설치하기에 앞서 IIS 를 설치합니다.
| dism /online /enable-feature /featurename:IIS-WebServerRole |
Windows Server 2008 R2 Server Core 는 .NET Framework 2.0/3.0/3.5 를 포함하고 있습니다.
ASP.NET 을 호스팅 하기 위해 .NET Framework 2.0 과 3.0 을 dism 을 이용하여 설치합니다.
| dism /online /enable-feature /featurename:NetFx2-ServerCore dism /online /enable-feature /featurename:NetFx3-ServerCore |
IIS 에서 ASPNET 을 사용하기 위해 추가적인 IIS 역할 서비스를 추가 설치 해야 합니다.
| dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-feature /featurename:IIS-ISAPIExtensions dism /online /enable-feature /featurename:IIS-NetFxExtensibility |
이제 IIS-ASPNET 기능을 설치 합니다.
| dism /online /enable-feature /featurename:IIS-ASPNET |
이것으로 ASP.NET 을 호스팅할 수 있는 Server Core 용 웹서버는 완성 되었습니다.
asp.net 페이지를 로딩할 경우 정상적으로 로딩되는것 을 확인 하실 수 있습니다.
여기까지 설정 하셨다면, 이제 웹서버를 관리하기 위해서는 APPCMD 라는 명령어로 서버를 관리 하여야 합니다.
원격에서 쉽게 관리하기 위한 원격 관리 서비스를 설치하여 원격에서 쉽게 관리 하실 수 있도록 합니다.
IIS-ManagementService 를 설치합니다.
| dism /online /enable-feature /featurename:IIS-ManagementService |
| dism /online /enable-feature /featurename:WAS-WindowsActivationService |
원격 관리 설정을 위한 레지스트리 수정 및 IIS Management Service 를 시작 시킵니다.
| Reg Add HKLM\Software\Microsoft\WebManagement\Server /V EnableRemoteManagement /T REG_DWORD /D 1 |
| net start wmsvc |
IIS 를 원격 관리 하기 위해서는 클라언트 에 IIS Manger 를 다운로드 받아 설치 한 후 실행 합니다.
파일 메뉴에서 서버에 연결을 클릭합니다.
서버 이름을 입력합니다. 저는 IP 를 입력했습니다.
서버 사용자 이름과 암호를 입력
IIS Management Service 는 인증서 기반에서 접속을 제공하며, 기본적으로 서버의 Self Sign 인증서로 서비스를 제공합니다.
Self Sign 인증서에 대한 Alert 이 나타납니다.
연결이 정상적으로 이뤄지면, 원격에서 IIS 를 관리 하실 수 있습니다.
이제 기본적인 설정은 마쳤으니, ASP.NET 을 제작하시면 되겠습니다.
soy@itdaily.kr




