Windows Azure Platform에 추가된 기능 중에서 실제 현업 개발자들이 자주 질문하는 것으로 Windows Azure 인스턴스에 대해 원격 접속 기능을 통해 접근 가능하다고 하는 이에 대해 알려 달라는 것이다. 특히 VM Role을 선보이면서 기존 개발 환경을 클라우드로 확장할 수 있는 가능성을 열어 주다 보니, 개발자들이 흔히 하고 있는 원격 접속 기능을 써서 Windows Azure내의 인스턴스에 접근하고 싶어하는 것은 당연한 일일 것이다.

원격 접속을 가능하게 하는 방법을 알아보자.
1. 여느 애플리케이션처럼 Web Role을 하나 만들자

2. 로컬에서 테스팅이 끝난 이 Web Role을 클라우드로 Publish하자. 이때 설정할 것들이 있다. 기본적으로 Visual Studio에서 Windows Azure Management Portal에 곧바로 Publish하기 위해서는 인증서 설치가 필요하다. 이 과정은 이 글과 직접 관련이 없으므로 여기서는 생략하기로 한다. (Visual Stuido에서 하라는 대로 따라하여 생성한 인증서를 Windows Azure Management Portal에 등록하는 것까지 마쳤다고 가정한다.) 그런 후 모습은 아래와 같다.

3. Publish를 위한 “Deploy Windows Azure Project” 팝업 화면 아래 부분에 "Configure Remote Desktop connections…”라는 링크를 클릭한다. 새로 뜨는 팝업 "Remote Desktop Configuration"의 “Enable connections for all roles”를 선택하여 화면을 enable시킨다.
  
콤보박스에서 <Create…>를 선택하여 필요한 정보를 기입한다. Account expiration date을 지정하게 되어 있음을 알 수 있고, 이로써 원격 접속을 써서 Windows Azure 인스턴스를 접속하는 기능을 항상 열어 놓고 쓰는 것을 추천하지 않음을 알 수 있다.
 
4. 이로써 인증서가 생성되어 PC에 저장되었으며, 다음 단계는 이 인증서를 Windows Azure Management Portal에 등록하는 것이다. 이를 위해 생성한 인증서를 저장소로부터 export하는 작업이 선행되어야 하는데, 두 가지 방법이 있다.
첫번째 방법은, 위 화면에서 OK를 눌러 화면을 닫기 전에, 콤보박스 옆의 “View” 버튼을 클릭한다. 인증서 팝업의 “Details” 탭에서 “Copy to File…” 버튼을 클릭여 “Certificate Export Wizard”를 실행시킨다.
  
두번째 방법으로는, 윈도우의 시작—>실행창에서 certmgr.msc를 실행시키면 아래와 같은 인증서 관리 화면이 뜬다. 여기서 “Personal –> Certificates”에서 방금 생성한 인증서를 마우스 오른쪽 버튼 클릭으로 export하면 위와 동일한 “Certificate Export Wizard”가 실행됨을 알 수 있다.

”Certificate Export Wizard” 실행화면에서 계속을 선택하면 Private Key를 함께 export할지를 결정하는 화면이 나오는데, 여기서 private key를 함께 export하도록 선택한다. 이어지는 화면에서 자동 선택되어 있는 PFX 포맷을 그대로 선택하고 다음을 누른다.

패스워드와 인증서 사본을 저장할 위치를 입력하면 인증서 저장이 끝나게 된다.

5. 이제, 저장된 인증서를 Winows Azure Management Portal에 등록하는 과정이 필요하다. 이 인증서를 아래 그림에서 보듯이 내가 만든 애플리케이션이 deploy될 “Hosted Services” 밑에 “Certificate”에 저장하여야 한다. 아래 그림의 좌측 메인 메뉴 중에 있는 “Management Certificates” 항목은 위에서 잠시 언급한 Visual Studio에서 직접 deploy하기 위해 필요한 인증서를 저장하는 곳이므로 헷갈리지 않도록한다.
 
좌측 상단의 “Add Certificate” 버튼을 클릭하여 좀 전에 저장한 인증서와 패스워드를 입력하고 “Create”를 클릭하면 인증서 등록이 끝나게 된다.

6. 인증서 관련된 일이 다 끝났으므로 이제 Visual Studio에서 직접 배포하면 된다. 아래는 배포가 진행중인 모습을 보여준다.

7. 배포가 끝났으면 이제 원격 접속을 통해 접근해보자. 특정 인스턴스를 선택한 후 “Connect” 버튼을 클릭한다. RDP 스크립트를 실행할 것인지를 물어보는데, 실행을 선택한다.

보안 팝업이 뜨고 계속 진행하면, 접속 아이디와 패스워드 입력창이 나오는데, 인증서 등록시 지정한 아이디와 패스워드를 입력하면 된다. 다시 한번 보안 경고창이 뜨고 원격 접속을 통한 화면이 보이게 된다.

원격 접속에 성공한 후 모습이다. 썰렁하지 그지 없다.

위 과정에서 보듯이 원격 접속은 Windows Azure Management Portal의 “Connect” 버튼 클릭을 통해서만 가능하다. 위에서 처럼 3개의 인스턴스를 실행할 경우, 내부적으로 Fault Tolerance 기능을 제공하기 위해 반응없는 인스턴스 대신에 새로운 인스턴스를 자동으로 띄우는 기능이 있기  때문에 IP 주소는 변동이 될 가능성이 있기에 IP를 기억하는 것은 무의미하다. 또한 각 인스턴스를 원격 접속해 보면 알 수 있지만, 이 세 인스턴스는 모두 내가 지정한 같은 도메인 이름을 공유하기 때문에, 외부에서는 해당 도메인 이름의 특정 인스턴스를 지정해서 접속할 방법이 없는 것이다. 따라서 항상 Windows Azure Management Portal을 통해서만 접속할 수 있다.

Posted by 장현춘

댓글을 달아 주세요