가져오기 및 내보내기 개요

이 페이지에서는 Memorystore for Redis에서 가져오기 및 내보내기가 작동하는 방식을 설명합니다.

가져오기 및 내보내기 기능은 Redis의 기본 RDB 스냅샷 기능을 사용하여 Memorystore for Redis 인스턴스에서 데이터를 가져오거나 내보냅니다. 기본 RDB 형식을 사용하면 종속을 방지하여 Google Cloud 내에서 또는 Google Cloud 외부로 데이터를 쉽게 이동할 수 있습니다. 가져오기 및 내보내기는 Cloud Storage 버킷을 사용하여 RDB 파일을 저장합니다.

내보내기 중에 Memorystore for Redis 인스턴스의 동작은 오픈소스 Redis의 BGSAVE 명령어와 매우 유사합니다. Memorystore for Redis는 RDB 파일을 인스턴스의 데이터 디렉터리로 복사하여 가져옵니다.

RDB 파일을 가져오고 내보내는 방법은 Redis 인스턴스로 데이터 가져오기Redis 인스턴스에서 데이터 내보내기를 참조하세요.

Cloud 스케줄러를 사용하여 RDB 내보내기를 예약하는 방법은 Cloud 스케줄러를 사용하여 Memorystore for Redis 데이터베이스 내보내기를 참조하세요.

가져오기 기능 동작

  • 최적의 성능을 얻으려면 Redis 인스턴스와 동일한 리전에 있는 Cloud Storage 버킷에서 가져와야 합니다.

  • 가져오기 작업 중에 Redis 인스턴스를 사용할 수 없습니다. 가져오기 작업이 완료되면 인스턴스를 사용할 수 있습니다.

  • 가져오기에 성공하면 인스턴스의 기존 데이터를 RDB 파일의 데이터로 덮어씁니다.

  • 어떤 이유로든 가져오기에 실패하면 인스턴스가 온라인 상태가 되지만 데이터가 완전히 삭제될 수 있습니다. 동일한 RDB 파일을 사용하여 가져오기를 다시 시도하거나 다른 RDB 파일을 사용하여 데이터를 복원할 수 있습니다.

  • Memorystore for Redis 인스턴스는 동일한 Redis 버전 및 이전 Redis 버전에서 RDB 파일을 가져올 수 있지만 최신 버전에서는 RDB 파일을 가져올 수 없습니다.

  • 가져오기 작업을 취소할 수 있지만 취소하면 인스턴스의 캐시가 완전히 삭제되어 복구됩니다. 이는 기본 등급 인스턴스와 표준 등급 인스턴스 둘 다 해당합니다.

  • 인스턴스는 이전 Redis 버전에서만 백업을 가져올 수 있습니다. Redis 5.0을 실행하는 인스턴스는 Redis 4.0에서 내보낸 RDB를 가져올 수 있지만 Redis 4.0을 실행하는 인스턴스는 Redis 5.0에서 RDB를 가져올 수 없습니다.

내보내기 기능 동작

  • 내보내기 작업 중에 Redis 인스턴스에서 데이터를 읽고 쓸 수 있습니다. 하지만 인스턴스 확장, 업데이트, 구성과 같은 관리 작업은 수행할 수 없습니다.

  • 내보내기 중에 인스턴스의 지연 시간이 늘어날 수 있습니다.

  • 최적의 성능을 얻으려면 RDB 백업을 Redis 인스턴스와 동일한 리전에 있는 Cloud Storage 버킷으로 내보내야 합니다.

  • 내보내기 중에 RDB 파일은 선택한 Cloud Storage 버킷에 저장됩니다.

  • 언제든지 내보내기 작업을 취소할 수 있습니다. 취소해도 인스턴스의 데이터 또는 가용성에 영향을 주지 않습니다.

    • 내보내기를 취소하면 Cloud Storage 버킷에 기록되는 RDB 파일이 삭제되고 BGSAVE 프로세스에 사용되는 메모리가 확보됩니다.
  • 내보내기는 Cloud Console 사용 시 추가 권한이 없는 동일한 이름의 기존 파일을 덮어쓸 수 있습니다. gcloud를 사용하여 기존 파일을 내보내려면 사용자 계정에 storage.objects.delete 권한이 있어야 합니다.

높은 쓰기 부하에서 내보내기

쓰기 부하가 높은 기간 동안 내보내기를 실행하면 인스턴스 메모리 사용량이 최대 2배 증가하여 내보내기 작업이 실패할 수 있습니다. 낮은 쓰기 기간 동안 내보내기 작업을 수행해야 합니다. 인스턴스에 저장된 Redis 데이터 양을 모니터링하려면 대시보드를 만들어 메모리 사용량을 모니터링하고 Google Cloud의 작업 제품군으로 인스턴스 메모리 사용량 측정항목을 모니터링하면 됩니다.

Memorystore for Redis 내보내기는 Redis의 BGSAVE 기능을 사용하여 인스턴스의 데이터 스냅샷을 만듭니다. BGSAVE를 실행할 때 Redis는 스냅샷을 만들 새 하위 프로세스를 포크합니다. Redis는 이 프로세스 중에 copy-on-write를 사용합니다.

즉, 초기 포크는 최소 추가 메모리를 할당하지만 Redis 서버 쓰기 트래픽에 의해 변경된 모든 페이지는 중복됩니다. 따라서 대량의 쓰기가 발생하는 기간 동안 최악의 경우 Redis의 메모리 공간이 두 배가 되어 내보내기 작업이 실패합니다.

BGSAVE 작업 중 내보내기

BGSAVE 작업이 실행 중일 때는 내보낼 수 없습니다. 표준 등급의 Redis용 Memorystore 인스턴스는 전체 재동기화 작업 또는 '전체 동기화'를 실행하여 기본 및 복제본을 동기화합니다. 전체 재동기화는 BGSAVE 명령어를 사용하므로 Memorystorestore가 내보내기를 수행하지 못하게 합니다.

BGSAVE 작업이 진행 중인지 확인하려면 측정항목 탐색기로 redis.googleapis.com/persistence/rdb/bgsave_in_progress API 엔드포인트를 확인하세요.

측정항목 탐색기를 사용하여 모니터링 리소스의 측정항목을 보려면 다음을 수행합니다.

  1. Google Cloud Console에서 Monitoring으로 이동하거나 다음 버튼을 사용합니다.
    Monitoring으로 이동
  2. Monitoring 탐색창에서 측정항목 탐색기를 클릭합니다.
  3. 모니터링 리소스 이름을 리소스 유형 및 측정항목 찾기 텍스트 상자에 입력합니다.

또는 자체 명령줄 API 도구를 사용할 수 있습니다.

가져오기 및 내보내기에 필요한 권한

사용자는 RDB 파일을 가져오거나 내보낼 수 있도록 충분한 IAM 권한을 구성해야 합니다. 가장 간단한 권한 설정은 Cloud Memorystore Redis 관리자스토리지 관리자 IAM 역할을 사용자 계정에 적용하는 것입니다. 하지만 이 설정은 액세스해서는 안 되는 리소스를 생성, 수정 또는 삭제할 수 있는 권한을 주기 때문에 일부 사용자 계정에 적합하지 않을 수 있습니다. 최소한의 권한 설정에 대한 안내는 가져오기/내보내기에 제한된 권한 부여를 참조하세요.

가져오기 및 내보내기 기간

가져오기 또는 내보내기 기간은 인스턴스 크기와 인스턴스에 설정된 데이터 세트 크기에 따라 다릅니다. 크기에 따라 가져오기 및 내보내기가 몇 분에서 몇 시간까지 걸릴 수 있습니다.

예를 들어 사용된 메모리가 8GB인 10GB 인스턴스를 가져오거나 내보내는 경우 작업이 5분 정도 걸릴 수 있습니다. 사용된 메모리가 100GB인 120GB 인스턴스를 가져오거나 내보내는 경우 작업이 1시간 걸릴 수 있습니다.

가져오기 또는 내보내기 중지

가져오기 또는 내보내기를 중지하려면 다음 페이지를 참조하세요.

작업 진행 상황 모니터링

가져오기 및 내보내기 중에 예상 완료 시간을 확인할 수 없습니다. 인스턴스 세부정보 페이지를 확인하여 작업이 진행 중인지 확인할 수 있습니다. 인스턴스 세부정보 페이지를 보려면 Memorystore for Redis 인스턴스 목록 페이지에서 인스턴스 ID를 클릭합니다.

다음 명령어를 실행하여 가져오기 작업의 진행 상황을 모니터링할 수도 있습니다.

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

여기에서

  • [INSTANCE_ID]는 Memorystore for Redis 인스턴스의 ID입니다.
  • [REGION]은 인스턴스가 있는 리전입니다.

이 명령어는 state: IMPORTING 또는 state: READY를 설명 필드 중 하나로 출력합니다.

지원되지 않는 Cloud Storage 버킷

요청자 지불 Cloud Storage 버킷은 Memorystore 가져오기 및 내보내기에 지원되지 않습니다.

Cloud Storage 버킷 보안

Cloud Storage 버킷에 포함된 Redis RDB 백업에 대한 무단 액세스를 방지하기 위해 적절한 제한사항이 있는지 확인해야 합니다. Cloud Storage 버킷을 보호하는 방법은 Cloud Storage 액세스 제어 옵션을 참조하세요.

내보내기를 완료하기에 충분한 메모리 확인

내보내기에서 메모리 부족을 방지하려면 내보내기 프로세스 중에 인스턴스에 사용 가능한 메모리가 50% 있어야 합니다. 쓰기 부하에 따라 항상 필요한 것은 아니지만, 50%의 여유 메모리가 있으면 내보내기 프로세스 중에 여러 페이지를 터치하는 경우 copy-on-write 오버헤드를 수용하기에 충분한 공간이 확보됩니다.

인스턴스의 현재 메모리 사용량을 파악하려면 메모리 사용량이 맞춤설정 가능한 임곗값에 도달하면 알림을 받도록 Google Cloud 운영 제품군 알림을 설정합니다. 또한 Google Cloud 운영 제품군을 사용하여 메모리 모니터링 대시보드를 설정해야 합니다. 이러한 측정값을 통해 인스턴스의 메모리 사용량 패턴을 파악할 수 있습니다. 메모리 사용량 패턴을 파악하면 일정한 간격으로 내보낼 때 인스턴스 크기를 올바르게 조정할 수 있습니다.

다음 단계