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

Azure의 클라우드 서비스 설정

업데이트 날짜: 2014년 5월

클라우드 서비스를 설정하려면 서비스 모델을 만들어야 합니다. 서비스 모델은 클라우드 서비스에 대한 정의 설정 및 이러한 설정의 구성 값을 제공합니다. Windows Azure에서 실행 중인 클라우드 서비스의 정의는 변경할 수 없습니다. 실행 중인 클라우드 서비스에 대해 서비스 모델의 구성은 변경할 수 있지만, 서비스 모델의 정의 설정을 변경하려면 VIP 교체를 사용하여 클라우드 서비스를 업그레이드해야 합니다.

note참고
Visual Studio를 사용하여 서비스 모델 파일을 만들고 구성할 수 있습니다. 자세한 내용은 Visual Studio를 사용하여 Windows Azure 응용 프로그램 구성을 참조하십시오.

다음과 같은 정보를 사용하여 클라우드 서비스의 서비스 모델을 만들고 구성하며 변경할 수 있습니다.

서비스 모델은 ServiceDefinition.csdef 파일과 ServiceConfiguration.cscfg 파일로 구성됩니다. 클라우드 서비스용 응용 프로그램을 배포할 준비가 완료되면 정의 파일이 역할 이진 파일과 함께 패키징됩니다. ServiceConfiguration.cscfg 파일은 응용 프로그램 패키지와 함께 배포되며 Windows Azure에서 응용 프로그램 실행 방법을 결정하는 데 사용됩니다.

ServiceDefinition.csdef 파일은 Windows Azure가 클라우드 서비스를 구성하는 데 사용하는 설정을 지정합니다. Azure 서비스 정의 스키마(.csdef 파일)는 서비스 정의 파일에 허용되는 형식을 제공합니다. 다음에 웹 및 작업자 역할에 대해 정의할 수 있는 설정의 예가 나와 있습니다.


<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole1" vmsize="Medium"> 
   <Sites>
      <Site name="Web">
         <Bindings>
            <Binding name="HttpIn" endpointName="HttpIn" />
         </Bindings>
      </Site>
   </Sites>
   <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InternalEndpoint name="InternalHttpIn" protocol="http" />
   </Endpoints>
   <Certificates> 
      <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" />
   </Certificates>
   <Imports>
      <Import moduleName="Connect" />
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
   </Imports>
   <LocalResources>
      <LocalStorage name="localStoreOne" sizeInMB="10" />
      <LocalStorage name="localStoreTwo" sizeInMB="10" cleanOnRoleRecycle="false" />
   </LocalResources>
   <Startup>
      <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple" />
   </Startup>
</WebRole>

<WorkerRole name="WorkerRole1">
   <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
   </ConfigurationSettings>
   <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
   </Imports>
   <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="tcp" port="10000" />
      <InternalEndpoint name="Endpoint2" protocol="tcp" />
   </Endpoints>
</WorkerRole>
</ServiceDefinition>

요소의 형식을 이해하기 위해 서비스 정의 스키마를 참조할 수 있으며, 다음과 같은 정보를 사용하여 이러한 요소를 사용하는 자세한 방법을 알아보십시오.

  • Sites - IIS7에서 호스팅되는 웹 사이트 또는 웹 응용 프로그램에 대한 정의가 포함되어 있습니다.

  • InputEndpoints - 클라우드 서비스에 연락하는 데 사용되는 끝점에 대한 정의가 포함되어 있습니다.

  • InternalEndpoints - 서로 통신하기 위해 역할 인스턴스에서 사용하는 끝점에 대한 정의가 포함되어 있습니다.

  • ConfigurationSettings - 특정 역할의 기능에 대한 설정 정의가 포함되어 있습니다.

  • Certificates - 역할에 필요한 인증서에 대한 정의가 포함되어 있습니다. 위 코드 예에서는 Azure Connect의 구성에 사용되는 인증서를 보여 줍니다.

  • LocalResources - 로컬 저장소 리소스에 대한 정의가 포함되어 있습니다. 로컬 저장소 리소스는 역할 인스턴스가 실행 중인 가상 컴퓨터의 파일 시스템에 예약된 디렉터리입니다.

  • Imports -가져온 모듈에 대한 정의가 포함되어 있습니다. 위 코드 예에서는 원격 데스크톱 연결 및 Azure Connect에 대한 모듈을 보여 줍니다.

  • Startup - 역할이 시작될 때 실행되는 작업이 포함되어 있습니다. 작업은 .cmd 또는 실행 파일에 정의됩니다.

클라우드 서비스의 설정 구성은 ServiceConfiguration.cscfg 파일의 값에 의해 결정됩니다. 이 파일에서 각 역할에 대해 배포할 인스턴스의 수를 지정합니다. 서비스 정의 파일에 정의한 구성 설정의 값은 서비스 구성 파일에 추가됩니다. 클라우드 서비스와 연결된 모든 관리 인증서의 지문 또한 파일에 추가됩니다. Azure 서비스 구성 스키마(.cscfg 파일)는 서비스 구성 파일에 허용되는 형식을 제공합니다.

서비스 구성 파일은 응용 프로그램과 함께 패키징되지 않지만 별도 파일로 Windows Azure에 업로드되어 클라우드 서비스를 구성하는 데 사용됩니다. 클라우드 서비스를 다시 배포하지 않고 새 서비스 구성 파일을 업로드할 수 있습니다. 실행 중인 클라우드 서비스에 대해 구성 값을 변경할 수 있습니다. 다음에 웹 및 작업자 역할에 대해 정의할 수 있는 구성 설정의 예가 나와 있습니다.


<?xml version="1.0"?>
<ServiceConfiguration serviceName="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="WebRole1">
   <Instances count="2" />
   <ConfigurationSettings>
      <Setting name="SettingName" value="SettingValue" />
   </ConfigurationSettings>
    
   <Certificates>
      <Certificate name="CertificateName" thumbprint="CertThumbprint" thumbprintAlgorithm="sha1" />
      <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" 
         thumbprint="CertThumbprint" thumbprintAlgorithm="sha1" />
    </Certificates>  
</Role>
</ServiceConfiguration>

요소의 형식을 이해하기 위해 서비스 구성 스키마를 참조할 수 있으며, 다음과 같은 정보를 사용하여 이러한 요소를 사용하는 자세한 방법을 알아보십시오.

  • Instances – 역할에서 실행할 인스턴스의 수를 구성합니다. 업그레이드 시 클라우드 서비스가 중단되지 않도록 하려면 웹 역할의 인스턴스를 둘 이상 배포하는 것이 좋습니다. 그래야만 서비스에 대해 둘 이상의 역할 인스턴스를 배포할 때 인터넷 연결 역할의 99.95% 외부 연결성을 보장하는 Windows Azure 컴퓨팅 서비스 수준 계약(SLA)의 지침을 준수할 수 있습니다. Windows Azure 서비스 수준 계약에 대한 자세한 내용은 서비스 수준 계약을 참조하십시오.



  • ConfigurationSettings - 역할의 인스턴스 실행에 대한 설정을 구성합니다. 설정 요소의 이름은 서비스 정의 파일의 설정 정의와 일치해야 합니다. 다음 표에 구성할 수 있는 몇 가지 설정이 나와 있습니다.

     

    설정 이름 설정 값

    Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString

    DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey

    AccountNameAccountKey를 제공해야 하며, 이 값은 포털에서 가져올 수 있습니다. Microsoft Azure 계산 에뮬레이터를 사용하도록 이 설정의 값을 변경할 수 있습니다.

    Microsoft.WindowsAzure.Plugins.Connect.ActivationToken

    TokenValue

    Azure Connect를 사용하도록 설정하는 데 필요합니다. 다른 추가 설정을 사용하여 Azure Connect를 완벽히 구성할 수 있습니다. 구성을 완료하기 위한 자세한 내용은 Use Windows Azure Connect When Roles Are Joined to a Domain을 참조하십시오.

    Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled

    이 설정은 역할에 원격 데스크톱 연결을 사용하도록 설정하는 데 필요합니다. 다른 추가 설정을 사용하여 원격 데스크톱 연결을 완벽히 구성할 수 있습니다.

  • Certificates – 서비스에서 사용되는 인증서를 구성합니다. 위 코드 예에서는 RemoteAccess 모듈에 대한 인증서를 정의하는 방법을 보여 줍니다. thumbprint 특성의 값을 사용할 인증서의 지문으로 설정해야 합니다.

    텍스트 편집기를 사용하거나 Visual Studio에서 역할의 속성 페이지 인증서 탭에 값을 추가하여 인증서의 지문을 구성 파일에 추가할 수 있습니다.

Windows Azure의 다중 웹 응용 프로그램 서비스 모델은 웹 역할에 대한 진입점을 하나만 허용합니다. 즉, 하나의 IP 주소를 통해 모든 트래픽이 발생합니다. 올바른 위치로 요청을 전달하도록 호스트 헤더를 구성하여 포트를 공유하도록 웹 사이트를 구성할 수 있습니다. 또한 IP 주소에서 잘 알려진 포트를 수신하도록 웹 사이트 및 웹 응용 프로그램을 구성할 수 있습니다.

다음 예제는 웹 사이트와 웹 응용 프로그램을 포함하여 웹 역할을 구성하는 방법을 보여 줍니다. 웹 사이트는 포트 80의 기본 진입 위치로 구성되며, 웹 응용 프로그램은 "mail.mysite.cloudapp.net"이라고 하는 대체 호스트 헤더에서 요청을 수신하도록 구성됩니다.

<WebRole>
  <ConfigurationSettings>
    <Setting name="DiagnosticsConnectionString" />
  </ConfigurationSettings>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="Https" protocol="https" port="443" certificate="SSL"/>
      <InputEndpoint name="NetTcp" protocol="tcp" port="808" certificate="SSL"/>
    </Endpoints>
    <LocalResources>
       <LocalStorage name="Sites" cleanOnRoleRecycle="true" sizeInMB="100" />
    </LocalResources>
  <Site name="Mysite" packageDir="Sites\Mysite">
    <Bindings>
      <Binding name="http" endpointName="HttpIn" />
      <Binding name="https" endpointName="Https" />
      <Binding name="tcp" endpointName="NetTcp" />
    </Bindings>
  </Site>
  <Site name="MailSite" packageDir="MailSite">
    <Bindings>
      <Binding name="mail" endpointName="HttpIn" hostheader="mail.mysite.cloudapp.net" />
    </Bindings>
    <VirtualDirectory name="artifacts" />
    <VirtualApplication name="storageproxy" />
      <VirtualDirectory name="packages" packageDir="Sites\storageProxy\packages"/>
    </VirtualApplication>
  </Site>
</WebRole>

서비스를 오프라인 상태로 만들지 않고 Windows Azure에서 실행 중인 클라우드 서비스의 구성을 업데이트할 수 있습니다. 구성 정보를 변경하려면 새 구성 파일을 업로드하거나 배포된 구성 파일을 수정하여 실행 중인 서비스에 적용할 수 있습니다. 서비스 구성에 다음과 같은 변경 사항을 적용할 수 있습니다.

  • 구성 설정의 값을 변경합니다. 구성 설정 변경 시 역할 인스턴스는 온라인 상태일 때 변경 내용을 적용하거나 인스턴스를 정상 재활용하여 오프라인 상태일 때 변경 내용을 적용하도록 선택할 수 있습니다.

  • 역할 인스턴스의 서비스 토폴로지를 변경합니다. 토폴로지 변경 내용은 인스턴스를 제거하는 경우를 제외하면 실행 중인 인스턴스에는 적용되지 않습니다. 나머지 다른 인스턴스는 일반적으로 재활용할 필요가 없지만 토폴로지 변경 시 역할을 재활용하도록 선택할 수 있습니다.

  • 인증서 지문을 변경합니다. 역할 인스턴스가 오프라인 상태일 경우에만 인증서를 업데이트할 수 있습니다. 역할 인스턴스가 온라인 상태일 때 인증서를 추가, 삭제 또는 변경할 경우 Windows Azure가 정상적으로 인스턴스를 오프라인으로 전환하여 인증서를 업데이트한 다음 변경이 완료되면 다시 온라인으로 전환합니다.

Windows Azure Managed Library에는 역할 인스턴스에서 실행 중인 코드에서 Windows Azure 환경과 상호 작용하기 위한 클래스를 제공하는 Microsoft.WindowsAzure.ServiceRuntime 네임스페이스가 포함됩니다. RoleEnvironment 클래스는 구성 변경 전후 발생하는 다음 이벤트를 정의합니다.

  • Changing 이벤트는 역할의 특정 인스턴스에 구성 변경이 적용되기 전에 발생합니다. 이 이벤트를 취소하면 Windows Azure가 역할을 재활용합니다. 역할이 재활용될 때 다시 온라인 상태가 되기 전 구성 변경이 적용됩니다. Changing 이벤트를 사용하는 방법은 RoleEnvironment.Changing 이벤트 사용을 참조하십시오.

  • Changed 이벤트는 역할의 특정 인스턴스에 구성 변경이 적용된 후에 발생합니다. Changed 이벤트를 사용하는 방법은 RoleEnvironment.Changed 이벤트 사용을 참조하십시오.

note참고
인증서를 변경하면 항상 역할 인스턴스가 오프라인 상태가 되므로 RoleEnvironment.Changing 또는 RoleEnvironment.Changed 이벤트를 발생시키지 않습니다.

참고 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft