어느덧 4번째 포스팅이 되었네요. 첫번째 포스팅에서 2개를 소개하고, 나머지는 1개씩 소개했으니.. 이제 5번째 주요 시나리오를 소개할 시간이 되었습니다. 5번째 주요 시나리오의 주인공은 바로.. Internet Information Service(IIS) 7.0입니다.

IIS 7.0의 주요 기능은 아래와 같습니다.

1. 커스터마이징을 위한 유연한 확장 모델
2. 막강한 진단 및 트러블슈팅 도구
3. 관리 위임 모델
4. 강화된 보안 및 커스터마이징을 통한 공격 지점 감소
5. XCopy를 통한 응용 프로그램 배포
6. WCF(Windows Communication Framework) 서비스에 대한 응용 프로그램 연동 및 상태 관리
7. 향상된 관리 도구

살펴봐야할 부분이 너무 많군요 T_T 하나씩 살펴보겠습니다.

IIS 7.0은 기존 IIS 6.0과는 다르게 컴포넌트 베이스로 만들어져 있습니다. 지금까지의 IIS는 설치시 특정 기능에 대한 제거가 불가능했습니다. 예를 들어, Windows 인증, 기본 인증을 쓰지 않을 경우에도, Web 관련 모듈을 설치하시면 무조건 같이 설치가 되었습니다만, IIS 7.0부터는 IIS의 모든 모듈을 개별적으로 선택하여 설치할 수 있습니다. 이러한 모듈 베이스의 설치를 통해 보안을 향상시킬 수 있으며, 공격 지점을 감소시킬 수 있습니다. 자세한 모듈별 정보는 관련 웹 사이트에서 자세히 정리해놓았습니다.

이런 모듈화 기반의 IIS 7.0를 통해 개발자분들은 새롭게 개발하거나 향상된 기능을 탑재할 수 있습니다. IIS 7.0의 확장성은 새로운 코어 서버 API를 포함함으로써, Unmanaged Code(C/C++) 또는 Managed Code(C#이나 .NET Framework를 이용하는 모든 언어)를 이용하셔서 모듈로 개발한 기능을 셋팅할 수 있음을 의미합니다. 이러한 확장성은 단순한 기능에만 국한된 것이 아니라, 설정, 스크립팅, 이벤트 로깅, 관리 도구 기능등 IIS 7.0의 전반적인 분야에 해당되며, 이제 원하시는 모델로 웹 서버를 커스터마이징 하실 수 있습니다. :) - IIS 7.0의 전반적인 사항에 대한 정리 PDF

막강해진 진단 및 트러블슈팅 도구도 눈여겨 볼만 합니다. IIS 7.0에서의 손쉽게 살펴 볼수 있는 진단 방식이 바로 로컬에서의 에러 메세지와 리모트에 접근시 에러 메세지가 틀리다는 것입니다. 빠르게 문제가 발생한 부분에 대해서 체크가 가능합니다.

IIS 6.0에서 모든 Tracing 데이터의 경우에는 ETW(Event Tracing for Windows)를 통해 Trace 로그를 수집하였습니다만, IIS 7.0에서는 ETW에 대한 의존도이외에 모듈 자체(FREB - Failed Request Tracing)에서 Tracing 알림을 처리할 수 있도록 변경되었습니다. 개발자나 IT Pro들은 손쉽게 문제가 발생하는 모듈에 대해서 덤프(어떤 모듈을 요청할때, 왜 일어났는지)를 문제 발생시 기준으로 알아낼 수 있습니다.

관리 위임 모델의 경우에도 여러 시나리오에 적합한 기능을 내장하고 있습니다. 만약 웹 서버 자체에 대한 관리자와 웹 사이트의 관리자가 틀린 경우, 또한 웹 사이트의 특정 모듈에 대한 관리자가 틀린 경우가 있을 것입니다. IIS 6.0까지는 웹 서버와 웹 사이트의 관리자를 분리하기가 쉽지가 않았습니다. 시스템에 대한 Right및 Permission을 확실하게 설정하지 않는 한, IIS 관리를 위해서는 Administrator 권한이 필요했습니다만, IIS 7.0에서는 모듈단위에 위임이 가능해졌습니다.

Machine.Config, Root Web.Config, ApplicationHost.Config에는 웹 서버 전반적인 설정이 처리되며, 개개별 웹 사이트에 대한 설정은 Web.Config을 이용하게 됩니다. 서버 관리자가 각각의 사이트 관리자에게 설정을 할 수 있는 부분에 대해서 위임 처리를 할 수 있으며, 위임 처리가 되지 않은 부분에 대한 설정은 변경할 수 없습니다.

IIS 7.0의 Metabase는 6.0때와 마찬가지로 XML 베이스로 구성되어져 있습니다. 뿐만 아니라, 각각의 IIS 설정에 대해서 Web.Config를 이용하실 수 있다는 내용도 앞서 다루었습니다. 이 경우, 프론트 엔드 웹 서버가 여러대로 구성된 서버간 응용 프로그램 설정을 Copy 또는 XCopy를 통해 쉽고 빠르게 배포하실 수 있습니다. 이를 이용하시게 되면, 관리 비용적 절감 뿐만 아니라, 수동 구성을 통한 문제 발생도 줄이실 수 있습니다.

IIS 6.0때의 XML 메타베이스의 경우에 실시간 수정 가능 및 직관적인 수정을 할 수 있었습니다만, IIS 7.0에서는 더욱 직관적인 XML 스키마로 업데이트되었습니다. IIS 6.0의 스키마는 조금 복잡하며, 직관적이지 못한 단어, 매우 긴 이름으로 구성되어져 있었습니다. 아래의 그림을 통해 비교해보시면...

확 차이가 나시나요? :)

WCF와의 연동을 위해 IIS 7.0의 경우에는 Windows Process Activation Service(WAS)를 통해 다양한 프로토콜에 대한 Listener Activation을 처리합니다. 이러한 이유로 IIS 7.0을 설치하실 때 WAS 서비스도 같이 설치됩니다. WAS는 모든 유형의 Message-Activated 응용 프로그램, 실시간 프로세스 활성화, 상태 모니터링, 실패 감지, 프로세스 리사이클링을 처리하며, 이는 IIS 6.0의 프로세싱 모델에 근간하고 있습니다.

드디어 마지막입니다. 향상된 관리 도구 측면입니다. IIS 7.0에서 눈에 띄게 첫번째로 변경된 모습은 바로 관리 도구의 모습입니다.

 

기존 관리 도구에서 많이 변경되어서, 처음에는 다소 어색하실 수 있습니다만, 서두에 소개한 모듈화에 기반한 관리 도구입니다. 개개별 모듈별에 대한 관리를 각각할 수 있게 되어져 있습니다. 명령어 프롬프트 관리 도구도 새롭게 개발되었습니다. AppCmd.exe라는 도구는 기존 IIS 6.0의 Inetpub\Adminscripts에 존재하던 Adsutil.vbs를 대체합니다. 이를 이용하시면 IIS 7.0의 모든 관리를 명령어 프롬프트에서도 처리하실 수 있으며, 파이프라이닝(|)을 지원하므로, 설정에 대한 출력 처리도 쉬워집니다.

변경된 내용이 다소 존재하다보니.. 소개가 무척이나 길어졌습니다. IIS 7.0을 통해 한층 업그레이드된 웹 서비스 관리 및 서비스 제공을 꾀하실 수 있습니다. 이미 Windows Vista에 IIS 7.0이 내장되어져 있습니다. 시간이 되실때 한번 IIS 7.0을 설치해보시고 다뤄보시는 것이 어떨까요.. 참고 사이트가 하나 있습니다. IIS.Net입니다. IIS와 관련된 많은 소식을 접하실 수 있습니다.

Posted: Sunday, April 08, 2007 4:17 PM by 백승주(Seung Joo Baek)

'Infrastructure' 카테고리의 다른 글

Windows Server CodeName LongHorn  (1) 2007.05.22
Windows Server CodeName LongHorn  (0) 2007.05.22
Windows Server CodeName LongHorn  (1) 2007.05.22
Windows Server CodeName LongHorn  (0) 2007.05.22
가상화(Virtualization)...  (0) 2007.05.22

+ Recent posts