윈도우 애저를 오픈 클라우드라고 이야기를 있는 이유는 특정 언어나 프레임워크를 제한하지 않기 때문 입니다. 간단히 말씀 드리면, 윈도우 서버 2008 에서 구동할 있게 개발 것은 난이도의 차이가 있지만, 대부분 윈도우 애저에서도 구동할 있습니다.

   

다시 말하면, 자바나 아파치 웹서버, PHP, JSP, 루비, 파이썬 등이 윈도우 서버에서 구동할 있는 것과 마찬가지로 윈도우 애저에서 구동을 있습니다. 포스팅에서는 최근에 업데이트된 자바 스타터 킷을 통해서 윈도우 애저에서 JSP 구동하는 것을 간단히 설명 하려고 합니다. 실제로 따라 하실 경우에는 여기 원문 링크에 있는 내용으로 차근차근 하시는 것을 권장 합니다.

   

진행 하려는 것을 설명에 앞서 간단히 말씀 드리면, 윈도우 애저에 올라가는 패키지에 아파치 웹서버와 자바 런타임 환경(JRE) 같이 포함 시키고, 윈도우 애저에서 해당 패키지의 인스턴스가 생성 아파치와 JRE 시작 시키면 됩니다. 별로 대단할 없죠?

   

같은 작업을 자바 개발자들이 많이 사용하는 이클립스에 추가 모듈을 설치해서 보다 쉽게 진행을 있습니다. 먼저 스타터 킷의 설치를 위해서 이클립스를 다운로드 받은 후에 실행하시고, 아래처럼 Help 메뉴에서 Install New Software 선택합니다.

   

   

그리고 자바용 윈도우 애저 스타터 플러그인을 설치하기 위해서 아래 URL 입력 후에 Add 버튼을 눌러줍니다.

http://webdownload.persistent.co.in/windowsazureplugin4ej/

   

   

설치가 끝나고 이클립스를 시작하면 아래 처럼 메뉴 File New에서 Windows Azure Project 시작하실 있습니다.

   

   

프로젝트 이름을 입력하고, Finish 버튼을 클릭하면 아래와 같은 파일 구조가 생성이 됩니다.

아래 폴더 구조를 보면 기존 윈도우 애저 프로젝트에 있는 정의 파일(ServiceDefinition.cscdef ) 설정파일(ServiceConfiguration.cscfg) 이외에 자바 애플리케이션을 구동하기 위해서 빌드 작업을 담당하는 .cspack.jar 파일과 실제 애플리케이션인 HelloWorld.zip 그리고 인스턴스가 시작 시에 서버와 자바 런타임 환경을 실행시켜주는 util\Startup.cmd 파일, 끝으로 ZIP 압축을 풀어주기 위해서 사용되는 unzip.vbs 스크립트 등이 있습니다.

   

   

자바 서버 환경 구성에 특별한 제한은 없지만, 편의 아파치 톰캣 서버를 사용하도록 하겠습니다.(원문에는 제티 서버도 같이 나와 있습니다.) 아래처럼 approot 폴더 안에 JRE tomcat 같은 폴더를 만들고 각각에 대한 압축 파일을 추가 합니다. JRE 같은 경우는 JRE 설치 후에 생기는 C:\Program Files\Java\jre6 안의 내용을 압축해서 추가해 주면 됩니다.

   

   

간단히 테스트를 위해서 템플릿에서 기본적으로 생성하는 HelloWorld.zip 파일을 삭제하고 아래 처럼 JSP 파일을 하나 추가해 줍니다.

   

   

간단히 JSP 파일의 내용을 구성하고, 가장 중요한 startup.cmd 파일의 내용을 아래처럼 만듭니다. 아파치 톰캣의 버전이 다르다면 그에 맞게 적어주셔야 합니다. jre 압축파일 안에 JRE 폴더가 있는 것으로 생각하고 구성되었습니다.

SET APPROOT=%CD%

@REM unzip Tomcat
cscript /B /Nologo %APPROOT%\util\unzip.vbs Tomcat\apache-tomcat-7.0.6-windows-x64.zip %APPROOT%

@REM unzip JRE
cscript /B /Nologo %APPROOT%\util\unzip.vbs JRE\jre6.zip %APPROOT%

@REM copy project files to server
md %APPROOT%\apache-tomcat-7.0.6\webapps\myapp
copy %APPROOT%\HelloWorld.jsp %APPROOT%\apache-tomcat-7.0.6\webapps\myapp

@REM start the server
cd %APPROOT%\apache-tomcat-7.0.6\bin
set JRE_HOME=%APPROOT%\jre6
startup.bat

이제 윈도우 애저에 올라가서 사용할 포트 넘버를 설정해야 하는데요, 프로젝트의 속성에 Windows Azure 메뉴에 들어가서 Role Edit 버튼을 클릭 합니다.

   

롤의 이름 가상 머신의 크기 그리고 인스턴스의 개수 등을 설정하실 있고 다시 Edit 버튼을 누르시면 아래처럼 EndPoint 설정하실 있습니다. Public Port 클라우드에 올렸을 경우에 80 포트를 통해서 접속하는 것이며, Private Port Public 포트(80 ) 요청된 접속을 인스턴스의 8080 포트로 전달하는 입니다.

   

   

이제 설정은 끝났고, Project 메뉴에서 Build All 하시면 아래의 deply 폴더가 생기게 되고, 실제로 여기에 있는 파일들이 클라우드에 올라가게 됩니다.

   

   

로컬 머신에서 테스트를 하려면 가상 클라우드 에뮬레이터를 띄워야 하는데요, DisplayEmuatorUI.cmd 실행하시면 Windows Azure Compute 에뮬레이터가 뜨고, RunInEmulator.cmd 실행하시면 에뮬레이터에 윈도우 애저 인스턴스가 아래처럼 생성되어 작동 됩니다. 작동하는 것이 끝나면, 인스턴스를 에뮬레이터에서 제거하기 위해서 ResetEmulator.cmd 실행해 주면 됩니다.(cmd 실행해 때는 Open with … System Editor 하시면 됩니다)

   

   

http://localhost:8080/myapp/ URL에 접속해 보시면 작성한 JSP 파일이 윈도우 애저 가상환경의 아파치 웹서버 그리고 자바 런타임 환경에서 동작하는 것을 보실 있습니다.

   

이제 윈도우 애저에 올려야 차례인데요, 올리기 위해서는 package.xml 파일에서 packagetype local에서 cloud 변경해 주면 클라우드에 올릴 .cspkg 파일이 생성됩니다. 이것과 환경 설정 파일인 .cscfg 파일을 윈도우 애저에 업로드하면 배포가 완료 됩니다.

   

제가 블로깅한 내용에 대한 보다 상세한 원문은 아래 링크를 보시길 바라며, 진행 안되시거나 궁금한 내용은 포스팅에 댓글을 달아 주시면 답변 드리도록 하겠습니다.

   

http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-eclipse