Azure 캐시에 대한 역할 내 캐시 정보

중요

모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.

In-Role Cache는 Azure 역할에서 캐싱 서비스를 호스트하는 기능을 지원합니다. 이 모델에서 캐시는 클라우드 서비스의 일부입니다. 클라우드 서비스 내의 한 역할이 In-Role 캐시를 호스트하도록 선택됩니다. 실행 중인 해당 역할의 인스턴스에서 메모리 리소스를 연결하여 캐시 클러스터를 만듭니다. 이 비공개 캐시 클러스터는 동일한 배포 내의 역할에서만 사용할 수 있습니다. In-Role Cache에는 공동 배치 및 전용이라는 두 가지 주요 배포 토폴로지가 있습니다. 같은 위치에 배치된 역할에서는 캐싱 응용 프로그램 이외의 다른 응용 프로그램 코드와 서비스도 호스팅합니다. 전용 역할은 캐싱에만 사용되는 작업자 역할입니다. 다음 항목에서는 이러한 캐싱 토폴로지에 대해 자세히 설명합니다.

역할 기반 In-Role Cache의 단계별 연습은 Azure In-Role Cache를 사용하는 방법을 참조하세요. 다운로드 가능한 샘플은 Azure In-Role Cache 샘플을 참조하세요.

In-Role 캐시 개념

이 섹션에서는 역할 기반 In-Role Cache와 관련된 세 가지 주요 개념에 대해 간략하게 설명합니다.

  1. 캐시 클러스터

  2. 명명된 캐시

  3. 캐시 클라이언트

캐시 클러스터

Azure 역할에는 하나 이상의 인스턴스가 있습니다. 각 인스턴스는 지정된 역할을 호스팅하도록 구성된 가상 컴퓨터입니다. In-Role 캐시를 사용하도록 설정된 역할이 여러 인스턴스에서 실행되면 캐시 클러스터가 형성됩니다. 캐시 클러스터는 클러스터의 모든 컴퓨터에서 결합된 메모리를 사용하는 분산 캐싱 서비스입니다. 응용 프로그램은 항목이 저장되어 있는 컴퓨터를 알지 못해도 캐시 클러스터에서 항목을 추가하거나 검색할 수 있습니다. 고가용성을 사용하는 경우 항목의 백업 복사본이 다른 가상 컴퓨터 인스턴스에 자동으로 저장됩니다.

참고

각 클라우드 서비스에 대해 하나의 캐시 클러스터만 지원됩니다. 각 역할에 대한 별도의 저장소 계정을 지정하여 클라우드 서비스에서 여러 캐시 클러스터를 설정할 수 있지만 이 구성은 지원되지 않습니다.

Azure 역할에서 In-Role Cache를 사용하도록 설정하는 경우 캐싱에 사용할 수 있는 메모리 양을 지정합니다. 같은 위치에 배치된 시나리오의 경우 사용자가 역할을 호스팅하는 가상 컴퓨터에서 사용 가능한 메모리의 비율을 선택합니다. 전용 시나리오의 경우 가상 컴퓨터의 사용 가능한 모든 메모리가 캐싱에 사용됩니다. 하지만 운영 체제에서 차지하는 메모리 용량이 있기 때문에 사용 가능한 메모리는 항상 가상 컴퓨터의 실제 메모리의 총 용량보다 적습니다.

따라서 캐싱 메모리의 총량은 캐싱을 위해 예약된 역할 메모리에 역할 수를 곱한 값에 따라 달라집니다. 해당 역할에 대해 실행 중인 인스턴스 수를 늘리거나 줄이면 전체 캐싱 메모리를 효과적으로 확장 또는 축소할 수 있습니다.

경고

In-Role Cache를 호스트하는 역할의 실행 중인 인스턴스를 축소할 때 인스턴스 수를 한 번에 3개 이하로 줄입니다. 그런 다음 다시 최대 3개의 실행 인스턴스를 제거하는 방식으로 반복하여 원하는 수가 될 때까지 줄입니다. 인스턴스를 한 번에 4개 이상 줄이면 클러스터가 불안정해질 수 있습니다.

각 캐시 클러스터는 Azure Storage에서 클러스터의 런타임 상태에 대한 공유 정보를 유지 관리합니다. 개발하는 동안 Azure Storage 에뮬레이터를 사용할 수 있습니다. 배포된 역할은 유효한 Azure Storage 계정을 지정해야 합니다. Visual Studio 역할 속성의 캐싱 탭에서 적절한 스토리지 계정을 지정할 수 있습니다.

명명된 캐시

모든 캐시 클러스터에는 default라는 이름의 캐시가 하나 이상 있습니다. 역할 기반 In-Role Cache를 사용하면 명명된 캐시를 추가로 추가할 수도 있습니다. 캐시별로 변경할 수 있는 여러 가지 설정이 있습니다. 다음 스크린샷은 Visual Studio 역할 설정에 있는 캐싱 탭의 명명된 캐시 설정 섹션을 보여줍니다.

Caching Properties for Named Caches

Visual Studio 명명된 캐시 추가 단추를 클릭하여 명명된 캐시를 추가합니다. 위 예제에서는 NamedCache1NamedCache2라는 두 개의 캐시가 추가되었습니다. 각 캐시의 설정은 서로 다릅니다. 설정을 변경하려면 테이블에서 해당 필드를 선택한 다음 수정하면 됩니다.

명명된 캐시는 응용 프로그램 개발자에게 유연성을 제공합니다. 각 명명된 캐시에는 자체 속성이 있습니다. 예를 들어 하나의 캐시에서 고가용성을 사용하도록 설정하여 고가용성을 활용할 수 있습니다. 하지만 다른 캐시에는 이 설정이 필요하지 않을 수 있습니다. 고가용성을 활용하려면 캐시된 각 항목의 두 배에 해당하는 메모리가 필요합니다. 리소스를 보다 효율적으로 사용하려면 고가용성이 필요한 캐시에만 고가용성을 사용합니다. 이와 비슷한 다른 시나리오에서는 응용 프로그램 요구 사항을 충족하기 위해 속성이 다양한 여러 캐시가 사용될 수 있습니다.

캐시 클라이언트

캐시 클라이언트는 캐시 클러스터의 항목을 저장하고 검색하는 응용 프로그램 코드입니다. 역할에 In-Role 캐시를 사용하면 캐시 클라이언트가 동일한 캐싱 역할의 일부이거나 배포의 다른 역할에 통합되어야 합니다. 응용 프로그램이나 웹 구성 파일을 사용하여 캐시 클라이언트를 구성합니다. 자세한 내용은 방법: Azure In-Role Cache를 사용하도록 Visual Studio 준비를 참조하세요. 다음 예제에서는 구성 파일의 dataCacheClient 요소를 보여줍니다.

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

이전 예제에서 autoDiscover 요소에는 식별자 특성이 설정되었습니다 CachingRole1. 이 식별자는 In-Role 캐시를 CachingRole1 사용하도록 설정하도록 지정합니다. 또한 캐시 서버의 위치를 제공합니다. 캐시 클라이언트는 모든 캐싱 작업에서 자동으로 사용합니다 CachingRole1 .

캐시 클라이언트가 구성되면 이름을 통해 캐시에 액세스할 수 있습니다. 다음 예제에서는 NamedCache1 캐시에 액세스하여 항목을 추가합니다.

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

DataCache 생성자는 캐시 이름과 dataCacheClient 섹션 이름이라는 두 개의 매개 변수를 사용합니다. 캐시 이름에 대한 자세한 내용은 명명된 캐시의 이전 섹션을 참조하세요.

섹션 내용

참고 항목

개념

캐시