다음을 통해 공유


빠른 시작: ASP.NET 웹앱에서 Azure Redis 사용

Visual Studio 2019를 사용하는 이 빠른 시작에서는 Azure Cache for Redis에 연결하여 캐시의 데이터를 저장하고 검색하는 ASP.NET 웹 애플리케이션을 만듭니다. 그런 다음, Azure App Service에 앱을 배포합니다.

GitHub의 코드로 건너뛰기

GitHub에서 리포지토리 https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet를 복제합니다.

필수 조건

Azure Managed Redis(미리 보기) 인스턴스 만들기

  1. Azure Managed Redis(미리 보기) 인스턴스를 만들려면 Azure Portal에 로그인하고 리소스 만들기를 선택합니다.

  2. 페이지의 검색 상자에 Azure Cache for Redis를 입력합니다.

  3. 새 Redis Cache 페이지에서 새 캐시의 설정을 구성합니다.

    설정 값 선택 설명
    구독 드롭다운하여 구독을 선택합니다. 이 새 Azure Managed Redis 인스턴스를 만들 구독입니다.
    리소스 그룹 드롭다운하여 리소스 그룹을 선택하거나, 새로 만들기를 선택하고 새 리소스 그룹 이름을 입력합니다. 캐시 및 기타 리소스를 만들 새 리소스 그룹의 이름입니다. 모든 앱 리소스를 하나의 리소스 그룹에 배치하면 앱 리소스를 쉽게 관리하거나 삭제할 수 있습니다.
    DNS 이름 지역에서 고유한 이름을 입력합니다. 캐시 이름은 숫자, 문자 또는 하이픈만 포함하는 캐시의 지역 이름이 결합된 경우 1~63자의 문자열이어야 합니다. (캐시 이름이 45자 미만인 경우 현재 사용 가능한 모든 지역에서 작동해야 합니다.) 이름은 숫자 또는 문자로 시작하고 끝나야 하며 연속 하이픈을 포함할 수 없습니다. 캐시 인스턴스의 호스트 이름\<DNS name\>.\<Azure region\>.redis.azure.net입니다.
    위치 드롭다운하여 위치를 선택합니다. Azure Managed Redis는 선택한 Azure 지역에서 사용할 수 있습니다.
    캐시 유형 드롭다운하고 성능 계층 및 캐시 크기를 선택합니다. 계층은 Redis 인스턴스의 성능을 결정하는 반면 캐시 크기는 데이터를 저장하는 데 사용할 수 있는 메모리를 결정합니다. 올바른 성능 계층을 선택하는 방법에 대한 지침은 올바른 계층 선택을 참조 하세요.

    Azure Managed Redis 기본 사항 탭을 보여 주는 스크린샷

  4. 다음: 네트워킹을 선택하고 퍼블릭 또는 프라이빗 엔드포인트를 선택합니다.

  5. 다음: 고급을 선택합니다.

    인스턴스에 추가할 Redis 모듈을 구성합니다.

    기본적으로 새 관리 캐시의 경우:

    • Microsoft Entra ID를 사용할 수 있습니다.
    • 보안상의 이유로 액세스 키 인증 을 사용할 수 없습니다.

    Important

    최적의 보안을 위해 관리 ID와 함께 Microsoft Entra ID를 사용하여 가능한 경우 캐시에 대한 요청에 권한을 부여하는 것이 좋습니다. Microsoft Entra ID 및 관리 ID를 사용한 인증은 공유 액세스 키 인증에 비해 뛰어난 보안과 사용 편의성을 제공합니다. 캐시에서 관리 ID를 사용하는 방법에 대한 자세한 내용은 캐시 인증을 위한 Microsoft Entra ID 사용을 참조하세요.

    비클러스터형 캐시에 대한 클러스터링 정책엔터프라이즈로 설정하거나 클러스터형 캐시에 대한 정책을 OSS로 설정합니다. 클러스터링 정책 선택에 대한 자세한 내용은 클러스터 정책을 참조하세요.

    Azure Managed Redis 고급 탭을 보여 주는 스크린샷.

    활성 지역 복제를 사용하는 경우 만드는 동안 구성해야 합니다. 자세한 내용은 Azure Managed Redis 인스턴스에 대한 활성 지역 복제 구성을 참조 하세요.

    Important

    Azure Managed Redis(미리 보기) 인스턴스를 만든 후에는 클러스터링 정책을 변경할 수 없습니다. RediSearch를 사용 중인 경우 Enterprise 클러스터 정책이 필요하며 NoEviction이 유일한 제거 정책으로써 지원됩니다.

    Important

    지역에서 복제 그룹에서 이 캐시 인스턴스를 사용하는 경우 인스턴스를 만든 후에는 제거 정책을 변경할 수 없습니다. 캐시를 만들기 전에 주 노드의 제거 정책을 알고 있어야 합니다. 활성 지역 복제에 대한 자세한 내용은 활성 지역 복제 필수 구성 요소를 참조하세요.

    Important

    캐시 인스턴스를 만든 후에는 모듈을 변경할 수 없습니다. Azure Cache for Redis 인스턴스를 만들 때 모듈을 사용하도록 설정해야 합니다. 캐시를 만든 후에는 모듈 구성을 사용하도록 설정할 수 있는 옵션이 없습니다.

  6. 다음: 태그를 선택하고 건너뜁니다.

  7. 완료되면 다음: 리뷰 + 만들기를 클릭합니다.

  8. 설정을 검토하고 생성를 선택합니다.

    Redis 인스턴스를 만드는 데 몇 분 정도 걸립니다. Azure Managed Redis 개요 페이지에서 진행률을 모니터링할 수 있습니다. 상태실행 중으로 표시되면 캐시를 사용할 준비가 된 것입니다.

Azure Cache for Redis 인스턴스 만들기

  1. 캐시를 만들려면 Azure Portal에 로그인합니다. 포털 메뉴에서 리소스 만들기를 선택합니다.

    Azure Portal의 왼쪽 탐색 창에 강조 표시된 리소스 만들기 옵션을 보여 주는 스크린샷.

  2. 시작 창의 검색 창에서 Aure Cache for Redis를 입력합니다. 검색 결과에서 Azure Cache for Redis를 찾은 다음, 만들기를 선택합니다.

    검색 상자에 Azure Cache for Redis가 있는 Azure Marketplace를 보여 주고 만들기 단추가 강조 표시되어 있는 스크린샷입니다.

  3. 새 Redis Cache 창의 기본 탭에서 캐시에 대해 다음 설정을 구성합니다.

    설정 작업 설명
    구독 Azure 구독을 선택합니다. Azure Cache for Redis의 새 인스턴스를 만드는 데 사용할 구독.
    리소스 그룹 리소스 그룹을 선택하거나 새로 만들기를 선택하고 새 리소스 그룹 이름을 입력합니다. 캐시 및 기타 리소스를 만들 리소스 그룹의 이름. 모든 앱 리소스를 하나의 리소스 그룹에 배치하면 앱 리소스를 쉽게 관리하거나 삭제할 수 있습니다.
    DNS 이름 고유한 이름을 입력합니다. 캐시 이름은 숫자, 문자 및 하이픈만 포함하는 1~63자의 문자열이어야 합니다. 이름은 숫자 또는 문자로 시작하고 끝나야 하며 연속 하이픈을 포함할 수 없습니다. 캐시 인스턴스의 호스트 이름\<DNS name>.redis.cache.windows.net입니다.
    위치 위치를 선택합니다. 캐시를 사용하는 다른 서비스 근처에 있는 Azure 지역.
    캐시 SKU SKU를 선택합니다. SKU는 캐시에 사용할 수 있는 크기, 성능 및 기능 매개 변수를 결정합니다. 자세한 내용은 Azure Cache for Redis 개요를 참조하세요.
    캐시 크기 캐시 크기를 선택합니다. 자세한 내용은 Azure Cache for Redis 개요를 참조하세요.
  4. 네트워킹 탭을 선택하거나 다음: 네트워킹을 선택합니다.

  5. 네트워킹 탭에서 캐시에 사용할 연결 방법을 선택합니다.

  6. 고급 탭을 선택하거나 다음: 고급을 선택합니다.

  7. 고급 창에서 다음 정보에 따라 인증 방법을 확인하거나 선택합니다.

    고급 창과 선택할 수 있는 옵션을 보여 주는 스크린샷.

    • 기본적으로 새 기본, 표준 또는 프리미엄 캐시의 경우 Microsoft Entra 인증이 활성화되고 액세스 키 인증이 비활성화됩니다.
    • 기본 또는 표준 캐시의 경우 비 TLS 포트 선택 영역을 선택/해제할 수 있습니다.
    • 표준 및 프리미엄 캐시의 경우 가용성 영역을 사용하도록 선택할 수 있습니다. 캐시를 만든 후에는 가용성 영역을 비활성화할 수 없습니다.
    • 프리미엄 캐시의 경우 비 TLS 포트, 클러스터링, 관리 ID 및 데이터 지속성에 대한 설정을 구성합니다.

    Important

    최적의 보안을 위해 관리 ID와 함께 Microsoft Entra ID를 사용하여 가능한 경우 캐시에 대한 요청에 권한을 부여하는 것이 좋습니다. Microsoft Entra ID 및 관리 ID를 사용한 인증은 공유 액세스 키 인증에 비해 뛰어난 보안과 사용 편의성을 제공합니다. 캐시에서 관리 ID를 사용하는 방법에 대한 자세한 내용은 캐시 인증을 위한 Microsoft Entra ID 사용을 참조하세요.

  8. (선택 사항) 태그 탭을 선택하거나 다음: 태그를 선택합니다.

  9. (선택 사항) 태그 탭에서 캐시 리소스를 분류하려는 경우 태그 이름과 값을 입력합니다.

  10. 검토 + 만들기 단추를 선택합니다.

    검토 + 만들기 탭에서 Azure는 자동으로 구성의 유효성을 검사합니다.

  11. 녹색 유효성 검사 통과 메시지가 표시되면 만들기를 선택합니다.

새 캐시 배포는 몇 분 동안 발생합니다. Azure Cache for Redis 개요 창에서 배포 진행률을 모니터링할 수 있습니다. 상태실행 중으로 표시되면 캐시를 사용할 준비가 된 것입니다.

캐시에서 Microsoft Entra ID 인증 사용

엔터프라이즈 및 엔터프라이즈 플래시 계층을 제외한 Azure Redis 캐시에는 기본적으로 Microsoft Entra Authentication이 사용하도록 설정되어 있습니다. 액세스 키는 기본적으로 사용하지 않도록 설정됩니다.

Important

Microsoft는 암호 또는 액세스 키를 사용하는 대신 가장 안전한 인증 환경에 Microsoft Entra ID 인증을 사용하는 것이 좋습니다. 이 문서의 이 섹션에서 설명하는 인증은 애플리케이션에 대한 신뢰 수준이 매우 높고 Microsoft Entra ID를 사용할 때 존재하지 않는 위험을 수반하는 액세스 키를 사용합니다. Microsoft Entra ID 인증이 실행 가능하지 않은 경우에만 이 문서의 접근 방식을 사용합니다.

  1. Azure Portal에서 Microsoft Entra 토큰 기반 인증을 사용하려는 캐시를 선택합니다.

  2. 리소스 메뉴에서 인증을 선택합니다.

  3. 멤버 선택을 선택하고 유효한 사용자의 이름을 입력합니다. 입력한 사용자에게는 저장을 선택하면 기본적으로 데이터 소유자 액세스 정책이 자동으로 할당됩니다. 관리 ID 또는 서비스 주체를 입력하여 캐시 인스턴스에 연결할 수도 있습니다.

    리소스 메뉴에서 선택된 인증과 Microsoft Entra 인증 사용하도록 설정이 선택된 스크린샷.

Azure CLI에서 Microsoft Entra ID를 사용하는 방법에 대한 자세한 내용은 ID에 대한 참조 페이지를 참조하세요.

Microsoft Entra ID 인증을 사용하기 위한 라이브러리 설치

Azure.StackExchange.Redis 라이브러리에는 Microsoft Entra ID를 사용하여 Azure Redis 서비스에 연결하기 위해 Microsoft Entra ID 인증 방법을 사용하는 Microsoft가 포함되어 있습니다. 모든 Azure Cache for Redis, Azure Cache for Redis Enterprise 및 Azure Managed Redis(미리 보기)에 적용할 수 있습니다.

  1. Visual Studio에서 프로젝트 열기

  2. 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다 .

  3. Microsoft.Azure.StackExchangeRedis를 검색합니다.

  4. 설치 단추를 클릭하여 설치

  5. 메시지가 표시된 모든 콘텐츠에 동의하여 설치를 완료합니다.

Microsoft Entra ID를 사용하여 캐시에 연결

  1. 코드에 라이브러리 포함

    using Azure.Identity;
    using StackExchange.Redis
    
  2. 기본 Azure 자격 증명을 사용하여 클라이언트 연결을 인증합니다. 이렇게 하면 코드가 로컬로 실행될 때 로그인한 사용자 자격 증명을 사용하고 코드 변경 없이 Azure에서 실행할 때 Azure 관리 ID를 사용할 수 있습니다.

var configurationOptions = await ConfigurationOptions.Parse($"{_redisHostName}").ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
ConnectionMultiplexer _newConnection = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
IDatabase Database = _newConnection.GetDatabase();

web.config 파일을 편집하려면

  1. 다음 콘텐츠를 추가하여 Web.config 파일을 편집합니다.

    <appSettings>
        <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/>
    </appSettings>
    
  2. Azure Portal의 리소스 메뉴에 있는 개요에 표시되는 캐시 호스트 이름으로 바꿉 <cache-hostname> 니다.

    예를 들어 Azure Managed Redis 또는 엔터프라이즈 계층을 사용하는 경우: my-redis.eastus.azure.net:10000

  3. 파일을 저장합니다.

자세한 내용은 StackExchange.RedisGitHub 리포지토리의 코드를 참조하세요.

web.config 파일을 편집하려면

  1. 다음 콘텐츠를 추가하여 Web.config 파일을 편집합니다.

    <appSettings>
        <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/>
    </appSettings>
    
  2. Azure Portal의 리소스 메뉴에 있는 개요에 표시되는 캐시 호스트 이름으로 바꿉 <cache-hostname> 니다.

    예를 들어 Azure Cache for Redis의 경우 my-redis.eastus.azure.net:6380

  3. 파일을 저장합니다.

자세한 내용은 StackExchange.RedisGitHub 리포지토리의 코드를 참조하세요.

로컬에서 앱 실행하기

기본적으로 프로젝트는 테스트 및 디버깅을 위해 IIS Express에서 앱을 로컬로 호스팅하도록 구성됩니다.

로컬에서 앱을 실행하려면

  1. Visual Studio에서 디버그>디버깅 시작을 선택하여 테스트 및 디버깅을 위해 앱을 로컬로 빌드하고 시작합니다.

  2. 브라우저의 탐색 모음에서 Azure Cache for Redis 테스트를 선택합니다.

  3. 다음 예제에서 Message 키에는 이전에 포털에서 Azure Cache for Redis 콘솔을 사용하여 설정된 캐시된 값이 있습니다. 앱에서 캐시된 값을 업데이트했습니다. 또한 앱에서 PINGCLIENT LIST 명령을 실행했습니다.

    로컬에서 완료된 간단한 테스트의 스크린샷

Azure에서 게시 및 실행

앱을 로컬로 성공적으로 테스트한 후에는 Azure에 앱을 배포하고 클라우드에서 실행할 수 있습니다.

Azure에 앱을 게시하려면

  1. Visual Studio의 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭합니다. 그런 다음, 게시를 선택합니다.

    게시 단추를 보여 주는 스크린샷.

  2. Microsoft Azure App Service새로 만들기를 차례로 선택한 다음, 게시를 선택합니다.

    App Service에 게시하는 방법을 보여 주는 스크린샷

  3. App Service 만들기 대화 상자에서 다음과 같이 변경합니다.

    설정 권장 값 설명
    앱 이름 기본값을 사용하세요. 앱 이름은 Azure에 배포될 때 앱의 호스트 이름입니다. 필요한 경우 이름을 고유하게 만들려면 타임스탬프 접미사가 추가될 수 있습니다.
    구독 Azure 구독을 선택합니다. 이 구독은 모든 관련된 호스팅 비용이 청구됩니다. 여러 Azure 구독이 있는 경우 원하는 구독이 선택되어 있는지 확인합니다.
    리소스 그룹 캐시를 만든 것과 동일한 리소스 그룹을 사용합니다(예를 들어 TestResourceGroup). 리소스 그룹은 모든 리소스를 그룹으로 관리하는 경우 유용합니다. 나중에 앱을 삭제하려는 경우 그룹만 삭제할 수 있습니다.
    App Service 계획 새로 만들기를 선택하여 TestingPlan이라는 새 App Service 계획을 만듭니다.
    캐시를 만들 때 사용했던 것과 동일한 위치를 사용합니다.
    크기에 대해 무료를 선택합니다.
    App Service 계획은 실행할 웹앱에 대한 컴퓨팅 리소스 세트를 정의합니다.

    App Service 대화 상자를 보여 주는 스크린샷

  4. App Service 호스팅 설정을 구성한 후 만들기를 선택합니다.

  5. Visual Studio에서 출력 창을 모니터링하여 게시 상태를 확인합니다. 앱이 게시되면 앱의 URL이 기록됩니다.

    출력 창에 정보를 게시하는 스크린샷

캐시에 대한 앱 설정 추가

새 앱이 게시되면 새 앱 설정을 추가합니다. 이 설정은 캐시 연결 정보를 저장하는 데 사용됩니다.

앱 설정을 추가하려면

  1. 만든 새 앱을 찾으려면 Azure Portal 맨 위에 있는 검색 창에 앱 이름을 입력합니다.

    Azure Portal에서 앱을 찾는 방법을 보여 주는 스크린샷

  2. 캐시에 연결하는 데 사용할 앱에 대해 CacheConnection이란 이름의 새 앱 설정을 추가합니다. web.config 파일에서 구성 RedisHostName 한 것과 동일한 값을 사용합니다.

Azure에서 앱 실행

  1. 브라우저에서 앱에 대한 URL로 이동합니다. URL은 Visual Studio의 출력 창에 게시 작업의 결과로 표시됩니다. URL은 사용자가 만든 앱의 개요 페이지에 있는 Azure Portal에도 제공됩니다.

  2. 탐색 모음에서 Azure Cache for Redis 테스트를 선택하여 로컬 버전과 마찬가지로 캐시 액세스를 테스트합니다.

리소스 정리

이 문서에서 만든 리소스를 계속 사용하려면 리소스 그룹을 유지합니다.

그렇지 않고 리소스 사용을 완료하는 경우 요금이 부과되지 않도록 하려면 만든 Azure 리소스 그룹을 삭제하면 됩니다.

Important

리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다. 리소스 그룹을 삭제하는 경우 그 안의 모든 리소스가 영구적으로 삭제됩니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 해야 합니다. 유지하려는 리소스가 포함된 기존 리소스 그룹 내에서 리소스를 만든 경우 리소스 그룹을 삭제하는 대신 각 리소스를 개별적으로 삭제할 수 있습니다.

리소스 그룹을 삭제하려면

  1. Azure Portal에 로그인한 다음, 리소스 그룹을 선택합니다.

  2. 삭제하려는 리소스 그룹을 선택합니다.

    리소스 그룹이 많은 경우 필드 필터링... 상자를 사용하여 이 문서에 대해 만든 리소스 그룹의 이름을 입력합니다. 결과 목록에서 리소스 그룹을 선택합니다.

    작업 창에서 삭제할 리소스 그룹 목록을 보여 주는 스크린샷.

  3. 리소스 그룹 삭제를 선택합니다.

  4. 리소스 그룹 삭제를 확인하는 메시지가 표시됩니다. 리소스 그룹의 이름을 입력하여 확인한 다음, 삭제를 선택합니다.

    삭제를 확인하기 위해 리소스 이름이 필요한 양식을 보여 주는 스크린샷.

잠시 후, 리소스 그룹 및 모든 해당 리소스가 삭제됩니다.