Azure Cache for Redis에서 데이터 가져오기 및 내보내기

Azure Cache for Redis에서 가져오기 및 내보내기 기능을 데이터 관리 작업으로 사용합니다. Azure Cache for RDB(Redis Database) 스냅샷을 사용하여 캐시 인스턴스로 데이터를 가져오거나 캐시 인스턴스에서 데이터를 내보냅니다. 스냅샷은 Azure Storage 계정의 Blob을 사용하여 가져오거나 내보냅니다.

Import/Export는 Premium, Enterprise 및 Enterprise Flash 계층에서 지원됩니다.

  • 내보내기 - Azure Cache for Redis RDB 스냅샷을 페이지 Blob(Premium 계층) 또는 블록 Blob(Enterprise 계층)으로 내보낼 수 있습니다.
  • 가져오기 - Azure Cache for Redis RDB 스냅샷을 페이지 Blob 또는 블록 Blob에서 가져올 수 있습니다.

Import/Export를 사용하여 다른 Azure Cache for Redis 인스턴스 간에 마이그레이션하거나 사용하기 전에 데이터로 캐시를 채울 수 있습니다.

이 문서에서는 Azure Cache for Redis를 사용하여 데이터를 가져오고 내보내는 방법에 대한 지침과 자주 묻는 질문에 대한 답변을 제공합니다.

가용성 범위

서비스 계층 기본, 표준 Premium Enterprise, Enterprise Flash
사용 가능

호환성

  • 데이터는 Premium 계층에서 RDB 페이지 Blob으로 내보내집니다. EnterpriseEnterprise Flash 계층에서 데이터는 .gz 블록 Blob으로 내보내집니다.
  • Redis 4.0을 실행하는 캐시는 RDB 버전 8 이하를 지원합니다. Redis 6.0을 실행하는 캐시는 RDB 버전 9 이하를 지원합니다.
  • 최신 버전의 Redis에서 내보낸 백업(예: Redis 6.0)을 이전 버전의 Redis로 가져올 수 없습니다(예: Redis 4.0).
  • Premium 계층 캐시의 RDB 파일을 EnterpriseEnterprise Flash 계층 캐시로 가져올 수 있습니다.

가져오기

가져오기를 사용하여 Linux/Windows에서 실행되는 Redis 또는 Amazon Web Services 등과 같은 클라우드 공급자를 포함하여 환경 또는 클라우드에서 실행되는 모든 Redis 서버에서 Redis 호환 RDB 파일을 가져옵니다. 데이터 가져오기는 미리 채워진 데이터로 캐시를 만드는 손쉬운 방법입니다. 가져오기 프로세스 중에는 Azure Cache for Redis에서 RDB 파일을 Azure Storage에서 메모리로 로드한 다음, 키를 캐시에 삽입합니다.

참고 항목

가져오기 작업을 시작하기 전에 RDB(Redis 데이터베이스) 파일이 Azure Cache for Redis 인스턴스와 동일한 지역 및 구독에 있는 Azure 스토리지의 페이지 Blob 또는 블록 Blob에 업로드되었는지 확인합니다. 인증을 위해 관리 ID를 사용하는 경우 스토리지 계정은 다른 구독에 있을 수 있습니다. 자세한 내용은 Azure Blob Storage 시작을 참조하세요. Azure Cache for Redis 내보내기 기능을 사용하여 RDB 파일을 내보낸 경우 RDB 파일이 이미 페이지 Blob에 저장되어 있고 이를 가져올 준비가 됩니다.

Important

현재 Redis Enterprise 계층에서 Premium 계층으로 가져오는 것은 지원되지 않습니다.

  1. 내보낸 캐시 Blob을 하나 이상 가져오려면 Azure Portal에서 캐시로 이동하여 리소스 메뉴에서 데이터 가져오기를 선택합니다. 작업 창에 RDB 파일을 찾을 수 있는 Blob 선택이 표시됩니다.

    리소스 메뉴에서 선택한 데이터 가져오기를 보여 주는 스크린샷

  2. Blob 선택을 선택하고 가져올 데이터를 포함하는 스토리지 계정을 선택합니다.

    스토리지 계정 목록을 보여 주는 스크린샷

  3. 가져올 데이터를 포함하는 컨테이너를 선택합니다.

    이전에 선택한 스토리지 계정의 컨테이너 목록을 보여 주는 스크린샷

  4. Blob 이름의 왼쪽 영역을 선택하여 가져올 Blob을 하나 이상 선택한 다음, 선택을 선택합니다.

    컨테이너의 Blob을 보여 주는 스크린샷

  5. 가져오기를 선택하여 가져오기 프로세스를 시작합니다.

    Important

    가져오기 프로세스가 진행되는 동안 캐시 클라이언트는 캐시에 액세스할 수 없으며, 캐시에 있는 기존 데이터는 삭제됩니다.

    가져오기를 시작하기 위해 선택하는 가져오기 단추를 보여 주는 스크린샷

    Azure Portal의 알림에 따르거나 활동 로그의 이벤트를 확인하여 가져오기 작업의 진행 상황을 모니터링할 수 있습니다.

    Important

    활동 로그 지원은 아직 Enterprise 계층에서 제공되지 않습니다.

    알림 영역에서 가져오기 진행 상황을 보여 주는 스크린샷

내보내기

내보내기를 사용하면 Azure Cache for Redis에 저장된 데이터를 Redis 호환 RDB 파일로 내보낼 수 있습니다. 이 기능을 사용하여 데이터를 Azure Cache for Redis 인스턴스에서 다른 인스턴스 또는 다른 Redis 서버로 이동할 수 있습니다. 내보내기 프로세스 중에는 임시 파일이 Azure Cache for Redis 서버 인스턴스를 호스트하는 VM에 만들어집니다. 그런 다음, 선택한 스토리지 계정에 파일이 업로드됩니다. 성공 또는 실패 상태로 내보내기 작업이 완료되면, 임시 파일은 삭제됩니다.

  1. 캐시의 현재 내용을 스토리지로 내보내려면 Azure Portal에서 캐시로 이동하여 리소스 메뉴에서 데이터 내보내기를 선택합니다. 작업 창에 스토리지 컨테이너 선택이 표시됩니다.

    리소스 메뉴에서 선택한 내보내기 데이터를 보여 주는 스크린샷

  2. 스토리지 컨테이너 선택을 선택하고 사용 가능한 스토리지 계정 목록을 표시합니다. 원하는 스토리지 계정을 선택합니다. 스토리지 계정은 캐시와 동일한 지역에 있어야 합니다. 인증을 위해 관리 ID를 사용하는 경우 스토리지 계정은 다른 구독에 있을 수 있습니다. 그렇지 않으면 스토리지 계정이 캐시와 동일한 구독에 있어야 합니다.

    Important

    • 내보내기는 페이지 Blob에서 사용할 수 있고, 클래식 및 Resource Manager 스토리지 계정 양쪽 모두에서 지원됩니다.
    • Azure Cache for Redis는 ADLS Gen2 스토리지 계정으로 내보내기를 지원하지 않습니다.
    • 현재 Blob 스토리지 계정에서는 내보내기가 지원되지 않습니다.
    • 방화벽 사용 스토리지 계정으로 캐시 데이터 내보내기가 실패하는 경우 내 스토리지 계정에서 방화벽을 사용하는 경우에는 어떡하나요?를 참조하세요.

    자세한 내용은 Azure Storage 계정 개요를 참조하세요.

    작업 창의 컨테이너 목록을 보여 주는 스크린샷

  3. 내보내기를 보관할 스토리지 컨테이너를 선택한 다음 선택합니다. 새 컨테이너가 필요한 경우 컨테이너 추가를 선택하여 먼저 추가한 다음, 목록에서 선택합니다.

    강조된 컨테이너 목록과 선택 단추가 있는 컨테이너 목록의 스크린샷

  4. Blob 이름 접두사를 입력하고 내보내기를 선택하여 내보내기 프로세스를 시작합니다. Blob 이름 접두사는 내보내기 작업에 의해 생성되는 파일의 이름에 접두사를 붙이는 데 사용됩니다.

    Blob 이름 접두사와 내보내기 단추를 보여 주는 스크린샷

    Azure Portal의 알림에 따르거나 감사 로그에서 이벤트를 확인하여 내보내기 작업의 진행 상황을 모니터링할 수 있습니다.

    알림 영역에서 내보내기 진행 상황을 보여 주는 스크린샷

    내보내기 프로세스를 진행하는 동안 캐시는 사용할 수 있는 상태로 유지됩니다.

Import/Export FAQ

이 섹션은 Import/Export 기능에 대한 질문과 대답을 포함합니다.

Import/Export를 지원하는 계층은 무엇인가요?

가져오기내보내기 기능은 Premium, EnterpriseEnterprise Flash 계층에서만 사용할 수 있습니다.

Redis 서버에서 데이터를 가져올 수 있나요?

예, Azure Cache for Redis 인스턴스에서 내보낸 데이터를 가져올 수 있습니다. 모든 클라우드 또는 환경에서 실행되는 모든 Redis 서버에서 RDB 파일을 가져올 수 있습니다. 환경에는 Linux, Windows 또는 클라우드 공급자(예: Amazon Web Services)가 포함됩니다. 이 데이터를 가져오려면 Azure Storage 계정의 페이지 또는 블록 Blob에 원하는 Redis 서버의 RDB 파일을 업로드합니다. 그런 다음, 프리미엄 Azure Cache for Redis 인스턴스로 가져옵니다.

예를 들어, 다음을 수행합니다.

  1. 프로덕션 캐시에서 데이터를 내보냅니다.

  2. 그런 후 테스트 또는 마이그레이션을 위한 스테이징 환경의 일부로 사용되는 캐시로 가져올 수 있습니다.

Important

페이지 Blob을 사용할 때 Azure Cache for Redis 이외의 Redis 서버에서 내보낸 데이터를 성공적으로 가져오려면 페이지 Blob 크기가 512바이트 한도에 맞추어져야 합니다. 필요한 바이트 패딩을 수행하는 샘플 코드는 샘플 페이지 Blob 업로드를 참조하세요.

가져올 수 있는 RDB 버전은 무엇인가요?

가져오기와 함께 사용되는 지원되는 RDB 버전에 대한 자세한 내용은 호환성 섹션을 참조하세요.

Import/Export 작업을 진행하는 동안 내 캐시를 사용할 수 있나요?

  • 내보내기 - 캐시는 사용 가능한 상태로 유지되며, 내보내기 작업을 진행하는 동안 캐시를 계속 사용할 수 있습니다.
  • 가져오기 - 캐시는 가져오기 작업이 시작되면 사용할 수 없게 되고, 가져오기 작업이 완료되면 사용할 수 있게 됩니다.

Redis 클러스터에 Import/Export를 사용할 수 있나요?

예, 클러스터형 캐시와 비클러스터형 캐시 사이에서 가져오기/내보내기를 수행할 수 있습니다. Redis 클러스터는 0 데이터베이스만 지원하기 때문에, 0 이외의 데이터베이스에 저장된 데이터를 가져올 수 없습니다. 클러스터형 캐시 데이터를 가져올 때, 키가 클러스터의 분할에 재배포됩니다.

Import/Export는 사용자 지정 데이터베이스 설정에서 어떻게 작동합니까?

일부 가격 책정 계층에는 다른 데이터베이스 제한이 있으므로 캐시 생성 중에 databases 설정에 대한 사용자 지정 값을 구성했다면 가져오기 할 때 고려 사항이 있습니다.

  • 내보내기 한 계층보다 낮은 databases 제한을 가진 가격 책정 계층으로 가져오기할 때:
    • 모든 가격 책정 계층에 대해 기본값이 16개인 databases를 사용하는 경우에는 데이터 손실이 전혀 없습니다.
    • 가져오는 계층의 대한 제한 내에 포함되는 databases의 사용자 지정 수를 사용하는 경우에는 데이터 손실이 전혀 없습니다.
    • 새 계층의 제한을 초과하는 데이터베이스에 포함된 데이터를 내보낸 경우 상위 데이터베이스의 데이터는 가져올 수 없습니다.

Import/Export가 Redis 지속성과 어떻게 다른가요?

Azure Cache for Redis ‘지속성’ 기능은 주로 데이터 내구성 기능입니다. 반대로 ‘가져오기/내보내기’ 기능은 특정 시점 복구를 위해 주기적인 데이터 백업을 만드는 방법으로 설계되었습니다.

‘지속성’이 구성된 경우 구성 가능한 백업 주기에 따라, 캐시는 데이터의 스냅샷을 디스크에 지속적으로 유지합니다. 데이터는 Redis 전용 이진 형식으로 작성됩니다. 주 캐시 및 복제본 캐시의 기능을 무력화하는 재해가 발생하면, 캐시 데이터는 최신 스냅샷을 사용하여 자동으로 복원됩니다.

데이터 지속성은 재해 복구를 위해 설계되었습니다. 특정 시점 복구 메커니즘으로 의도된 것은 아닙니다.

  • Premium 계층에서 데이터 지속성 파일은 Azure Storage에 저장되지만 파일을 다른 캐시로 가져올 수는 없습니다.
  • Enterprise 계층에서 데이터 지속성 파일은 사용자가 액세스할 수 없는 탑재된 디스크에 저장됩니다.

특정 시점 복구를 위해 주기적인 데이터 백업을 만들려면 ‘가져오기/내보내기’ 기능을 사용하는 것이 좋습니다. 자세한 내용은 Azure Cache for Redis에 대한 데이터 지속성을 구성하는 방법을 참조하세요.

PowerShell, CLI, 또는 다른 관리 클라이언트를 사용하여 Import/Export를 자동화할 수 있나요?

예, Premium 계층에 대한 다음 지침을 참조하세요.

EnterpriseEnterprise Flash 계층의 경우:

Import/Export 작업을 진행하는 동안 시간 초과 오류가 발생했습니다. 무엇을 의미하나요?

왼쪽에서, 작업을 시작하기 전에 데이터 가져오기데이터 내보내기에 15분 넘게 머무르는 경우 다음 예제와 유사한 오류 메시지를 받게 됩니다.

The request to import data into cache 'contoso55' failed with status 'error' and error 'One of the SAS URIs provided could not be used for the following reason: The SAS token end time (se) must be at least 1 hour from now and the start time (st), if given, must be at least 15 minutes in the past.

이를 해결하려면, 15분이 지나기 전에 가져오기 또는 내보내기 작업을 시작하세요.

Azure Blob Storage로 데이터를 내보내다가 오류가 발생했습니다. 무슨 일이 일어났나요?

내보내기는 페이지 Blob으로 저장된 RDB 파일에 대해서만 작동합니다. 현재 핫 계층과 쿨 계층의 Blob 스토리지 계정을 비롯한 다른 Blob 형식이 지원되지 않습니다. 자세한 내용은 Azure Storage 계정 개요를 참조하세요. 액세스 키를 사용하여 스토리지 계정을 인증하는 경우 스토리지 계정에 방화벽 예외가 있으면 가져오기/내보내기 프로세스가 실패할 수 있습니다.

내 스토리지 계정에서 방화벽을 사용하는 경우에는 어떡하나요?

Premium 계층 인스턴스를 사용하는 경우 “신뢰할 수 있는 서비스 목록의 Azure 서비스가 이 스토리지 계정 설정에 액세스하도록 허용”을 확인해야 합니다. 그런 다음 관리 ID(시스템 또는 사용자 할당)를 사용하고 해당 개체 ID에 대한 Storage Blob 데이터 기여자 RBAC 역할을 프로비전합니다.

자세히 알아보려면 스토리지 계정의 관리 ID - Azure Cache for Redis를 참조하세요.

EnterpriseEnterprise Flash 인스턴스는 방화벽 또는 프라이빗 엔드포인트를 사용하는 스토리지 계정에서 데이터를 가져오거나 내보내는 것을 지원하지 않습니다. 스토리지 계정에는 공용 네트워크 액세스 권한이 있어야 합니다.

내 캐시와 다른 구독의 스토리지 계정에서 데이터를 가져오거나 내보낼 수 있나요?

프리미엄 계층에서는 캐시와 다른 구독의 스토리지 계정에서 데이터를 가져오고 내보낼 수 있지만 인증 방법으로 관리 ID를 사용해야 합니다. 가져오기 또는 내보내기를 구성할 때 스토리지 계정을 보유하는 선택한 구독을 선택해야 합니다.

내보내기를 허용하려면 스토리지 계정 컨테이너 SAS(공유 액세스 서명) 토큰에 어떤 권한을 부여해야 하나요?

Azure Storage 계정으로 내보내기가 성공적으로 작동하려면 SAS(공유 액세스 서명) 토큰에 다음 권한이 있어야 합니다.

  • read
  • add
  • create
  • write
  • delete
  • tag
  • move

다음 단계

Azure Cache for Redis 기능에 대해 자세히 알아봅니다.