Visual Studio를 사용하여 Azure 클라우드 서비스 역할 구성

참고 항목

이 문서는 새 고객에게 더 이상 사용되지 않으며 2024년 8월 31일에 사용 중지되는 Azure Cloud Services(클래식)에 적용됩니다. 이 기술로 빌드된 기존 서비스는 여전히 Azure Cloud Services(추가 지원)를 통해 지원됩니다. 새 개발의 경우 Azure 앱 Service, Azure Functions 또는 Azure Container Apps와 같은 특정 용도로 설계된 최신 서비스 유형을 사용하는 것이 좋습니다. 사용 가능한 서비스의 최신 목록은 Azure 제품 디렉터리를 참조 하세요.

Azure 클라우드 서비스에는 하나 이상의 작업자 또는 웹 역할이 포함될 수 있습니다. 각 역할에 대해 해당 역할을 설정하는 방법을 정의하고 해당 역할을 실행하는 방법을 구성해야 합니다.

클라우드 서비스에 대한 정보는 다음 파일에 저장됩니다.

  • ServiceDefinition.csdef - 서비스 정의 파일은 필요한 역할, 엔드포인트, 가상 머신 크기를 포함하여 클라우드 서비스의 런타임 설정을 정의합니다. 역할이 실행 중일 때 ServiceDefinition.csdef에 저장된 데이터는 변경할 수 없습니다.
  • ServiceConfiguration.cscfg - 서비스 구성 파일은 실행되는 역할의 인스턴스 수와 역할에 대해 정의된 설정 값을 구성합니다. 역할이 실행 중인 동안 ServiceConfiguration.cscfg에 저장된 데이터는 변경할 수 있습니다.

역할 실행 방법을 제어하는 설정에 대해 다른 값을 저장하기 위해 여러 서비스 구성을 정의할 수 있습니다. 각 배포 환경에 대해 서로 다른 서비스 구성을 사용할 수 있습니다. 예를 들어 스토리지 계정 연결 문자열을 설정하여 로컬 서비스 구성에서 로컬 Azure Storage 에뮬레이터를 사용하고, 다른 서비스 구성을 만들어 클라우드에서 Azure Storage를 사용할 수 있습니다.

Visual Studio에서 Azure 클라우드 서비스를 만들 때 두 개의 서비스 구성을 자동으로 만들어 Azure 프로젝트에 추가합니다.

  • ServiceConfiguration.Cloud.cscfg
  • ServiceConfiguration.Local.cscfg

필수 조건

Azure 클라우드 서비스 구성

다음 단계와 같이 Visual Studio의 [솔루션 탐색기]에서 Azure 클라우드 서비스를 구성할 수 있습니다.

  1. Visual Studio에서 Azure 클라우드 서비스 프로젝트를 만들거나 엽니다.

  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 속성을 선택합니다.

    Solution Explorer project context menu

  3. 프로젝트 속성 페이지에서 개발 탭을 선택합니다.

    Project properties page - development tab

  4. 서비스 구성 목록에서 편집할 서비스 구성의 이름을 선택합니다. 이 역할에 대한 서비스 구성을 모두 변경하려면 모든 구성을 선택합니다.

    Important

    특정 서비스 구성을 선택하면 일부 속성은 모든 구성에 대해서만 설정 가능하므로 비활성화됩니다. 이러한 속성을 편집하려면 모든 구성을 선택해야 합니다.

    Service Configuration list for an Azure cloud service

역할 인스턴스 수 변경

클라우드 서비스의 성능을 개선하기 위해 실행 중인 역할의 인스턴스 수를 사용자 수 또는 특정 역할에 대해 예상되는 부하에 따라 변경할 수 있습니다. Azure에서 클라우드 서비스를 실행하는 경우 별도의 가상 머신이 역할의 각 인스턴스에 대해 생성됩니다. 이렇게 하면 이 클라우드 서비스의 배포에 대한 청구에 영향을 줍니다. 대금 청구에 대한 자세한 내용은 Microsoft Azure 청구서 이해를 참조하세요.

  1. Visual Studio에서 Azure 클라우드 서비스 프로젝트를 만들거나 엽니다.

  2. 솔루션 탐색기에서 프로젝트 노드를 확장합니다. 역할 노드에서 업데이트하려는 역할을 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 속성을 선택합니다.

    Solution Explorer Azure role context menu

  3. 구성 탭을 선택합니다.

    Configuration tab

  4. 서비스 구성 목록에서 업데이트할 서비스 구성을 선택합니다.

    Service Configuration list 1

  5. 인스턴스 수 텍스트 상자에서 이 역할에 대해 시작하려는 인스턴스 수를 입력합니다. Azure에 클라우드 서비스를 게시할 때 각 인스턴스는 별도의 가상 머신에서 실행됩니다.

    Updating the Instance Count

  6. Visual Studio의 도구 모음에서 저장을 선택합니다.

스토리지 계정에 대한 연결 문자열 관리

서비스 구성에 대한 연결 문자열을 추가, 제거 또는 수정할 수 있습니다. 예를 들어, UseDevelopmentStorage=true값이 있는 로컬 서비스 구성에 대해 로컬 연결 문자열이 필요할 수 있습니다. 또한 Azure에서 스토리지 계정을 사용하는 클라우드 서비스 구성을 구성하려고 할 수도 있습니다.

Warning

스토리지 계정 연결 문자열에 대해 Azure Storage 계정 키 정보를 입력하면 이 정보가 서비스 구성 파일에 로컬로 저장됩니다. 그러나 현재는 이 정보가 암호화된 텍스트로 저장되지 않습니다.

각 서비스 구성에 대해 서로 다른 값을 사용하면 클라우드 서비스에서 서로 다른 연결 문자열을 사용하거나 클라우드 서비스에서 Azure로 게시할 때 코드를 수정하지 않아도 됩니다. 코드에서 연결 문자열에 동일한 이름을 사용할 수 있으며, 해당 값은 클라우드 서비스를 빌드하거나 게시할 때 선택하는 서비스 구성에 따라 다릅니다.

  1. Visual Studio에서 Azure 클라우드 서비스 프로젝트를 만들거나 엽니다.

  2. 솔루션 탐색기에서 프로젝트 노드를 확장합니다. 역할 노드에서 업데이트하려는 역할을 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 속성을 선택합니다.

    Solution Explorer Azure role context menu

  3. 설정 탭을 선택합니다.

    Settings tab

  4. 서비스 구성 목록에서 업데이트할 서비스 구성을 선택합니다.

    Service Configuration

  5. 연결 문자열을 추가하려면 설정 추가를 선택합니다.

    Add connection string

  6. 새 설정이 목록에 추가되면 목록의 행을 필요한 정보로 업데이트합니다.

    New connection string

    • 이름 - 연결 문자열에 사용할 이름을 입력합니다.
    • 형식 - 드롭다운 목록에서 연결 문자열을 선택합니다.
    • - 셀에 연결 문자열을 직접 입력하거나 스토리지 연결 문자열 만들기 대화 상자에서 줄임표(...)를 선택하여 작업할 수 있습니다.
  7. 스토리지 연결 문자열 만들기 대화 상자에서 다음을 사용하여 연결 옵션을 선택합니다. 그런 다음 선택한 옵션에 대한 지침을 따릅니다.

    • Microsoft Azure Storage 에뮬레이터 - 이 옵션을 선택하면 대화 상자의 나머지 설정은 Azure에만 적용되므로 사용할 수 없게 됩니다. 확인을 선택합니다.
    • 구독 - 이 옵션을 선택하면 드롭다운 목록을 사용하여 Microsoft 계정을 선택하고 로그인하거나 Microsoft 계정을 추가합니다. Azure 구독 및 스토리지 계정을 선택합니다. 확인을 선택합니다.
    • 수동으로 입력한 자격 증명 - 스토리지 계정 이름과 기본 또는 보조 키를 입력합니다. 연결 옵션을 선택합니다(대부분의 시나리오에서 HTTPS 권장). 확인을 선택합니다.
  8. 연결 문자열을 삭제하려면 연결 문자열을 선택한 다음 설정 제거를 선택합니다.

  9. Visual Studio의 도구 모음에서 저장을 선택합니다.

프로그래밍 방식으로 연결 문자열 액세스

다음 단계에서는 C#을 사용하여 연결 문자열에 프로그래밍 방식으로 액세스하는 방법을 보여 줍니다.

  1. 설정을 사용할 C# 파일에 다음 using 지시문을 추가합니다.

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. 다음 코드는 연결 문자열에 액세스하는 방법의 예제를 보여 줍니다. <ConnectionStringName> 자리 표시자를 적절한 값으로 바꿉니다.

    // Setup the connection to Azure Storage
    var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("<ConnectionStringName>"));
    

Azure 클라우드 서비스에서 사용할 사용자 지정 설정 추가

서비스 구성 파일의 사용자 지정 설정을 통해 특정 서비스 구성에 대한 문자열의 이름 및 값을 추가할 수 있습니다. 설정 값을 읽고 이 값을 코드에서 논리를 제어하는 데 사용하여 클라우드 서비스에서 기능을 구성하는 데 이 설정을 사용하도록 선택할 수 있습니다. 서비스 패키지를 다시 빌드하지 않고 클라우드 서비스가 실행 중인 경우에도 이러한 서비스 구성 값을 변경할 수 있습니다. 설정이 변경될 때 코드에서 알림을 확인할 수 있습니다. 자세한 내용은 RoleEnvironment.Changing 이벤트를 참조하세요.

서비스 구성에 대한 사용자 지정 설정을 추가, 제거 또는 수정할 수 있습니다. 다양한 서비스 구성에 대해 이러한 문자열에 서로 다른 값이 필요할 수 있습니다.

각 서비스 구성에 대해 서로 다른 값을 사용하면 클라우드 서비스에서 서로 다른 문자열을 사용하거나 클라우드 서비스에서 Azure로 게시할 때 코드를 수정하지 않아도 됩니다. 코드에서 문자열에 동일한 이름을 사용할 수 있으며, 해당 값은 클라우드 서비스를 빌드하거나 게시할 때 선택하는 서비스 구성에 따라 다릅니다.

  1. Visual Studio에서 Azure 클라우드 서비스 프로젝트를 만들거나 엽니다.

  2. 솔루션 탐색기에서 프로젝트 노드를 확장합니다. 역할 노드에서 업데이트하려는 역할을 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 속성을 선택합니다.

    Solution Explorer Azure role context menu

  3. 설정 탭을 선택합니다.

    Settings tab

  4. 서비스 구성 목록에서 업데이트할 서비스 구성을 선택합니다.

    Service Configuration list 2

  5. 사용자 지정 설정을 추가하려면 설정 추가를 선택합니다.

    Add custom setting

  6. 새 설정이 목록에 추가되면 목록의 행을 필요한 정보로 업데이트합니다.

    New custom setting

    • 이름 - 설정 이름을 입력합니다.
    • 형식 - 드롭다운 목록에서 문자열을 선택합니다.
    • - 설정 값을 입력합니다. 값을 셀에 값을 직접 입력하거나 줄임표(...)를 선택하여 문자열 편집 대화 상자에서 값을 입력할 수 있습니다.
  7. 사용자 지정 설정을 삭제하려면 설정을 선택한 다음 설정 제거를 선택합니다.

  8. Visual Studio의 도구 모음에서 저장을 선택합니다.

프로그래밍 방식으로 사용자 지정 설정 값 액세스

다음 단계에서는 C#을 사용하여 사용자 지정 설정에 프로그래밍 방식으로 액세스하는 방법을 보여 줍니다.

  1. 설정을 사용할 C# 파일에 다음 using 지시문을 추가합니다.

    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.Storage;
    using Microsoft.WindowsAzure.ServiceRuntime;
    
  2. 다음 코드는 사용자 지정 설정에 액세스하는 방법의 예제를 보여 줍니다. <SettingName> 자리 표시자를 적절한 값으로 바꿉니다.

    var settingValue = RoleEnvironment.GetConfigurationSettingValue("<SettingName>");
    

각 역할 인스턴스에 대한 로컬 스토리지 관리

각 역할 인스턴스에 대한 로컬 파일 시스템 스토리지를 추가할 수 있습니다. 해당 스토리지에 저장된 데이터는 데이터가 저장된 역할의 다른 인스턴스 또는 다른 역할에서 액세스할 수 없습니다.

  1. Visual Studio에서 Azure 클라우드 서비스 프로젝트를 만들거나 엽니다.

  2. 솔루션 탐색기에서 프로젝트 노드를 확장합니다. 역할 노드에서 업데이트하려는 역할을 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 속성을 선택합니다.

    Solution Explorer Azure role context menu

  3. 로컬 스토리지 탭을 선택합니다.

    Local storage tab

  4. 서비스 구성 목록에서 모든 서비스 구성에 로컬 스토리지 설정이 적용되므로 모든 구성이 선택되어 있는지 확인합니다. 다른 값을 지정하면 페이지의 모든 입력 필드가 비활성화됩니다.

    Service Configuration list 3

  5. 로컬 스토리지 항목을 추가하려면 로컬 스토리지 추가를 선택합니다.

    Add local storage

  6. 새 로컬 스토리지 항목이 목록에 추가되면 목록의 행을 필요한 정보로 업데이트합니다.

    New local storage entry

    • 이름 - 새 로컬 스토리지에 사용할 이름을 입력합니다.
    • 크기(MB) - 새 로컬 스토리지에 필요한 크기(MB)를 입력합니다.
    • 역할 재생에서 정리 - 이 옵션을 선택하면 역할에 대한 가상 머신을 재활용할 때 새 로컬 스토리지의 데이터를 제거합니다.
  7. 로컬 스토리지 항목을 삭제하려면 해당 항목을 선택한 다음 로컬 스토리지 제거를 선택합니다.

  8. Visual Studio의 도구 모음에서 저장을 선택합니다.

프로그래밍 방식으로 로컬 스토리지 액세스

이 섹션에서는 MyLocalStorageTest.txt 테스트 텍스트 파일을 작성하여 C#을 통해 로컬 스토리지에 프로그래밍 방식으로 액세스하는 방법을 보여 줍니다.

로컬 스토리지에 텍스트 파일 작성

다음 코드는 로컬 스토리지에 텍스트 파일을 작성하는 방법의 예제를 보여 줍니다. <LocalStorageName> 자리 표시자를 적절한 값으로 바꿉니다.

// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("<LocalStorageName>");

//Define the file name and path
string[] paths = { localResource.RootPath, "MyLocalStorageTest.txt" };
String filePath = Path.Combine(paths);

using (FileStream writeStream = File.Create(filePath))
{
    Byte[] textToWrite = new UTF8Encoding(true).GetBytes("Testing Web role storage");
    writeStream.Write(textToWrite, 0, textToWrite.Length);
}

로컬 스토리지에 기록된 파일 찾기

이전 섹션의 코드로 만든 파일을 보려면 다음 단계를 수행합니다.

  1. Windows 알림 영역에서 Azure 아이콘을 마우스 오른쪽 단추로 클릭하고, 상황에 맞는 메뉴에서 에뮬레이터 UI 표시를 선택합니다.

    Show Azure compute emulator

  2. 웹 역할을 선택합니다.

    Azure compute emulator

  3. Microsoft Azure 컴퓨팅 에뮬레이터 메뉴에서 도구>로컬 저장소 열기를 선택합니다.

    Open local store menu item

  4. Windows 탐색기 창이 열리면 검색 텍스트 상자에서 'MyLocalStorageTest.txt'를 입력하고 Enter 키를 눌러 검색을 시작합니다.

Azure 프로젝트 구성을 읽고 Visual Studio에서 Azure 프로젝트에 대해 자세히 알아봅니다. 스키마 참조를 읽고 클라우드 서비스 스키마에 대해 자세히 알아봅니다.