안녕하세요. 김도명입니다.

이번 포스팅에서는 Windows Azure의 Startup Task에 대해 알아보도록 하겠습니다. 포스팅의 내용은 아래 링크들을 참고하여 작성되었습니다.

Run Startup Tasks in Windows Azurehttp://msdn.microsoft.com/en-us/library/windowsazure/hh180155.aspx

Use AppCmd.exe to Configure IIS at Startup : http://msdn.microsoft.com/en-us/library/windowsazure/hh974418.aspx



Windows Azure는 On-Premise 환경이 아닌 클라우드 환경입니다.

그렇기 때문에 Deploy된 내용을 제외한 환경(OS 이미지 등)이 변경될 수 있습니다. 이는 이전 On-Premise 환경과 같이 관리자가 수동으로 서버의 레지스트리 값을 변경한다던가, IIS의 설정을 변경한다던가 하는 등의 설정이 초기화 될 수 있다는 것을 뜻합니다.

이에 Windows Azure에서는 Startup Task라는 것을 제공합니다. Web Role또는 Worker Role이 시작되기 이전에 필요한 구성 작업 등을 수행함으로써 서버 이미지가 변경되어도 동일한 구성을 유지할 수 있게 해줍니다.

이 Startup Task를 이용하면 AppCmd를 통한 IIS 설정, 환경 변수 설정, PowerShell 명령어 수행, 방화벽 규칙 등의 설정이 가능합니다.



그럼, 예시를 통해서 Startup Task를 어떻게 사용할수 있는지 설명드리도록 하겠습니다.

먼저 Visual Studio를 통해 Azure 프로젝트를 생성합니다.

 


Test를 위해 WebRole을 하나 추가합니다.



생성된 WebRole 프로젝트의 모습입니다.



생성된 WebRole를 Windows Azure 환경에 Deploy 합니다. 이때, 추후 설정 변경의 확인을 위해서 RDP 설정을 활성화 시켜줍니다.



Deploy 가 끝난 이후, RDP 연결을 통해서 접속한 서버의 IIS 입니다.



이제, Startup Task를 통해서 아래와 같이 120초(2분)으로 설정되어있는 IIS의 Connection Time-out을 180초(3분)로 변경해보도록 하겠습니다. 



다음과 같이 AppCmd 명령어를 작성하여 .cmd 파일을 생성하고, WebRole 프로젝트 안에 추가시켜줍니다. (이때 .cmd 파일의 'Copy to Output Directory' 설정은 'Copy always'로 설정하여야 합니다.)

PowerShell 명령어 등도 동일한 방식으로 .cmd 파일안에 작성하여 사용할 수 있습니다.




cmd 파일이 프로젝트 안에 추가되었으면, ServiceDefinition.csdef 파일을 열어서 아래와 같이 Startup 섹션을 추가해줍니다.

 


이제 Azure에 다시 Deploy 하고 나면, 아래와 같이 IIS의 Connection Time-out 설정이 3분으로 변경되어있는 것을 확인할 수 있습니다.



감사합니다.

저작자 표시 비영리 변경 금지
신고
Posted by kdmsong

BLOG main image
http://SharePointSchool.net by kdmsong

분류 전체보기 (262)
SharePoint 2013 (1)
SharePoint 2010 (224)
MOSS 2007 (3)
SharePoint 세미나 (9)
Windows Azure (7)
IIS 6.0 ~ 8.0 (8)
개발자 기본 소양 (10)
Etc. (0)
Total : 395,624
Today : 71 Yesterday : 136
Statistics Graph

free counters