IT_Programming/ASP.NET (WEB)

.NET 운영 가이드

JJun ™ 2006. 11. 30. 21:28

주요 내용

down.NET 운영 소개
downMOF 및 Enterprise Services
downEnterprise Services Framework 및 IT 수명 주기
down.NET 수명 주기에서의 .NET 운영
down.NET 서비스 관리 기능
down.NET 운영 역할 및 업무
down.NET 솔루션에서 계층별 특정 작업 관리
down성능 모니터를 사용하여 .NET 응용 프로그램을 모니터링하는 방법
down.NET 마법사
down.net 보안 조정
down어셈블리 신뢰
down응용 프로그램 수정
down.NET 네트워크 구성
down.NET 네트워크 인프라 관리
downSQL Server 관리
downASP.NET 응용 프로그램 관리
downASP.NET 응용 프로그램 모니터링
down작업 부하 분산 및 ASP.NET 응용 프로그램
downASP.NET 응용 프로그램 문제 해결
downASP.NET 응용 프로그램 추적
down.NET 웹 서비스 관리
down.NET 웹 서비스의 모니터링 및 문제 해결
down분산 트랜잭션 관리

 

백서
작성자: Fernando G. Guerrero

 

 

요약

Microsoft .NET Framework에 기반을 둔 응용 프로그램과 소프트웨어 솔루션을 운영하는 것은 IT 전문가에게 새로운 도전입니다. .NET Framework의 목적 중 하나는 기존 Windows 운영 도구와의 단절 없는 운영과 통합을 제공하는 데 있습니다. .NET 응용 프로그램과 관련된 다른 기술을 습득하면 시스템 성능 및 신뢰도도 크게 향상시킬 수 있습니다. 본 .NET 운영 가이드는 Microsoft .NET Framework에 기반한 응용 프로그램과 구성 요소를 관리하는 데 필요한 정보 및 지침을 제공하며, 추가 정보가 들어 있는 설명서로 연결되는 링크도 제공합니다.

본 문서는 .NET Deployment Guide, Securing .NET Web Services, Interoperation using .NET 및 Performance Tuning a .NET Deployment를 포함한 .NET 웹 서비스 백서 전집에 있는 정보를 보충 설명합니다.

본 문서는 .NET Framework 솔루션에 기반한 각 특정 IT 시스템용 운영 가이드를 작성하는 템플릿으로 사용할 수 있습니다. 본 .NET 운영 가이드의 주요 대상은 IT 관리자 및 IT 지원 엔지니어이며 이들은 이 가이드를 참고하여 .NET Framework용으로 개발된 응용 프로그램과 구성 요소를 관리하고 운영하며 문제를 해결할 수 있습니다. 그러나, 본 가이드는 이 문서의 범위를 벗어난 Windows 인프라 또는 특정 Windows Server System을 운영하는 방법에 관한 광범위한 정보를 제공하지 않습니다. Windows 2000 운영 가이드 시리즈는 다음의 TechNet 웹 사이트를 참조하십시오. http://www.microsoft.com/technet/prodtechnol/windows2000serv/maintain/opsguide/opsguide.asp   

MSDN과 TechNet에서 Windows Server System에 대한 운영 가이드를 제공합니다. http://www.microsoft.com/korea/msdn/default.asphttp://www.microsoft.com/korea/technet/default.asp의 웹 사이트에서 각각 이러한 가이드를 볼 수 있습니다. http://www.microsoft.com/technet/prodtechnol/sql/maintain/operate/opsguide/default.asp   에서 SQL Server 운영 가이드를 볼 수 있습니다.


.NET 운영 소개 Back to Top

.NET 응용 프로그램 및 구성 요소에 기반한 컴퓨터 시스템을 운영하는 것은 다른 IT 시스템을 운영하는 것과 개념상의 차이가 없습니다. 정보 시스템을 직접 디자인, 개발, 구축 및 유지 관리한 경험을 바탕으로 Microsoft Enterprise Services(ES)는 모든 IT 시스템의 수명 주기 전 단계에 적용할 수 있도록 지침과 최상의 방법을 공유하는 일련의 프레임워크를 제공합니다. 이러한 프레임워크 중의 하나가 Microsoft Operations Framework(MOF)이며 본 .NET 운영 가이드는 이러한 지침들을 중심으로 구성됩니다.


MOF 및 Enterprise Services Back to Top

MOF는 뛰어난 사례, 원칙, 모델을 모아 놓은 것으로, Microsoft 제품 및 기술로 이루어진 솔루션과 서비스에 중요한 생산 시스템 안정성, 가용성, 지원, 관리 효율성 등을 달성하기 위한 광범위한 기술 지침을 제공합니다.

Microsoft ES의 각 프레임워크는 IT 솔루션 수명 주기의 특정 단계에 초점을 맞추고 있으며 IT 솔루션 수명의 특정 단계와 관련된 프로세스, 팀, 위험을 평가하는 방법에 관한 자세한 지침을 제공합니다.

그림 1은 각각의 프레임워크와 이 프레임워크들이 전체 Enterprise Services 전략과 조화를 이루는 방식을 보여줍니다.

 

 

그림 1   Microsoft Enterprise Services Frameworks

MOF는 생산 환경에서 IT 솔루션의 성공적인 운영과 같은 수명 주기의 최종 단계에 초점을 두고 있습니다.


Enterprise Services Framework 및 IT 수명 주기 Back to Top

계획 수립

특정 ES 프레임워크의 일부는 아니지만 Microsoft Partners 및 Microsoft Business Value Services에서는 특정 도구를 사용해서 IT 인프라의 계획을 세우고, 프로젝트의 우선 순위를 정하며, 일반 환경을 만들어 특정 프로젝트와 관련된 여러 활동을 성공적으로 수행하도록 합니다. 이러한 도구는 교육 과정, 백서, 템플릿, 가이드의 형태로 제공됩니다. Microsoft ES에 대한 자세한 내용은 http://www.microsoft.com/business/services/enterprise.asp   를 참조하십시오.

Microsoft는 IT 솔루션 계획을 세울 때 필요한 기술을 배우는 데 아주 유용한 공식 교육 과정을 제공합니다. 이 교육 과정은 .NET Framework에만 한정되지 않으며 이 과정에서 배우는 기술은 다른 .NET 솔루션에도 완벽하게 적용할 수 있습니다. .NET 솔루션에 초점을 맞춘 새로운 교육 과정은 아직 준비 중에 있지만 다음 두 교육 과정에서 IT 솔루션의 계획 수립 단계와 직접 관련된 교육을 받을 수 있습니다.

준비

Microsoft Readiness Framework는 IT 시스템 관리자를 도와 개인 및 조직이 Microsoft의 제품과 기술을 쉽게 사용할 수 있도록 합니다. Microsoft Certified Partner는 기술 준비 프로세스를 통해 함께 작업함으로써 조직이 이러한 필요를 해결하는 데 도움을 줄 수 있도록 교육을 받습니다. 이들은 평가 및 준비 계획 도구, 학습 안내서, 준비 관련 백서, 자율 학습 도구, 강좌, 인증 시험, 준비 이벤트 등을 제공합니다. Microsoft Readiness Framework에 대한 자세한 내용은 http://www.microsoft.com/technet/ittasks/plan/teamops/319mrfpm.asp   를 참조하십시오.

Microsoft는 .NET 개발에 대한 여러 가지 다른 교육 과정도 제공합니다. 교육 과정에 대한 정보는 http://www.microsoft.com/korea/traincert/default.asp를 참조하십시오.

또한 Microsoft는 다음과 같이 .NET 개발자에 대한 새 인증서 두 개를 제공합니다.

작성 및 구축

Microsoft Solutions Framework는 프로젝트 수명 주기의 계획, 작성, 구축 단계에 대한 안내를 제공합니다. 이 안내는 엔터프라이즈 아키텍처, 응용 프로그램 개발, 구성 요소 디자인, 인프라 구축 분야의 교육 과정, 백서, 구축 지침, 사례 연구, 도구, 템플릿 등의 형식으로 되어 있습니다. Microsoft Solutions Framework에 대한 자세한 내용은 http://www.microsoft.com/business/services/mcsmsf.asp   를 참조하십시오.

Microsoft는 Microsoft Solutions Framework에 대한 다음과 같은 교육 과정를 제공합니다.

운영

MOF에는 오늘날의 복잡한 분산 IT 환경에서 생산 시스템을 효과적으로 관리할 수 있는 인력, 프로세스, 기술 등을 설명하는 지원 도구, 백서, 운영 지침, 평가 도구, 운영 키트, 사례 연구 등의 형태로 종합적인 운영 지침이 포함되어 있습니다.

Microsoft는 MOF에 대한 다음과 같은 교육 과정를 제공합니다.


.NET 수명 주기에서의 .NET 운영 Back to Top

MOF 프로세스 모델은 긴밀하게 통합된 4개의 운영 활동으로 구성됩니다. 4개의 MOF 구성 요소는 다음과 같습니다.

  • 변경
  • 운영
  • 지원
  • 최적화

본 문서의 다음 절에 나와 있듯이 4개의 구성 요소에는 각각 특정 서비스 관리 기능을 실행하여 자신의 역할을 수행하는 고유한 서비스 역할이 있습니다. 각 구성 요소에는 일련의 서비스 관리 기능(SMF)이 포함되어 있습니다. 이러한 서비스와 기능의 정의에 대해서는 MOF 프로세스 모델에서 설명합니다. 프로세스 모델에서 설명되는 활동을 수행하는 역할 및 업무의 정의는 중요하며 MOF 팀 모델이 이러한 역할 및 업무를 정의하는 데 도움이 됩니다.

.NET 솔루션 운영 프로세스는 특정 .NET 솔루션과 연관된 시스템 및 응용 프로그램의 구성으로 시작됩니다. 운영 구성 요소는 .NET 솔루션의 실행 및 관리와 관련하여 진행 중인 활동을 처리합니다. 지원 운영에는 시스템의 문제 및 가능한 개선 사항을 검색하는 몇 가지 프로세스가 포함되어 있습니다.

.NET 응용 프로그램을 운영 및 지원하면서 얻은 경험은 해당 응용 프로그램의 디자인을 개선하고 최적화하는 데 사용할 수 있는 매우 유용한 피드백을 제공합니다. 이 새 디자인으로 더욱 효율적으로 운영 및 지원될 수 있는 최적화된 응용 프로그램을 만들 수 있으며 이러한 점이 4개의 구성 요소가 새롭게 반복될 때마다 시스템이 한층 개선되는 동적 주기로 간주되어야 하는 이유입니다.

MOF 프로세스 모델을 완료하려면 각 구성 요소의 효율성 평가를 위해 특정 관리 검토를 제공해야 합니다. 관리 검토는 다음과 같습니다.

  • 릴리스 준비 검토
  • 작업 검토
  • 서비스 수준 계약(SLA) 검토
  • 릴리스 승인 검토

MOF 프로세스 모델에서 설명되는 지침을 사용하여 다음과 같은 .NET 솔루션의 구축 및 운영과 관련된 작업을 구성할 수 있습니다.

  • .NET 솔루션의 일반 운영
  • .NET 솔루션의 인증 프로세스
  • 사용자 승인의 평가
  • 테스트 환경에서 최종 생산 환경에 이르기까지 .NET 솔루션의 준비 프로세스
  • 다른 시스템 및 서비스와의 통합

.NET 서비스 관리 기능 Back to Top

각 구성 요소에는 다른 작업들이 포함되며 일반 MOF 지침에서는 이러한 작업을 각 구성 요소에 대한 서비스 관리 기능(SMF)의 모음으로 정의합니다. 이러한 SMF의 대부분은 다음 .NET 응용 프로그램의 운영과 직접 관련이 있습니다.

  • 구성 관리
  • 보안 관리
  • 작업 일정 관리
  • 서비스 데스크
  • 사고 관리
  • 용량 관리

서비스 관리 기능에 대한 자세한 내용은 http://www.microsoft.com/business/services/MOFpmdetail.asp   를 참조하십시오.


.NET 운영 역할 및 업무 Back to Top

MOF 팀 모델은 각 SMF의 목적을 달성하기 위한 역할과, 각 역할과 관련된 업무를 정의합니다. 각 역할은 몇 개의 SMF에 참여할 수 있으며 각 구성 요소에서는 여러 개의 역할이 참여해야 합니다.

.NET 응용 프로그램, 구성 요소, 서비스에 기반한 시스템의 운영에서 다음 역할을 식별할 수 있습니다.

  • 릴리스 역할: 릴리스 관리자, 커뮤니케이션 코디네이터, 문서 코디네이터, 롤아웃 코디네이터, 테스트 코디네이터, 구성 관리자
  • 운영 역할: 네트워크 관리자
  • 보안 역할: 보안 관리자
  • 지원 역할: 서비스 데스크 관리자
  • 인프라 역할: 교육 관리자, 가용성 관리자, 용량 관리자

역할 및 업무의 명확한 정의는 모든 IT 시스템의 효율적인 운영에 중요합니다. 공식 MOF 설명서에 설명된 이러한 역할의 업무에 대한 자세한 내용은 http://www.microsoft.com/business/services/MOFteam.asp   를 참조하십시오.


.NET 솔루션에서 계층별 특정 작업 관리 Back to Top

.NET 응용 프로그램 및 구성 요소에 기반한 시스템 관리에는 다음과 같이 시스템의 계층에 따라 달라지는 많은 작업들이 포함되어 있습니다.

  • 네트워크 인프라 관리
  • 데이터 저장 관리
  • ASP.NET 응용 프로그램 관리
  • .NET 웹 서비스

본 문서의 뒷부분에서 이러한 계층의 일부를 개별적으로 다루고 있습니다. .NET Framework은 독립 실행형 응용 프로그램과 네트워크 응용 프로그램을 구현하는 데도 사용할 수 있습니다. 이러한 응용 프로그램의 작업은 표준 Windows 응용 프로그램의 작업과 상당히 다릅니다. 그러나 .NET Framework는 몇 가지 중요한 차이를 도입하고 있는데, 본 문서는 다음 절에서 이러한 차이를 자세히 다루고 있습니다. 이 지침을 사용하여 사용자의 특정 .NET 솔루션에 적합한 운영 가이드를 작성할 수 있습니다.


성능 모니터를 사용하여 .NET 응용 프로그램을 모니터링하는 방법 Back to Top

.NET Framework는 성능 모니터(시스템 모니터)를 사용하여 모니터링할 수 있는 몇 개의 개체 및 카운터를 표시합니다. .NET 응용 프로그램이 사용하는 성능 카운터의 전체 목록은 http://msdn.microsoft.com/library/en-us/cpgenref/html/gngrfperformancecounters.asp   를 참조하십시오.

이러한 도구를 사용하여 예를 들어 메모리 사용과 발생한 예외의 개수와 같이 응용 프로그램이 시스템에서 리소스를 사용하는 방법을 그래픽으로 나타낼 수 있습니다.

시작 메뉴에서 이러한 도구를 시작할 수 있으나 메뉴의 트리는 설치된 운영 체제에 따라 다릅니다. 다른 유용한 방법으로 명령 프롬프트 창에서 이를 직접 실행하거나, 다음과 같이 실행할 수도 있습니다.

  1. 시작 단추를 클릭하여 시작 메뉴를 표시한 다음 실행을 선택합니다.
  2. 그림 2와 같이 Perfmon.exe를 입력하고 확인을 클릭합니다.

     

    그림 2   시작 메뉴에서 성능 모니터 시작

    이때 성능 모니터는 기본 카운터만 표시합니다.

  3. 그림 3과 같이 도구 모음에서 추가 아이콘(+ 기호)을 클릭하고 표시하려는 성능 카운터를 선택합니다. .NET 카운터가 목록의 앞에 나타납니다.

     

    현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 3   성능 모니터에 .NET 카운터 추가

 


 

.NET 마법사 Back to Top

.NET Framework는 일반 작업을 수행하는 데 도움이 되는 3개의 마법사를 제공합니다. 이 마법사들은 ConfigWizards.exe라고 부르는 도구의 일부로서 디렉터리 %Windir%\Microsoft.NET\Framework\%.NETversion%에 위치합니다. 예를 들면, C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\ConfigWizards.exe와 같습니다.

시작 메뉴에서 이 도구를 관리 도구 그룹의 일부로서 액세스할 수 있습니다. 프로그램을 시작하면 그림 4와 같은 형태를 보게 됩니다.

 

그림 4   .NET 마법사


.net 보안 조정 Back to Top

첫 번째 마법사인 .net 보안 조정을 사용하면 현재 사용자 또는 전체 시스템의 각 영역에 적용되는 보안 수준을 조정할 수 있습니다. 이 설정은 .NET 응용 프로그램이 인터넷의 리소스, 로컬 인트라넷 또는 동일한 컴퓨터나 LAN에서 사용할 수 있는 다른 리소스에 액세스할 수 있는 방법에 적용됩니다. 이 도구를 사용하는 경우, 먼저 조정할 설정(로컬 컴퓨터 또는 현재 사용자)을 선택하면 Internet Explorer에서 친숙한 인터넷 설정 인터페이스가 표시되는데 이때 그림 5와 같이 각 영역의 보안 수준을 조정합니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 5   각 영역의 보안 수준 조정


어셈블리 신뢰 Back to Top

이 도구를 사용하여 특정 어셈블리의 보안 수준을 조정할 수 있습니다. 보안 수준을 조정하려면 다음 단계를 따르십시오.

  1. 어셈블리 신뢰 아이콘을 클릭합니다.
  2. 로컬 컴퓨터 또는 로컬 사용자의 변경 내용을 선택하고 다음을 클릭합니다.
  3. 신뢰할 어셈블리의 경로 또는 URL을 입력하고 다음을 클릭합니다.
  4. 그림 6과 같이 이 특정 어셈블리의 신뢰 수준을 선택합니다. 특정 어셈블리에 대해 전체 신뢰를 선택하면 해당 어셈블리는 모든 리소스에 액세스할 수 있습니다. 슬라이더를 이동하면서 각 수준의 설명을 읽으십시오.

     

    현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

    그림 6   어셈블리 신뢰

  5. 확인 페이지에서 마침을 클릭하거나 이전 페이지로 돌아가 신뢰 수준을 조정합니다.

이 방법은 다소 억지스러운 방법으로서 가능하면 사용하지 않을 것을 권합니다. 특정 사용자와 사용자 그룹에 사용할 수 있는 기능을 완전히 제어할 수 있으므로 올바른 보안 인식 코딩 기술을 사용하는 것이 좋습니다. 그러나 특정 응용 프로그램을 실행할 때 코드 기반의 보안 제어를 변경할 수 없는 경우 이 도구가 문제를 아주 신속하게 해결할 수 있습니다.


응용 프로그램 수정 Back to Top

그림 7에서 볼 수 있는 .NET 응용 프로그램 복원 도구는 특정 저장 지점에서 응용 프로그램 정책 설정을 복원하거나 나중에 테스트할 목적으로 안전 모드에 응용 프로그램을 저장할 수 있습니다. 그러나 응용 프로그램을 안전 모드에 저장하면 이 모드에서는 응용 프로그램이 게시자의 정책을 무시하므로 보안 또는 동작에 문제가 발생할 수 있습니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 7   응용 프로그램 구성 설정 복원


.NET 네트워크 구성 Back to Top

이 도구는 이름이 called mscorcfg.msc인 Microsoft Management Console(MMC) 스냅인으로서 다음 .NET Framework 기본 디렉터리에 위치합니다.

C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\mscorcfg.msc. 이 도구는 관리 도구 메뉴 그룹에서 액세스할 수 있습니다.

이 도구를 사용하여 다음 작업을 수행할 수 있습니다.

  • 어셈블리
    • 전역 어셈블리 캐시의 어셈블리를 관리합니다.
    • 전역 어셈블리 캐시의 어셈블리를 구성합니다.
  • 원격
    • 원격 서비스를 조정합니다.
  • 보안
    • 현재 .NET Framework 보안 구성을 봅니다.
    • 어셈블리 신뢰를 증가시킵니다.
    • 영역 보안을 조정합니다.
    • 어셈블리를 평가합니다.
    • 구축 패키지를 만듭니다.
    • 모든 정책 수준을 재설정합니다.
  • 개별 응용 프로그램
    • 이 도구를 사용하여 이전에 구성된 응용 프로그램을 봅니다.
    • 이 도구를 사용하여 구성할 응용 프로그램을 추가합니다.
    • 응용 프로그램의 등록 정보를 봅니다.
    • 응용 프로그램의 어셈블리 종속성을 봅니다.
    • 응용 프로그램의 어셈블리를 구성합니다.
    • 응용 프로그램의 원격 서비스를 조정합니다.

이 도구에 대한 자세한 내용과 단계별 작업 수행 방법은 http://msdn.microsoft.com/library/en-us/cptools/html/cpconnetframeworkadministrationtoolmscorcfgmsc.asp   를 참조하십시오.

그림 8은 이 도구에서 사용할 수 있는 옵션이 모두 표시된 전체 트리입니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 8   .NET Framework 구성 도구를 사용하여 할 수 있는 주요 작업


.NET 네트워크 인프라 관리 Back to Top

.NET 솔루션의 운영 가이드에는 최소 2개의 다이어그램이 들어 있어야 합니다.

  • .NET 솔루션 지원과 관련된 네트워크 구성 요소의 분포를 보여주는 실제 네트워크 토폴로지 다이어그램.
  • 모든 소프트웨어 구성 요소를 상관 관계로 배치한 논리적 흐름 다이어그램. 이 다이어그램은 네트워크 토폴로지의 다른 측면을 보여주나 2개의 보기 모두는 상호 충분한 연결로써 내재적인 관계를 보여주어야 합니다. 이 다이어그램의 주 목적은 다른 구성 요소 및 기존의 상호 종속성을 보여주는 데 있습니다.

운영 가이드에서는 내부 인프라와 인터넷 연결을 포함하여 다음과 같은 네트워크의 논리적 디자인을 설명합니다.

  • DNS 인프라
  • 모든 서버의 IP 구성

인터넷 네트워크 구성은 원하는 서비스를 효과적으로 실행하는 데 필요한 클라이언트와 프로토콜만 지원하도록 정의해야 합니다. 불필요한 여분의 프로토콜 및 서비스를 사용함으로 설정하면 아무런 이점 없이 서버에 오버헤드만 발생합니다.

주요 네트워크 운영에 관한 자세한 내용은 이 문서 범위를 벗어나므로 여기서는 다루지 않습니다. 추가 정보와 네트워크 운영과 관련된 특정 지침은 http://www.microsoft.com/technet/prodtechnol/windows2000serv/maintain/opsguide/netadmog.asp   에 있는 네트워크 관리 운영 가이드를 참조하십시오.


SQL Server 관리 Back to Top

Microsoft SQL Server는 대체로 대부분의 .NET 솔루션의 일부를 이루며, SQL Server를 제대로 운영하지 못하면 .NET 솔루션의 전체적인 성능이 떨어질 수 있습니다. SQL Server는 SQL Server 에이전트라고 부르는 특별 서비스를 사용하여 연산자, 경고, 작업을 정의함으로써 SQL Server에서 대부분의 반복적인 자동 관리 프로시저를 수행합니다. SQL Server 작업 엔진은 예를 들어 VBScript 및 JScript와 서버에서 사용할 수 있는 다른 스크립팅 언어는 물론 Transact-SQL 언어를 사용하여 복잡한 작업을 작성할 수 있는 풍부한 프로그래밍 환경을 제공합니다.

SQL Server는 자체의 백업 기능이 있어 시스템 안전 및 장애 복구를 보장하며 사용자는 시스템 장애 복구가 보장되도록 백업 전략이 제대로 수행되는지를 확인해야 합니다. 올바른 백업 전략은 복원 프로시저가 예상대로 진행되는지를 계속 확인하는 데 적용되는 테스트 프로세스만큼이나 중요합니다.

SQL Server 운영의 설명은 본 문서의 범위를 벗어나는 내용입니다. 일반 SQL Server 운영에 관한 자세한 내용은 http://www.microsoft.com/technet/prodtechnol/sql/maintain/operate/opsguide/default.asp   에 있는 SQL Server 2000 운영 가이드를 참조하십시오.


ASP.NET 응용 프로그램 관리 Back to Top

ASP.NET은 .NET 기반 시스템을 용이하게 운영할 수 있는 풍부하고 신축적인 구성 시스템을 제공합니다. 모든 구성 정보가 XML 기반의 텍스트 파일로 저장되므로 응용 프로그램을 다시 코딩할 필요없이 텍스트 편집기를 사용하여 이러한 파일을 쉽게 수정할 수 있습니다.

모든 응용 프로그램 디렉터리에 들어 있는 web.config라고 부르는 구성 파일이 이 디렉터리 및 자식 디렉터리에 저장된 ASP.NET 응용 프로그램의 구성 설정을 관리합니다. 자식 디렉터리에 있는 모든 응용 프로그램 파일은 부모 디렉터리에서 사용할 수 있는 구성 설정에 설정을 추가하거나, 구성 파일 ]이 특정 설정 상속을 차단하기 위해 설정을 무시할 수 있습니다.

machine.config라고 부르는 특수 구성 파일은 전체 웹 서버에 구성 설정을 제공합니다. 이 파일은 다음 디렉터리에 있습니다. %runtime install path%\Config\Machine.config. 아래의 예에서 이 파일의 위치는 C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\CONFIG\machine.config이며 여기서 v1.0.3705는 설치된 .NET 런타임 버전입니다.

다음 예는 ASP.NET가 구성의 상속을 적용하는 방법을 보여줍니다.

  1. 사용자가 다음 ASP.NET 응용 프로그램을 시작합니다.

    http://www.sqlclient.net/SalesReports/Year2002/SalesJune.aspx

  2. ASP.NET이 SalesReports 가상 디렉터리를 검색하여 이 파일의 실제 위치를 알아냅니다.
  3. ASP.NET이 실제 해당 디렉터리에 위치한 모든 web.config 파일을 검색합니다.
  4. 그리고 나서 ASP.NET은 Year2002 하위 디렉터리에 위치한 모든 web.config 파일을 검색하고, 해당 파일이 존재하면 구성 설정이 이전 단계에서 검색된 설정과 병합됩니다.
  5. 다음으로 ASP.NET은 논리 디렉터리에 위치한 동일한 응용 프로그램 또는 기타 응용 프로그램의 후속 실행을 위해 이 구성 정보를 캐싱합니다.

다른 사용자가 다음 URL, http://www.sqlclient.net/GeneralReports/SalesReports/Year2002/SalesMay.aspx을 요청하고 이 Year2002 디렉터리가 전과 동일한 실제 디렉터리인 경우, 구성 설정이 달라질 수 있습니다. 이렇게 되는 이유는 이 경우 ASP.NET이 다음 수준에서 web.config 파일에서 검색된 구성 설정을 병합해야 하기 때문입니다.

  • GeneralReports 가상 디렉터리가 가리키는 실제 디렉터리.
  • SalesReports 하위 디렉터리.
  • Year2000 하위 디렉터리.

ASP.NET은 구성 파일의 변경 내용을 검색하여 새 구성 설정을 변경 내용의 영향을 받는 웹 리소스에 자동으로 적용시킵니다. 변경 내용을 적용하기 위해 서버를 다시 부팅할 필요는 없습니다. 계층 구조의 구성 파일이 변경될 때마다 계층적 구성 설정이 자동으로 다시 계산되고 다시 캐싱됩니다. <processModel> 섹션은 예외입니다.

ASP.NET은 이러한 구성 파일에 대한 찾아보기 액세스를 특별히 차단하기 위해 Microsoft Internet Information Server(IIS)를 구성하며, 보안 위협을 방지하려면 이 파일에 대한 모든 다른 액세스 경로를 확인해야 합니다.

이 .NET 시리즈의 구축 문서에서는 web.config 파일에 있는 다른 구성 설정에 대해 상세히 설명합니다. ASP.NET 구성 파일에 관한 자세한 내용은 http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaspnetconfiguration.asp   를 참조하십시오.


ASP.NET 응용 프로그램 모니터링 Back to Top

ASP.NET은 응용 프로그램마다 개별적으로 성능 카운터를 제공하며 전체 ASP.NET 시스템을 모니터링하기 위해 전역 카운터를 제공합니다.

이러한 개체를 보려면 다음 단계를 따르십시오.

  1. 이 문서의 앞에서 설명한 perfmon.exe 응용 프로그램을 실행합니다.
  2. 도구 모음에서 보고서 보기 아이콘(메모장 아이콘과 유사)을 클릭하거나 Ctrl+R을 누릅니다.
  3. 추가 아이콘( + 기호)을 클릭하거나 Ctrl+I를 누릅니다.
  4. 성능 개체 드롭다운 목록에서 ASP.NET 응용 프로그램을 선택합니다.
  5. 특정 카운터만 보려면 모든 카운터 또는 다음 목록에서 카운터 선택을 선택합니다.
  6. 이제 모니터할 특정 ASP.NET 응용 프로그램을 선택하거나(다음 목록에서 인스턴스 선택) 모든 ASP.NET 응용 프로그램에서 성능 누적 카운터를 불러올 수 있습니다(모든 인스턴스). 그림 9와 같이 추가 단추를 클릭하여 선택한 카운터를 보고서에 추가합니다.

     

    그림 9   성능 모니터에 ASP.NET 응용 프로그램 카운터 추가

  7. ASP.NET 성능 개체를 통해 전체 ASP.NET 시스템과 관련된 카운터를 추가하거나 ASP.NET 응용 프로그램 성능 개체를 통해 특정 ASP.NET 응용 프로그램과 관련된 카운터를 선택할 수 있습니다. ASP.NET 응용 프로그램을 선택하는 경우 모니터링할 응용 프로그램을 지정하거나, _Total_ 인스턴스를 사용하여 ASP.NET 응용 프로그램의 총계에 대한 누적 카운터를 검색할 수 있습니다. 그러나 그림 10과 같이 ASP.NET 성능 개체를 선택하는 경우 이러한 카운터들이 ASP.NET 시스템 전역에서 유래하므로 특정 응용 프로그램 인스턴스를 선택할 수 없습니다.

     

     그림 10   성능 모니터에 ASP.NET 카운터 추가

시스템에 여러 버전의 .NET Framework를 설치한 경우 2개의 다른 버전(1.0.3215.14와 1.0.3705.0)이 있는 그림 11과 같이 특정 버전에서 성능 카운터를 선택할 수 있습니다. 이 경우, ASP.NET 성능 개체는 ASP.NET v1.0.3705.0과 동일하며, ASP.NET 응용 프로그램 성능 개체는 ASP.NET Apps v1.0.3705.0과 동일합니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 11   성능 모니터를 통해 표시되는 .NET 성능 개체

 

성능 개체와 카운터를 선택하고 나서 닫기를 클릭하면 그림 12와 같이 보고서가 표시됩니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 12    성능 모니터에서 .NET 카운터 보고

 

도구 모음에서 다른 아이콘을 선택하여 이 정보를 그래프(Ctrl+G) 또는 히스토그램(Ctrl+B)으로 표시할 수

있습니다. 다음은 주의해야 할 몇 가지 중요한 카운터입니다.

  • Physical Disk\reads/secPhysical Disk\writes/sec. 이 카운터들은 일반 카운터이지만 저장 시스템에서 실제 병목의 검색해낼 수 있는 중요한 정보를 제공합니다.
  • Process: ASP.NET\% Processor Time. 이 카운터의 값이 높으면 ASP.NET 작업 부하가 여러 서버(예: 웹 팜)에 걸쳐 분산되어 있다는 것을 의미합니다. 프로세서당 실제 작업 부하를 구하려면 이 값을 프로세서의 수로 나누어야 합니다.
  • Process: ASP.NET\Private Bytes. 이 카운터는 응용 프로그램 실행 카운터와 함께 모니터링해야 합니다. 응용 프로그램의 수가 동일하게 남아 있으나 Private Bytes 카운터에서 초과 시간이 증가하면, 일부 ASP.NET 응용 프로그램에서 메모리 누수가 발생하기 때문입니다.
  • ASP.NET Applications\Requests/sec. 이 카운터는 ASP.NET 하위 시스템의 실제 작업 부하를 정확하게 측정합니다.

기본적으로, 선택된 카운터는 시스템의 다음 주요 구성 요소에서 발생할 수 있는 문제를 검색하도록 정보를 제공합니다. CPU, 메모리 및 저장소. 이러한 성능 카운터를 사용하는 방법에 관한 예는 MSDN의 다음 ColdStorage 응용 프로그램 예제에서 볼 수 있습니다.

http://msdn.microsoft.com/library/en-us/dncold/html/storcpctyplan.asp   


작업 부하 분산 및 ASP.NET 응용 프로그램 Back to Top

ASP.NET 응용 프로그램에 대한 요청 수가 많을 경우 Windows 네트워크 로드 균형 조정(WNLB)을 실행하는 웹 서버의 웹 팜을 설치하는 것이 좋습니다. 이를 설치하면 사용자에 대한 가상 액세스 지점을 볼 수 있으며 WNLB이 웹 팜의 모든 구성원에 걸쳐 투명하게 작업 부하를 분산합니다.

ASP.NET은 세션 상태 저장과 관련하여 다양한 기능을 제공하여 웹 팜에서 레거시 ASP 응용 프로그램을 실행할 때 발생하는 대부분의 문제를 해결합니다. 특정 응용 프로그램의 web.config 파일을 사용하여 상태를 저장하는 방법을 지정할 수 있습니다. 다음은 사용할 수 있는 옵션입니다.

  • InProc.: InProc 모드는 ASP.NET 작업자 프로세스의 메모리에 값을 저장합니다. 이 프로세스와 관련된 상호 프로세스가 없기 때문에 이 모드는 ASP.NET에 상태를 가장 빠르게 저장합니다. 그러나 어떤 이유로든 작업자 스레드가 다시 초기화되거나 사용자 세션이 웹 팜의 다른 서버를 방문하면 모든 상태 정보가 완전히 손실됩니다. 다음 예는 web.config 파일에서 이 옵션을 설정하는 방법입니다.

    <configuration>

       <system.web>

          <sessionState mode="Inproc"

                   cookieless="true"

                   timeout="20" />

          </sessionState>

       </system.web>

    </configuration>

  • StateServer. 이 모드는 ASP.NET State Service (또는 aspnet_state)라고 부르는 독립적인 Windows 서비스를 사용합니다. ASP.NET 응용 프로그램이 특정 세션 동안 작업 프로세스를 재활용하는 경우 상태가 작업자 프로세스에 할당된 로컬 메모리에 저장되지 않으므로 안전합니다. 확장성을 높이기 위해 State Service가 이 정보를 저장하는 ASP.NET의 다른 서버에 세션 상태를 저장할 수 있습니다. 위와 같이 저장하려는 경우 이 서비스가 사용하는 서버의 이름과 IP 포트만 알면 됩니다(기본값은 42424). 그 밖의 이점으로 IIS를 다시 시작해도 세션 상태가 손실되지 않으나 이러한 프로세스간 통신은 약간의 오버헤드를 발생시키므로 InProc만큼 효율적이지 않습니다. 웹 팜의 경우 다른 서버에 세션 상태를 저장하는 것이 대체로 최상의 솔루션입니다.

    <configuration>

       <system.web>

          <sessionState mode="StateServer"

             stateConnectionString="tcpip=stateserver.mydomain.com:42424"

                cookieless="false"

             timeout="20" />

          </sessionState>

       </system.web>

    </configuration>

    레지스트리의 키에서 aspnet_state 서비스의 기본 포트를 다음과 같이 변경할 수 있습니다.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\Port.

    제어판의 서비스 애플릿을 사용하여 aspnet_service를 시작하고 중지하거나, 다음 명령 프롬프트를 열고 실행할 수 있습니다.

    Net start aspnet_state

    Net stop aspnet_state.

  • SqlServer. StateServer는 웹 팜에서 세션 상태의 중앙집중화된 저장소를 제공하나 aspnet_state 서비스는 관계형 데이터베이스가 아니므로 대부분의 관계형 데이터베이스 시스템에 안정성을 제공하는 트랜잭션 성능이 떨어집니다. SQL Server를 사용하여 세션을 저장할 수 있습니다. 이 프로세스는 정보를 다른 프로세스 또는 다른 서버에 저장해야 하므로 InProc보다 효율성이 떨어집니다. 그러나 실제 작업 부하와 데이터베이스 구성에 따라 aspnet_state 서비스를 사용하면 효율성을 높일 수 있습니다. 다음과 같이 web.config 파일에 이 옵션을 지정할 수 있습니다.

    <configuration>

       <system.web>

          <sessionState mode="SqlServer"

    sqlConnectionString="data source= mysql.mydomain.com;User id=StateUser;password=StatePassword;"

                   cookieless="false"

                   timeout="20" />

          </sessionState>

       </system.web>

    </configuration>

    기본적으로 사용자는 web.config 파일을 찾아볼 수 없기 때문에 이 파일에 저장된 암호를 읽을 수 없습니다. 그러나 이 사용자 이름과 암호는 세션 상태를 저장해야 하는 ASPState 데이터베이스에 대한 액세스 권한만 있으며, 보안이 위협당할 수 있습니다.

다음 주소의 .NET Framework 파일에 있는 InstallSqlState.sql 스크립트를 사용하여 ASPState 데이터베이스를 만들 수 있습니다.

C:\Windows\Microsoft.NET\Framework\v1.0.3705

(참고: 이 예에서 Windows가 C:\Windows 디렉터리에 설치되어 있고 .NET Framework 버전이 1.0.3705이므로 사용자의 특정 경우에는 경로가 올바른지를 확인해야 합니다.)

안정성을 높이기 위해 장애 조치 클러스터에 SQL Server를 설치하여 특정 SQL Server 서비스에서 발생할 수 있는 장애에 대해 세션을 보호할 수 있습니다.

Performance Tuning a .NET Deployment 백서에서 ASP.NET 응용 프로그램의 작업 부하 분산에 관한 추가 정보를 볼 수 있습니다.


ASP.NET 응용 프로그램 문제 해결 Back to Top

이벤트 뷰어를 사용하여 ASP.NET 응용 프로그램에서 만든 이벤트를 찾을 수 있습니다. 또한 필터를 지정하여 그림 13과 같이 응용 프로그램 로그에서 ASP.NET 이벤트만 표시할 수 있습니다.

 

그림 13   이벤트 뷰어에서 필터를 작성하여 ASP.NET 이벤트만 표시

 

그림 14와 같이 정보가 제공됩니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 14   이벤트 뷰어에서 필터링된 ASP.NET 이벤트 보기


ASP.NET 응용 프로그램 추적 Back to Top

ASP.NET은 디버그 문을 추적하여 응용 프로그램을 디버깅하는 강력한 도구를 제공합니다. 다음 웹 사이트에서 이 기능에 관한 내용을 참조할 수 있습니다.

http://msdn.microsoft.com/library/en-us/cpguide/html/cpcontracefunctionality.asp   

그러나 프로덕션 서버에서는 이 기능을 사용해서는 안됩니다. 이를 위해서 다음 구성 파일과 같이 해당 ASP.NET 응용 프로그램의 web.config 파일의 <system.web> 섹션을 편집하고 추적이 사용 안 함으로 설정되었는지 확인할 수 있습니다.

<configuration>

   <system.web>

      <trace enabled="false"

            pageOutput="true"

            requestLimit="15" />

   <system.web>

</configuration>

Performance Tuning a .NET Deployment Guide 백서에서 ASP.NET 응용 프로그램 추적에 관한 추가 정보를 참조할 수 있습니다.


.NET 웹 서비스 관리 Back to Top

대부분의 경우 웹 서비스에도 적용되는 ASP.NET 응용 프로그램에 대해 논의된 정보 외에, .NET Framework 소프트웨어 개발 키트는 .NET Framework에 기반한 응용 프로그램과 구성 요소를 만들고 배포 및 관리하는 도구를 제공합니다. 각각의 이러한 도구에 대한 설명은 이 문서의 범위를 벗어나나, 다음 주소의 .NET Framework SDK 웹 사이트에서 도구에 대한 상세한 설명을 참조할 수 있습니다.

http://msdn.microsoft.com/library/en-us/cptools/html/cpconnetframeworktools.asp   


.NET 웹 서비스의 모니터링 및 문제 해결 Back to Top

성능 모니터를 사용하여 CPU와 메모리 사용과 같은 특정 웹 서비스의 특정 카운터에 액세스할 수 있습니다. 일부 경우 IIS Post Requests/sec 카운터를 사용하여 가상 서버에 대한 요청을 추적하는 것과 같이 웹 서비스 활동을 간접적으로 모니터링할 수 있습니다. 이 서버가 주로 웹 서비스를 실행하는 중간 계층 서버로 사용되는 경우 이 카운터는 사용자의 웹 서비스가 얼마나 사용되고 있는지를 알려줍니다.

HTTP를 사용하여 웹 서비스에 대한 요청을 보내는 경우 IIS에 포함된 로깅 기능을 사용하여 IIS 자체에서 이러한 요청을 모니터링할 수 있습니다. 이벤트 뷰어를 사용하여 특정 웹 서비스와 관련된 이벤트 로그를 볼 수 있으며 이 웹 서비스가 System.Diagnostics.EventLog namespace를 제대로 사용하는 경우 이 정보는 일반적으로 웹 서비스 및 .NET 응용 프로그램의 문제를 해결하는 데 매우 유용할 수 있습니다. 예를 들어 EventLog 클래스를 사용하여 이벤트 로그에 있는 특정 이벤트를 검색하고 새 이벤트를 쓸 수 있으며, 그 결과 응용 프로그램의 문제를 해결하는 데 있어서 .NET Framework와 기타 Windows 서비스에서 만들어지는 표준 오류 정보보다 훨씬 더 풍부한 정보를 제공합니다.

응용 프로그램의 디버깅은 매우 유용한 문제 해결 기술입니다. 그러나 테스트 환경에서의 웹 서비스 디버깅을 고려해야 합니다. 그렇지 않은 경우 프로덕션 시스템에 간헐적이긴 하지만 허용 불가능한 중단 시간이 발생합니다. 일부 경우 추적 기능을 사용하여 응용 프로그램을 디버깅할 수 있으나 테스트 환경에서 프로덕션 서버의 불필요한 오버헤드를 방지할 수 있습니다. 웹 서비스 문제 해결에 관한 자세한 내용은 다음 웹 사이트를 참조하십시오.

http://msdn.microsoft.com/library/en-us/dnservice/html/service12192001.asp   


분산 트랜잭션 관리 Back to Top

웹 서비스가 자동 트랜잭션을 사용할 때와 같이 COM+에서 트랜잭션 기능을 사용하는 경우 구성 요소 서비스 도구(C:\WINDOWS\system32\Com\comexp.msc)를 사용하여 이러한 트랜잭션에 관한 정보를 볼 수 있습니다. 그림 15와 같이 이 도구는 시작 메뉴에서 관리 도구의 일부로서 사용할 수 있습니다.

현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 눌러 새 창에서 볼 수 있습니다.

그림 15   구성 요소 서비스를 사용하여 분산 트랜잭션 통계 표시

 

이 도구는 시스템에서 동시에 실행할 수 있는 트랜잭션의 수에 관한 정보뿐만 아니라 트랜잭션 시스템을 미세하게 조정하는 데 도움이 되는 응답 시간에 관한 정보도 제공합니다.

Microsoft .NET Framework는 보안 및 확장 가능한 서버 및 클라이언트 응용 프로그램이 실행되는 강력하고 견고한 플랫폼을 제공합니다. .NET 솔루션 기능의 중요한 부분은 IIS, SQL Server 및 기타 Windows Server System과 같은 네트워크 인프라와 백 엔드 서비스에 기반을 두고 있습니다. 본 문서는 .NET 응용 프로그램과 이와 관련된 IT 시스템을 운영하는 방법에 관한 자세한 정보를 제공합니다. 그러나 .NET 응용 프로그램에 기반한 IT 인프라를 성공적으로 운영하려면 MOF에서 제안하는 것과 같은 적절하고 일관성있는 관리 구조를 이해해야 합니다.