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

이 빠른 시작에서는 Azure Cache for Redis에 연결하여 캐시의 데이터를 저장하고 검색하는 ASP.NET Core 웹 애플리케이션에 Azure Cache for Redis를 연결합니다.

.NET Core에도 캐싱 공급자가 있습니다. 기존 코드를 최소한으로 변경하면서 Redis 사용을 빠르게 시작하려면 다음을 참조하세요.

GitHub의 코드로 건너뛰기

GitHub 리포지토리를 복제 https://github.com/Azure-Samples/azure-cache-redis-samples 하고 디렉터리로 이동하여 quickstart/aspnet-core 완료된 소스 코드를 확인합니다.

quickstart/aspnet-core 디렉터리도 Azure 개발자 CLI(azd) 템플릿으로 구성됩니다. 오픈 소스 azd 도구를 사용하여 로컬 환경에서 Azure로 프로비전 및 배포를 간소화합니다. 필요에 따라 명령을 실행 azd up 하여 Azure Cache for Redis 인스턴스를 자동으로 프로비전하고 연결하도록 로컬 샘플 앱을 구성합니다.

azd up

eShop 샘플 살펴보기

다음 단계에서는 ASP.NET 코어 캐싱 공급자(Redis 캐싱 공급자를 사용하는 ASP.NET 코어 eShop)를 보여 주는 실제 시나리오 eShop 애플리케이션을 볼 수 있습니다.

포함된 기능:

  • Redis 분산 캐싱
  • Redis 세션 상태 제공자

배포 지침은 README.md에 있습니다.

필수 조건

캐시 만들기

  1. 캐시를 만들려면 Azure Portal에 로그인하여 리소스 만들기를 선택합니다.

    리소스 만들기는 왼쪽 탐색 창에 강조 표시됩니다.

  2. 시작 페이지의 검색 상자에 Azure Cache for Redis를 입력합니다. 그런 다음 만들기를 선택합니다.

    검색 상자에 Azure Cache for Redis가 포함된 Azure Marketplace의 스크린샷. 만들기가 빨간색 상자로 강조 표시되어 있습니다.

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

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

  5. 네트워킹 탭에서 연결 방법을 선택합니다.

  6. 고급 탭을 보려면 다음: 고급 탭을 선택하거나 페이지 하단에서 다음: 고급 단추를 선택합니다.

    작업 창의 [고급] 탭 및 선택할 수 있는 옵션을 보여 주는 스크린샷

  7. Microsoft Entra 인증을 사용하도록 설정하려면 확인란을 선택합니다.

    Important

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

  8. 다음: 태그 탭을 선택하거나 페이지 맨 아래에서 다음: 태그 단추를 선택합니다.

  9. 필요에 따라 리소스를 분류하려는 경우 태그 탭에서 이름 및 값을 입력합니다.

  10. 검토 + 만들기를 선택합니다. 검토 + 만들기 탭으로 이동됩니다. 여기서 Azure가 구성의 유효성을 검사합니다.

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

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

Azure Portal에서 호스트 이름 검색

캐시 클라이언트는 Azure Cache for Redis 서버에 연결하기 위해 캐시의 호스트 이름 및 포트가 필요합니다. 일부 클라이언트는 약간 다른 이름으로 이러한 항목을 참조할 수 있습니다. Azure Portal에서 호스트 이름 및 포트를 가져올 수 있습니다.

  • 리소스 메뉴에서 개요를 선택합니다. 호스트 이름은 형식 <DNS-name>.redis.cache.windows.net입니다.

    호스트 이름 주위에 빨간색 상자가 있는 Azure Cache for Redis 속성을 보여 주는 스크린샷

Redis 액세스 정책 추가

Azure Cache for Redis에 액세스하는 ID에 데이터 액세스 정책을 할당해야 합니다. 이 예제에서는 Azure CLI 또는 Visual Studio에 로그인하는 데 사용하는 것과 동일한 Microsoft Entra ID 계정에 데이터 액세스 정책을 할당합니다.

  1. 캐시에서 설정 리소스 메뉴를 선택하고 데이터 액세스 구성선택합니다.

  2. 데이터 액세스 구성 페이지의 위쪽 탐색 영역에서 새 Redis 사용자 추가 > 를 선택합니다.

    데이터 액세스 구성 화면을 보여 주는 스크린샷

  3. 새 Redis 사용자 페이지에서 데이터 기여자 정책을 선택하고 다음: Redis 사용자를 선택합니다.

  4. + 구성원 선택을 선택하여 플라이아웃 메뉴를 엽니다. 사용자 계정을 검색하고 결과에서 선택합니다.

    작업 창의 Redis 사용자 탭에 빨간색 상자가 강조 표시된 선택 멤버를 보여 주는 스크린샷

  5. 검토 + 할당을 선택하여 선택한 사용자에게 정책을 할당합니다.

호스트 이름에 대한 로컬 암호 추가

명령 창에서 다음 명령을 실행하여 캐시 이름 및 기본 액세스 키에 대해 꺾쇠 괄호를 포함한 자리 표시자를 바꾼 후 RedisHostName이라는 새 비밀을 저장합니다.

dotnet user-secrets set RedisHostName "<cache-name>.redis.cache.windows.net"

RedisConnection을 사용하여 캐시에 연결

RedisConnection 클래스는 캐시에 대한 연결을 관리합니다. 연결은 Controllers 폴더의 HomeController.cs에 있는 이 명령문에서 수행됩니다.

_redisConnection = await _redisConnectionFactory;

클래스에는 RedisConnection.cs Azure Cache for Redis에 연결하는 필수 형식을 포함하기 위해 파일 맨 위에 있는 네임스페이스 및 Azure.Identity 네임스페이스가 포함됩니다StackExchange.Redis.

using StackExchange.Redis;
using Azure.Identity;

RedisConnection 코드는 StackExchange.Redis에서 ConnectionMultiplexer 인스턴스를 관리하여 캐시에 항상 정상 연결되도록 합니다. RedisConnection 클래스는 연결이 손실되고 자동으로 다시 연결할 수 없을 때 연결을 다시 만듭니다.

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

샘플의 레이아웃 보기

이 샘플의 홈페이지 레이아웃은 _Layout.cshtml 파일에 저장됩니다. 이 페이지에서는 이 페이지의 Azure Cache for Redis 테스트를 클릭하여 실제 캐시 테스트를 시작합니다.

  1. Views\Shared\_Layout.cshtml을 엽니다.

  2. <div class="navbar-header">에서 다음을 확인할 수 있습니다.

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

시작 페이지의 스크린샷

캐시의 데이터 표시

홈페이지에서 Azure Cache for Redis 테스트를 선택하여 샘플 출력을 확인합니다.

  1. 솔루션 탐색기에서 폴더를 확장한 다음, Home 폴더를 마우스 오른쪽 단추로 클릭합니다.

  2. RedisCache.cshtml 파일에 이 코드가 표시되어야 합니다.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

로컬에서 앱 실행하기

  1. 명령 창에서 다음 명령을 실행하여 앱을 빌드합니다.

    dotnet build
    
  2. 그런 다음, 다음 명령을 사용하여 앱을 실행합니다.

    dotnet run
    
  3. 웹 브라우저에서 https://localhost:5001로 이동합니다.

  4. 캐시 액세스를 테스트하려면 웹 페이지의 탐색 모음에서 Azure Cache for Redis 테스트를 선택합니다.

간단한 로컬 테스트 완료를 보여 주는 스크린샷

리소스 정리

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

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

Important

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

리소스 그룹을 삭제하려면

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

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

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

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

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

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

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

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