내보내기(0) 인쇄
모두 확장

Windows Azure에서 VM 역할의 서버 이미지 만들기

업데이트 날짜: 2011년 3월

[Windows Azure의 VM 역할 기능은 2013년 5월 15일에 만료됩니다. 만료 날짜 이후에 VM 역할 배포는 삭제됩니다. 기존 응용 프로그램을 계속 사용하려는 경우 Windows Azure 가상 컴퓨터를 사용할 수 있습니다. 사용 중인 응용 프로그램을 위해 가상 컴퓨터를 사용하는 방법에 대해서는 Moving from VM Role to Windows Azure Virtual Machines(VM 역할에서 Windows Azure 가상 컴퓨터로 이동)를 참조하십시오.

Windows Azure에서 실행되는 모든 역할 인스턴스는 Windows Server 운영 체제 버전을 실행 중인 가상 컴퓨터이므로 Windows Azure용 VM 역할은 다른 역할과 비슷합니다. VM 역할과의 차이점은 사용자가 서버의 이미지를 만들고 관리한다는 점입니다. 이렇게 하려면 기본 VHD를 만들고 Windows Azure 통합 구성 요소를 설치하고 응용 프로그램을 설치하고 사용자 지정 항목을 만들고 이미지를 일반화한 다음 Windows Azure에 업로드합니다.

표준 Windows 이미지 생성 기술을 사용하여 사용자 지정 Windows Server 2008 R2 이미지를 만들 수 있습니다. 예를 들어 Hyper-V 관리자를 사용하여 Windows Azure에 업로드된 기본 VHD를 만들 수 있습니다.

기본 VHD에는 운영 체제, 운영 체제 사용자 지정 항목 및 응용 프로그램이 포함되어 있습니다. Hyper-V 관리자를 사용하여 기본 VHD를 만들 수 있습니다. 서버 이미지를 만들고 준비한 후 VHD는 Windows Azure 관리 포털에 업로드됩니다.

다음 정보를 통해 VHD 및 서버 이미지에 대해 자세히 알아볼 수 있습니다.

기본 VHD에 최대한 많이 배치하는 것이 좋습니다. 차이점 보관용 VHD를 사용하여 제한된 업데이트 및 패치를 적용할 수 있습니다. 기본 VHD 및 차이점 보관용 VHD에 둘 내용은 전적으로 사용자 자신이 결정합니다. 기본 VHD 및 차이점 보관용 VHD는 서버 이미지를 정의하는 집합으로 간주해야 하므로 기본 VHD의 로컬 복사본을 안전한 위치에 보관해야 합니다.

기본 VHD를 Windows Azure에 업로드하려면 먼저 서버 이미지에 Windows Azure 통합 구성 요소를 설치해야 합니다. Windows Azure 통합 구성 요소는 서버 이미지에서 만든 각 VM 역할 인스턴스에서 실행되고 VM 역할 인스턴스 및 Windows Azure 환경 간의 통합을 처리합니다.

통합 구성 요소는 VM 역할 인스턴스의 운영 체제를 Windows Azure와 통합하는 데 필요한 태스크를 수행합니다. 이 구성 요소는 인스턴스 상태에 대한 정보를 전달하는 부하 분산 장치와 함께 작동합니다. 또한 인증서를 설치하고 서비스 정의의 설정에 따라 로컬 리소스 디렉터리를 생성하여 가상 컴퓨터를 초기화합니다.

Windows Azure Connect에서는 간단한 사용자 인터페이스를 사용하여 로컬 네트워크에 있는 가상 컴퓨터 또는 컴퓨터와 Windows Azure에서 실행되는 역할 인스턴스 간에 IPsec 보호된 연결을 구성할 수 있습니다. IPsec은 암호화 보안 서비스를 사용하여 IP(인터넷 프로토콜) 네트워크를 통한 통신을 보호합니다. Windows Azure Connect를 사용하는 방법에 대한 자세한 내용은 Windows Azure 역할에 로컬 컴퓨터 연결을 참조하십시오.

운영 체제 설치 또는 시작 프로세스의 일부로 실행되는 어댑터를 작성할 수 있습니다. 다음 다이어그램에서는 어댑터 개발 모델을 보여 줍니다.

VMRoleDevelopmentModel

어댑터를 작성하기 위한 두 가지 옵션이 있습니다.

  • 특수화 단계에서 실행되는 어댑터를 작성할 수 있습니다. 이 특수화 단계는 서버 이미지를 Windows Azure에 처음으로 업로드한 후 또는 인스턴스를 이미지로 다시 설치한 후 운영 체제를 설치하는 동안 발생합니다. 이 스타일의 어댑터는 코드를 작성하지 않고도 작성할 수 있으며 응답 파일에서 실행되는 스크립트 또는 시스템 준비 도구(sysprep)용으로 작성된 공급자를 사용합니다. 자세한 내용은 운영 체제가 설치되는 동안 실행되는 어댑터 작성을 참조하십시오.

  • 운영 체제를 시작할 때마다 자동으로 시작되는 Windows 서비스인 어댑터를 작성할 수 있습니다. 이 스타일의 어댑터는 관리 코드나 네이티브 코드로 작성할 수 있으며, Windows Azure 서비스 런타임 API를 사용하여 Windows Azure 환경에서 동적 데이터를 수집합니다. 자세한 내용은 운영 체제를 시작할 때 실행되는 어댑터 작성을 참조하십시오.

Windows 응용 프로그램을 온-프레미스로 배포하는 것과 Windows Azure에 배포하는 것의 주요 차이점은 서버 이미지를 Windows Azure에 업로드하는 경우 서버 이미지에서 만들어진 VM 역할 인스턴스는 동적 환경에서 실행된다는 점입니다. 개발 단계에서는 특정 주요 정보를 알 수 없습니다. 예를 들어 VM 역할 인스턴스의 IP 주소 또는 실행될 인스턴스 수와 인스턴스에 주소가 지정되는 방법 등과 같은 정보를 알 수 없습니다. VM 역할을 개발하는 프로세스에는 VM 역할 인스턴스를 구성하고 동적 환경에서 실행 및 통신을 위해 해당 인스턴스에 설치된 소프트웨어를 구성하는 작업이 포함됩니다.

Windows Azure에 업로드하는 서버 이미지는 서비스 모델과 함께 VM 역할 인스턴스를 만드는 데 적용됩니다. VM 역할 인스턴스가 처음 온라인 상태가 되면 Windows Azure에서 실행할 준비를 하는 데 필요한 단계를 수행해야 합니다. 대부분의 경우 환경의 동적 정보를 사용하여 설치된 소프트웨어 응용 프로그램을 구성하고 시작해야 함을 의미합니다. 예를 들어 동적 환경에서 수집한 데이터를 소프트웨어 응용 프로그램의 구성 파일에 기록해야 할 수 있습니다.

응용 프로그램이 로컬 저장소 디렉터리에 데이터를 쓰는 경우 VM 역할 인스턴스는 응용 프로그램에서 액세스할 디렉터리도 구성해야 합니다. VM 역할 인스턴스를 만들기 위해 서버 이미지를 처음 업로드하면 서비스 모델에 정의된 로컬 저장소 리소스가 로컬 디렉터리로 만들어집니다. 명명된 저장소 리소스와 연결된 로컬 디렉터리는 기본적으로 안전합니다. 즉, 이 디렉터리는 관리자 계정에서만 액세스 가능하도록 구성되어 있습니다. 응용 프로그램이 디렉터리에 기록해야 하는 경우 VM 역할 인스턴스가 낮은 권한 계정에서 사용할 수 있는 디렉터리에 대한 사용 권한을 변경해야 합니다.

서버 이미지를 Windows Azure에 배포하면 서버 이미지가 온-프레미스로 이미지를 준비하기 위해 시스템 준비 도구(sysprep)를 실행한 결과인 일반화된 상태가 됩니다. Windows Azure의 VM 역할 인스턴스에서 실행할 운영 체제는 설치 프로세스의 일부로 특수화 단계를 수행해야 합니다. 이 특수화 단계를 자동화하는 데 사용된 정보는 Windows Azure 통합 구성 요소가 서버 이미지의 루트에 설치한 응답 파일(c:\unattend.xml)에 저장됩니다.

이미지를 만드는 동안 응답 파일을 사용자 지정하여, Windows Azure에 이미지를 업로드한 후 특수화 단계에서 호출되는 스크립트를 실행할 수 있습니다. 응답 파일을 사용자 지정하는 방법에 대한 자세한 내용은 Windows Automated Install Kit(Windows AIK)를 참조하십시오.

또는 서버 이미지에 포함된 sysprep 공급자를 작성할 수 있습니다. sysprep 공급자는 정의한 추가 기능을 포함하도록 sysprep 도구를 확장합니다. Windows Azure 통합 구성 요소는 VM 역할 인스턴스를 처음 시작할 때 Windows 설치를 완료하는 특수화 단계를 수행하는 데 사용되는 sysprep 도구를 지원합니다. sysprep 공급자를 작성하는 방법에 대한 자세한 내용은 Windows 7용 시스템 준비(Sysprep) 공급자 개발자 가이드를 참조하십시오.

이 유형의 어댑터는 인스턴스의 첫 번째 부팅 시퀀스가 진행되는 동안에만 실행되며, 인스턴스를 다시 부팅할 때는 실행되지 않습니다. 이 스타일의 어댑터에 대한 한계는 서비스 구성 설정에 대한 변경 내용에 자동으로 응답할 수 없다는 점입니다. 어댑터가 구성 설정에 대한 변경 내용을 인스턴스에 적용해야 하는 경우 운영자가 수동으로 인스턴스를 이미지로 다시 설치하여 어댑터를 실행하고 새 설정을 적용해야 합니다. 응용 프로그램이 서버 이미지의 수명이 유지되는 동안 변경해야 할 수 있는 구성 설정을 사용하는 경우 대신 어댑터를 Windows 서비스로 작성하는 것이 좋습니다.

Windows를 시작할 때 자동으로 시작되고 Windows Azure 서비스 런타임 API를 사용하여 Windows Azure에서 동적 데이터를 수집하는 Windows 서비스로 어댑터를 작성할 수 있습니다. 현재 VM 역할 인스턴스 또는 서비스에서 실행되는 다른 역할 인스턴스에 대한 네트워크 주소 정보가 필요한 경우, 로컬 저장소 리소스에 기록해야 하는 경우 또는 런타임에 서비스 구성 설정을 읽어야 하거나 해당 설정이 변경될 때 응답해야 하는 경우 Windows 서비스를 작성해야 할 수 있습니다.

서비스 런타임 API를 사용하려면 Windows 서비스가 64비트 Windows 프로세스여야 합니다. Windows 서비스는 관리 코드나 네이티브 코드로 작성할 수 있습니다. API 정보는 Windows Azure Managed Library ReferenceWindows Azure Native Library Reference를 참조하십시오.

Administrator 계정 또는 LocalSystem 계정으로 실행 중인 프로세스에서만 서비스 런타임 API를 호출할 수 있습니다. 이러한 제한을 통해 서비스 런타임 API를 사용하여 서비스 구성 설정을 읽어 낮은 권한 프로세스의 위험 부담을 없앰으로써 기본적으로 서비스가 안전하도록 할 수 있습니다.

Windows를 시작할 때 자동으로 시작되도록 Windows 서비스를 구성해야 합니다. Windows 서비스는 OnStartOnStop 또는 OnShutdown(종료 시퀀스가 필요한 경우)을 비롯한 ServiceBase 클래스의 수명 주기 메서드를 구현해야 합니다. OnStart 메서드가 반환할 때까지 시작 코드가 완료되어야 합니다. Windows 서비스에 필요한 종료 시퀀스는 OnStop 또는 OnShutdown이 반환할 때까지 완료되어야 합니다. Windows 서비스를 작성하는 방법에 대한 자세한 내용은 Windows 서비스 응용 프로그램을 참조하십시오.

어댑터를 비롯한 모든 자동 시작 서비스가 시작되면 Windows Azure는 인스턴스가 부하 분산 장치에서 트래픽을 받을 준비가 된 것으로 인식합니다. 따라서 OnStart 메서드가 완료될 때까지 어댑터가 VM 역할 인스턴스 및 이 인스턴스가 실행 중인 소프트웨어를 준비하는 데 필요한 모든 태스크를 수행했는지 확인해야 합니다. 인스턴스 상태를 Busy로 설정하여 명시적으로 순환 순서에서 인스턴스를 제외하지 않으면 시작 시퀀스가 완료되는 시간부터 종료 시퀀스가 시작되는 시간까지 VM 역할 인스턴스가 준비 상태여야 합니다. StatusCheck 이벤트에 이벤트 처리기를 추가하여 이 작업을 수행할 수 있습니다. 이벤트가 발생하면 이벤트 인수 개체에서 SetBusy 메서드를 호출할 수 있습니다. Set-RoleInstanceStatus PowerShell cmdlet을 사용하여 VM 역할 인스턴스의 상태를 변경할 수도 있습니다.

Windows Azure 통합 구성 요소를 설치한 후에는 응용 프로그램을 설치하고 변경해야 하는 운영 체제 구성을 변경하고 Windows Azure Connect Agent를 설치하고(옵션) 어댑터를 만들고 설치한 다음(옵션) 업로드할 이미지를 준비해야 합니다.

VHD를 Windows Azure에 올바르게 업로드하려면 먼저 Sysprep 명령을 사용하여 서버 이미지를 일반화해야 합니다. Sysprep를 사용하는 방법에 대한 자세한 내용은 Sysprep를 사용하는 방법: 소개를 참조하십시오. VHD를 업로드하는 방법에 대한 자세한 내용은 Windows Azure에서 VM 역할의 VHD 업로드를 참조하십시오.

참고 항목

커뮤니티 추가 항목

표시:
© 2014 Microsoft