다음을 통해 공유


Spring Cloud Azure Redis 지원

이 문서는✅ 버전 4.19.0 ✅ 버전 5.19.0에 적용됩니다.

이 문서에서는 Spring Cloud Azure 및 Spring Data Redis를 함께 사용하고 Azure Cache for Redis에 대한 인증을 위해 다양한 유형의 자격 증명을 제공하는 방법을 설명합니다.

Azure Cache for Redis Redis 소프트웨어를 기반으로 메모리 내 데이터 저장소를 제공합니다. Redis 백 엔드 데이터 저장소를 많이 사용하는 애플리케이션의 성능과 확장성을 향상시킵니다.

지원되는 Redis 버전

지원되는 버전은 현재 버전참조하세요.

핵심 기능

암호 없는 연결

암호 없는 연결은 애플리케이션, 해당 구성 파일 또는 환경 변수에 자격 증명을 저장하지 않고 Azure 서비스에 연결하는 데 Microsoft Entra 인증을 사용합니다. Microsoft Entra 인증은 Microsoft Entra ID에 정의된 ID를 사용하여 Azure Cache for Redis에 연결하는 메커니즘입니다. Microsoft Entra 인증을 사용하면 중앙 위치에서 캐시 ID 및 기타 Microsoft 서비스를 관리할 수 있으므로 권한 관리가 간소화됩니다.

작동 방식

Spring Cloud Azure는 먼저 애플리케이션 인증 구성에 따라 다음 유형의 자격 증명 중 하나를 빌드합니다.

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

이러한 유형의 자격 증명을 찾을 수 없는 경우 DefaultTokenCredential 통해 자격 증명 체인을 사용하여 애플리케이션 속성, 환경 변수, 관리 ID 또는 IDE에서 자격 증명을 가져옵니다. 자세한 내용은 Spring Cloud Azure 인증참조하세요.

구성

Redis 지원을 사용하는 경우 구성 가능한 속성:

재산 묘사 기본값 필수
spring.cloud.azure.redis.enabled를 Azure Cache for Redis를 사용할 수 있는지 여부입니다. 아니요
spring.cloud.azure.redis.name을 Azure Cache for Redis 인스턴스 이름입니다.
spring.cloud.azure.redis.resource.resource-group Azure Cache for Redis의 리소스 그룹입니다.
spring.cloud.azure.profile.subscription-id 구독 ID입니다.
spring.data.redis.azure.passwordless 사용 Azure Cache for Redis에 암호 없이 사용하도록 설정할지 여부입니다. false 아니요

기본 사용량

다음 섹션에서는 클래식 Spring Boot 애플리케이션 사용 시나리오를 보여 줍니다.

암호 없는 Azure Cache for Redis에 연결

  1. 프로젝트에 다음 종속성을 추가합니다. 여기에는 프로젝트의 spring-boot-starter 종속성이 전이적으로 자동으로 포함됩니다.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    

    메모

    버전 5.19.0이후 암호 없는 연결이 지원되었습니다.

    위의 종속성과 함께 BOM spring-cloud-azure-dependencies 추가해야 합니다. 자세한 내용은 Spring Cloud Azure 개발자 가이드시작 섹션을 참조하세요.

  2. application.yml 파일에서 다음 속성을 구성합니다.

    spring:
      data:
        redis:
          host: ${AZURE_CACHE_REDIS_HOST}
          username: ${AZURE_CACHE_REDIS_USERNAME}
          port: 6380
          ssl:
            enabled: true
          azure:
            passwordless-enabled: true
    

    중요하다

    암호 없는 연결은 Microsoft Entra 인증을 사용합니다. Microsoft Entra 인증을 사용하려면 Microsoft Entra 인증을 사용하도록 설정하고 user(managed identity/service principal) 선택하여 Data Owner Access Policy할당해야 합니다.

    자세한 내용과 값을 가져오려면 캐시 인증Microsoft Entra ID 사용 캐시 섹션에서 Microsoft Entra ID 인증 사용 섹션을 참조하세요.

관리 ID를 사용하여 Azure Cache for Redis에 연결

  1. 관리 ID를 사용하려면 서비스에 대한 관리 ID를 사용하도록 설정하고 캐시Microsoft Entra 인증을 사용하도록 설정할 있어야 합니다.

  2. 그런 다음, application.yml 파일에 다음 속성을 추가합니다.

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
    

    중요하다

    redis.username 관리 ID 개체(보안 주체) ID로 변경해야 합니다.

    사용자가 할당한 관리 ID를 사용하는 경우 사용자가 할당한 관리 ID 클라이언트 ID를 사용하여 속성 spring.cloud.azure.credential.client-id 추가해야 합니다.

Azure Resource Manager를 통해 Azure Cache for Redis에 연결

다음 단계를 사용하여 Azure Cache for Redis에 연결합니다.

  1. 프로젝트에 다음 종속성을 추가합니다. 여기에는 프로젝트의 spring-boot-starter 종속성이 전이적으로 자동으로 포함됩니다.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-resourcemanager</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    메모

    위의 종속성과 함께 BOM spring-cloud-azure-dependencies 추가해야 합니다. 자세한 내용은 Spring Cloud Azure 개발자 가이드시작 섹션을 참조하세요.

  1. application.yml 파일에서 다음 속성을 구성합니다.

    spring:
      cloud:
        azure:
          profile:
            subscription-id: ${AZURE_SUBSCRIPTION_ID}
          redis:
            name: ${AZURE_CACHE_REDIS_NAME}
            resource:
              resource-group: ${AZURE_RESOURCE_GROUP}
    

샘플

GitHub에서 azure-spring-boot-samples 리포지토리를 참조하세요.