Windows Azure 의 VM Role 에 대한 이해
지난해 PDC10에서 Windows Azure의 VM Role 에 대한 발표가 있었습니다. 이 새롭게 추가된 기능에 대해서 오해할 수 있는 부분이 있어서 포스팅을 합니다.
기존에 Windows Azure는 Web Role과 Worker Role 이라는 형태로 각각 IIS에서 구동되는 것과 System 에서 구동되는 것으로 구분되어서 클라우드에 배포할 수 있었습니다. 예를 들면 웹 애플리케이션의 Front-End 부분은 Web Role로 돌린다면, 필요한 Business Logic은 Worker Role로 돌리는 형태가 됩니다.
여기서 Role이라는 것은 하나의 VM(Virtual Machine)으로 클라우드 환경에 최적화된 Windows Server 2008 Machine 이라고 볼 수 있습니다. PDC10에서 추가된 원격접속(remote desktop connection)기능으로 접속해보면 Windows Azure에 대한 궁금증을 많이 해소하실 수 있습니다.
VM Role은 Windows Server 2008 R2의 Hyper-V 기반에서 하드 디스크를 VHD로 만들고 이를 Windows Azure 상에 올릴 수 있도록 합니다. PDC10의 키노트에서 데모로 보여준 TFS(Team Foundation Server) 같이 설치 및 설정이 복잡한 환경의 경우 VM Role로 올리면 쉽게 클라우드로 서비스를 올릴 수 있게 되는 것이죠.
여기서 오해할 수 있는 부분은 VM Role을 이용하면 어떻게 구성된 Windows Sever 2008 R2 환경들도 VHD로 만들어서 Windows Azure 위에서 호스팅 할 수 있지 않나 하는 것인데요, VHD형태의 VM을 호스팅 하는 서비스와의 VM Role의 운영에 차이점은 VM Role 은 데이터를 지속적으로 갖는 것을 보장할 수 없다는 점 입니다.
Windows Azure의 Web Role과 Worker Role의 장점은 필요한 만큼 Instance의 숫자를 늘리고 줄이고 하는데 있습니다. 어찌 보면 이것을 위해서 Role이라는 형태로 Packaging 을 하고 관리 하고 있고요. 이때 같은 역할을 하는 여러 Instance가 생기기 때문에, 이것이 공통적으로 사용할 수 있게 Storage를 분리하는 것이 필요합니다.
예를 들어 특정 사용자가 1번 Instance에 접속을 해서 그 Instance의 하드 디스크에 본인의 데이터를 저장했다면, 그 사용자가 추후 접속을 했을 때, 로드 밸런서에 의해 1번이 아닌 Instance에 접속을 하면 이전에 저장한 데이터를 볼 수가 없게 됩니다. 또한 특정 Instance가 장애로 소멸되고, 새 Instance가 자동으로 생성되게 되면 소멸된 Instance만이 갖고 있던 데이터도 사라지게 됩니다.
VM Role도 미리 구성된 VHD를 올리는 것만 다를 뿐이지, Web Role이나 Worker Role 처럼 필요에 따라 다수의 Instance로 확장 혹은 축소 할 수 있습니다. 따라서 VHD에 설정된 애플리케이션이나 서비스들이 필요한 데이터를 하드 디스크에 남기도록 되어 있거나, registry 에 저장하도록 되어 있다면 이에 대한 처리가 필요 합니다.
그리고 기존 Web Role과 Worker Role의 경우 Windows Azure에서 Windows Update 나 Patch 등을 담당했던 것에 비해서, VM Role의 경우는 이를 직접 Update 및 패치를 해주는 것이 필요 합니다. Windows Azure 같은 클라우드 플랫폼이 주는 관리 자동화의 장점 중의 한가지를 활용하지 못하게 되는 것이죠.
정리하면 VM Role로 인해서, Windows Server 2008 R2에 여러 가지 서버 프로그램들을 미리 설치하고, 설정을 한 후에 VHD로 만들어서 Windows Azure위에 쉽게 올릴 수는 있지만, 이것을 Windows Azure 인프라 내에서 확장 및 축소가 될 수 있도록 하려면 데이터 관련한 것들을 Windows Azure Storage 와 같은 저장소를 이용하도록 수정하는 것이 필요 합니다. 그리고 VHD에 설치된 OS에 대한 패치나 업데이트는 직접 해주어야 합니다.
Windows Azure VM Role 관련 참고 자료
- 남정현 Windows Azure MVP의 VM Role 미리보기 시리즈
- Overview of the Windows Azure VM Role