Redis 및 Valkey 워크로드를 Memorystore for Valkey로 마이그레이션

Memorystore는 자체 관리형 Redis 및 Valkey 워크로드를 Memorystore for Valkey로 자동 이전하는 기능을 지원합니다. 이 기능을 사용하면 자체 인프라를 관리하는 운영 부담에서 원활하게 전환할 수 있습니다. Memorystore for Valkey의 완전 관리형 환경으로 이전하면 수동 OS 패치, 복제 설정, 맞춤 백업 스크립트가 필요하지 않으며 자동 장애 조치 및 VPC 네이티브 보안 기능과 거의 제로에 가까운 다운타임으로 수백 개의 노드로 확장할 수 있는 기능을 얻을 수 있습니다.

자체 관리 워크로드를 Memorystore for Valkey로 이전하면 운영 부담을 없애고 데이터베이스 인프라를 현대화하는 다음과 같은 이점을 누릴 수 있습니다.

  • 운영 오버헤드 제거: OS 패치, 인프라 모니터링, 백업 스크립트, 복제 관리와 같은 수동적이고 시간이 많이 소요되는 작업을 Google Cloud에 오프로드합니다. 따라서 데이터베이스 유지보수 대신 애플리케이션 개발에 집중할 수 있습니다.
  • 엔터프라이즈급 고가용성 달성: 완전 관리형 99.99% SLA를 활용하세요. Memorystore for Valkey는 자동 장애 조치와 내장 백업 및 복원 기능을 제공합니다. 이렇게 하면 예기치 않은 노드 장애로부터 애플리케이션을 보호하고 신속한 재해 복구를 보장할 수 있습니다.
  • 다운타임이 거의 없이 확장: 예측할 수 없는 트래픽 급증에 맞춰 인스턴스를 동적으로 확장하거나 축소합니다. 애플리케이션을 오프라인으로 전환하지 않고도 최대 250개의 샤드로 구성된 수백 개의 노드로 원활하게 확장할 수 있습니다.
  • 보안 강화: 복잡하고 수동으로 구성된 네트워크 규칙을 안전한 내장 VPC 연결 및 세분화된 Identity and Access Management (IAM) 기반 액세스 제어로 대체합니다. 이렇게 하면Google Cloud의 엄격한 보안 경계가 데이터를 보호합니다.
  • 인스턴스 통합 및 업그레이드: 분산되고 격리된 자체 관리 인스턴스를 Memorystore for Valkey의 단일 고성능 배포로 손쉽게 병합합니다. 이 마이그레이션의 일환으로 오래된 Redis 또는 Valkey 버전을 지원되는 최신 버전으로 자동 업그레이드할 수도 있습니다.
  • 고급 실시간 분석 및 생성형 AI 활용: 캐싱 및 세션 관리를 위해 마이크로초 지연 시간을 제공하는 최적화된 환경으로 전환합니다. 생성형 AI (GenAI) 애플리케이션을 지원하기 위해 벡터 검색과 같은 고급 기능에 즉시 관리형 액세스 권한을 부여받습니다.

버전 지원

이 섹션의 표에는 소스 Redis 및 Valkey 자체 관리형 인스턴스, Memorystore for Valkey의 타겟 인스턴스에 관한 다음 정보가 나열되어 있습니다.

  • 이전에서 지원하는 소스 인스턴스의 유형 및 버전
  • 워크로드를 마이그레이션할 수 있는 타겟 Memorystore for Valkey 인스턴스의 버전
소스 인스턴스 유형 소스 인스턴스 버전 타겟 인스턴스 버전
Redis 3.2.x~7.2.x Valkey 7.2, 8.0, 9.0
Valkey 7.x, 8.x, 9.x Valkey 7.2, 8.0, 9.0

시작하기 전에

워크로드 마이그레이션을 시작하기 전에 이 섹션의 기본 요건을 완료하세요.

Google Cloud 콘솔, Google Cloud CLI, API 사용

Google Cloud 콘솔, gcloud CLI, API를 사용하려면 다음을 실행하세요.

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  2. 프로젝트에 결제가 사용 설정되어 있는지 확인하세요. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
  3. Google Cloud CLI를 설치하고 초기화합니다.

    참고: gcloud CLI를 이전에 설치했으면 gcloud components update를 실행하여 최신 버전이 설치되어 있는지 확인합니다. Memorystore for Valkey gcloud CLI 명령어에 액세스하려면 최소한 gcloud CLI 버전 489.0.0 이상이 필요합니다.

  4. Memorystore for Valkey API를 사용 설정합니다.
    Memorystore for Valkey API
  5. Network Connectivity API를 사용 설정합니다.
    Network Connectivity API
  6. Service Consumer Management API를 사용 설정합니다.
    Service Consumer Management API
  7. Compute Engine API를 사용 설정합니다.
    Compute Engine API

역할 및 권한 할당

자체 관리 Redis 및 Valkey 인스턴스의 워크로드를 Memorystore for Valkey로 마이그레이션하는 모든 작업을 수행하려면 관리자에게Google Cloud 프로젝트에 대한 Memorystore 관리자 (roles/memorystore.admin) IAM 역할을 부여해 달라고 요청하세요.

네트워크 연결을 만들고 보려면 관리자에게 프로젝트에 대한 Compute 네트워크 관리자 (roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요.

워크로드를 마이그레이션하는 워크플로

자체 관리형 Redis 및 Valkey 인스턴스의 워크로드를 Memorystore for Valkey로 마이그레이션하려면 다음 작업을 실행하세요.

  1. 소스 인스턴스 준비: 보안 연결과 Memorystore for Valkey로의 아웃바운드 복제를 허용하도록 자체 관리 Redis 또는 Valkey 인스턴스를 구성합니다.
  2. 대상 인스턴스 준비: 샤드 수, 노드 유형 등 필요한 인스턴스 사양을 결정합니다.
  3. 타겟 인스턴스 만들기: 이전된 데이터를 수신하는 Memorystore for Valkey 인스턴스를 프로비저닝합니다.
  4. 네트워크 연결 구성: 네트워크 연결을 설정합니다. 이 연결을 사용하면 프로듀서 VPC 네트워크의 타겟 인스턴스가 소비자 VPC 네트워크에서 실행되는 소스 인스턴스로의 연결을 시작할 수 있습니다. 따라서 복제가 설정됩니다.
  5. 마이그레이션 시작: 동기화 프로세스를 시작합니다. 대상 인스턴스가 소스 인스턴스에 자동으로 연결되고 읽기 복제본으로 데이터를 지속적으로 복제하기 시작합니다.
  6. 마이그레이션 모니터링: 마이그레이션이 문제없이 진행되고 마이그레이션 상태가 HEALTHY인지 확인합니다.
  7. 마이그레이션 완료: 애플리케이션 트래픽을 대상 인스턴스로 전환합니다.

소스 인스턴스 준비

워크로드를 대상 Memorystore for Valkey 인스턴스로 마이그레이션할 수 있도록 자체 관리 Redis 또는 Valkey 인스턴스를 준비해야 합니다.

타겟 인스턴스의 노드에서 소스 인스턴스의 노드로 연결을 허용하려면 다음을 수행하세요.

  • 소스 노드에서 protected-mode가 사용 설정된 경우 비활성화합니다.
  • 명시적 bind 지시어로 소스 노드를 구성한 경우 대상 노드에서 들어오는 연결을 허용하도록 노드를 업데이트합니다. 타겟 노드는 네트워크 연결의 서브넷에 있는 IP 주소에서 연결을 시작합니다.
  • 타겟 노드에서 수신되는 연결을 차단할 수 있는 방화벽 규칙을 업데이트합니다.
  • 소스 노드에서 인증 및 전송 계층 보안 (TLS)이 사용 설정된 경우 이를 비활성화합니다.

대상 인스턴스의 노드에서 소스 인스턴스의 노드로 복제를 설정하려면 다음을 실행하세요.

  • 마이그레이션이나 데이터 수정에 필요한 Valkey 또는 Redis 명령어 (예: PING, PSYNC, HSET)의 이름을 바꾸지 마세요.
  • 소스 인스턴스에 타겟 인스턴스의 노드에서 발생하는 추가 복제 로드를 관리할 수 있는 충분한 메모리와 CPU 용량이 있는지 확인합니다.

타겟 인스턴스 준비

원활한 복제 프로세스를 위해 소스 인스턴스에서 수신되는 워크로드를 처리할 수 있도록 타겟 Memorystore for Valkey 인스턴스의 크기를 적절하게 조정해야 합니다. 이렇게 하려면 타겟 인스턴스의 정확한 사양을 확인해야 합니다. 이러한 사양에는 소스 인스턴스와의 호환성, 클러스터 모드 유형, 데이터베이스 수, 샤드 수, 버전, 타겟 인스턴스의 노드 유형이 포함됩니다.

타겟 인스턴스를 준비하려면 다음 가이드라인을 따르세요.

  • 소스 인스턴스와의 호환성: 소스 및 타겟 인스턴스가 동일한 프로젝트 및 리전에 있어야 합니다.
  • 클러스터 모드: 대상 인스턴스의 클러스터 모드가 소스 인스턴스의 클러스터 모드와 일치해야 합니다. 소스 인스턴스가 클러스터 모드 사용 중지인 경우 대상 인스턴스도 클러스터 모드 사용 중지여야 합니다. 그렇지 않으면 대상 인스턴스에서 클러스터 모드가 사용 설정되어 있어야 합니다.
  • 데이터베이스 수: 대상 인스턴스가 클러스터 모드 사용 중지인 경우 인스턴스의 논리 데이터베이스 수가 소스 인스턴스의 데이터베이스 수와 같거나 커야 합니다.
  • 샤드 수: 대상 인스턴스가 클러스터 모드 사용 설정인 경우 대상 인스턴스의 샤드 수가 소스 인스턴스의 샤드 수와 동일해야 합니다. 하지만 소스 및 타겟 인스턴스의 복제본 수는 다를 수 있습니다.
  • 인스턴스 버전: 대상 인스턴스 버전은 소스 인스턴스 버전과 호환되어야 합니다. 자세한 내용은 버전 지원을 참고하세요.
  • 유지보수 버전: 대상 인스턴스의 유지보수 버전은 MEMORYSTORE_20260313_01_00 이상이어야 합니다. 자세한 내용은 유지보수 정보를 참고하세요.
  • 노드 유형: 타겟 인스턴스의 노드 유형은 소스 인스턴스의 노드에서 수신하는 데이터를 처리할 수 있을 만큼 커야 합니다. 타겟 인스턴스에 선택할 수 있는 노드 유형과 각 노드 유형의 해당 키스페이스 용량에 관한 자세한 내용은 노드 유형 사양을 참고하세요.

대상 인스턴스 만들기

소스 인스턴스에서 마이그레이션된 데이터를 수신하기 위한 요구사항을 충족하는 대상 인스턴스가 없는 경우 인스턴스를 만들어야 합니다.

Google Cloud 콘솔 또는 gcloud CLI를 사용하여 이 인스턴스를 만들 수 있습니다.

콘솔

타겟 인스턴스를 만들려면 인스턴스 만들기를 참고하세요.

gcloud

타겟 인스턴스를 만들려면 인스턴스 만들기를 참고하세요.

네트워크 연결 구성

소스 인스턴스의 워크로드를 타겟 인스턴스로 마이그레이션하려면 타겟 인스턴스의 노드가 소스 인스턴스의 노드에 연결되어야 합니다. 따라서 소스 인스턴스의 데이터를 대상 인스턴스로 복제할 수 있습니다.

이 연결과 복제가 발생하려면 네트워크 연결을 사용해야 합니다. 타겟 노드에서의 연결 시도는 네트워크 연결에 연결된 소스 인스턴스의 VPC 네트워크에 있는 서브넷에서 시작됩니다.

다음 요구사항을 충족하는 네트워크 연결을 사용할 수 있습니다.

  • 타겟 인스턴스와 동일한 프로젝트 및 리전에 있어야 합니다.
  • 서브넷은 소스 인스턴스와 동일한 VPC 네트워크 내에 있어야 합니다.
  • 소스 인스턴스의 서브넷에는 최소 N+1개의 사용 가능한 IP 주소 (여기서 N은 대상 인스턴스의 노드 수)를 지원하는 적절한 IP CIDR 범위가 있어야 합니다. 예를 들어 타겟 인스턴스에 샤드가 3개 있고 복제본이 1개 있으면 노드가 6개 있습니다. 기본 인스턴스용 노드 3개와 복제본용 노드 3개입니다. 따라서 IP 주소가 7개 이상 필요합니다.
  • 이 범위는 Memorystore for Valkey용으로 예약되어 있으므로 서브넷 범위가 10.0.0.0/23와 중복될 수 없습니다.

네트워크 연결이 이러한 요구사항을 충족하지 않거나 네트워크 연결이 없는 경우 네트워크 연결을 만들어야 합니다.

마이그레이션 시작

마이그레이션을 시작하면 대상 인스턴스가 소스 인스턴스와 복제를 설정합니다. 소스 인스턴스에 기록된 데이터는 대상 인스턴스로 자동 복제됩니다. 대상 인스턴스가 소스 인스턴스의 읽기 복제본이 됩니다.

Google Cloud 콘솔 또는 gcloud CLI를 사용하여 마이그레이션을 시작할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Memorystore for Valkey 페이지로 이동합니다.

    Memorystore for Valkey

  2. 타겟 인스턴스의 ID를 클릭합니다.

  3. 인스턴스 한눈에 보기 페이지에서 이전 시작을 클릭합니다.

  4. 자체 관리형 Redis 및 Valkey 인스턴스 마이그레이션 창에서 다음을 수행합니다.

  5. 준비 탭에서 소스 인스턴스 필수 구성요소네트워크 연결 가이드라인에 관한 정보를 읽습니다. 그런 다음 계속을 클릭합니다.

  6. 연결 탭에서 다음을 수행합니다.

    1. 소스 인스턴스의 IP 주소포트를 입력합니다. 소스 인스턴스 준비하기에서 이 정보를 확인했습니다.
    2. 데이터를 이전하는 데 사용할 네트워크 연결을 선택합니다.
    3. 계속을 클릭합니다.
  7. 검토 탭에서 이전 프로세스와 관련된 정보를 검토합니다. 이 정보에는 타겟 인스턴스의 ID, 소스 인스턴스의 IP 주소와 포트, 네트워크 연결의 이름이 포함됩니다. 이 정보를 검토한 후 이전 시작을 클릭합니다.

  8. 인스턴스 한눈에 보기 페이지에서 마이그레이션 중 상태가 표시되는지 확인합니다.

대상 인스턴스의 노드가 소스 인스턴스의 노드에 연결할 수 없거나 소스 인스턴스의 데이터를 대상 인스턴스로 복제할 수 없는 경우 마이그레이션이 실패합니다.

이 경우 Memorystore for Valkey는 마이그레이션 프로세스를 시작하기 전의 상태로 대상 인스턴스를 롤백합니다. 타겟 인스턴스의 상태가 Ready로 되돌아가고 인스턴스에 다시 읽기 및 쓰기 기능이 모두 있습니다.

마이그레이션 실패 문제를 해결한 후 마이그레이션을 다시 시작할 수 있습니다.

gcloud

마이그레이션을 시작하려면 gcloud beta memorystore instances start-migration 명령어를 사용합니다.

gcloud beta memorystore instances start-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION \
--source-ip=SOURCE_IP_ADDRESS \
--source-port=SOURCE_PORT \
--network-attachment=projects/NETWORK_ATTACHMENT_PROJECT_ID/locations/NETWORK_ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT_ID

다음을 바꿉니다.

  • INSTANCE_ID: 대상 인스턴스의 ID입니다.
  • PROJECT_ID: 대상 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
  • REGION: 대상 인스턴스가 있는 리전입니다.
  • SOURCE_IP_ADDRESS: 소스 인스턴스의 IP 주소입니다. 이 IP 주소는 소스 인스턴스 준비에서 기록해 두었습니다.
  • SOURCE_PORT: 소스 인스턴스의 포트 번호입니다. 소스 인스턴스 준비하기에서 이 포트를 기록했습니다.
  • NETWORK_ATTACHMENT_PROJECT_ID: 데이터를 마이그레이션하는 데 사용할 네트워크 연결이 포함된Google Cloud 프로젝트의 ID 또는 프로젝트 번호
  • NETWORK_ATTACHMENT_REGION: 네트워크 연결이 있는 리전입니다.
  • NETWORK_ATTACHMENT_ID: 네트워크 연결의 ID입니다.

마이그레이션이 시작되었는지 확인하려면 gcloud memorystore instances describe 명령어를 사용합니다.

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

state 매개변수 옆에 MIGRATING 상태가 표시되는지 확인합니다.

대상 인스턴스의 노드가 소스 인스턴스의 노드에 연결할 수 없거나 소스 인스턴스의 데이터를 대상 인스턴스로 복제할 수 없는 경우 마이그레이션이 실패합니다.

이 경우 Memorystore for Valkey는 마이그레이션 프로세스를 시작하기 전의 상태로 대상 인스턴스를 롤백합니다. 타겟 인스턴스의 상태가 ACTIVE로 되돌아가고 인스턴스에 다시 읽기 및 쓰기 기능이 모두 있습니다.

마이그레이션 실패 문제를 해결한 후 마이그레이션을 다시 시작할 수 있습니다.

마이그레이션 모니터링

문제가 발생하지 않고 마이그레이션이 진행되도록 하려면 소스 및 타겟 인스턴스에서 마이그레이션을 모니터링하면 됩니다.

소스 인스턴스 모니터링

소스 인스턴스에서 클라이언트 출력 버퍼 사용량이 소스 노드에서 낮게 유지되는지 확인합니다. 지속적인 낮은 사용량은 지연이 최소화되고 소스 인스턴스에서 타겟 인스턴스로의 데이터 동기화가 성공했음을 나타냅니다.

타겟 인스턴스 모니터링

대상 인스턴스의 각 기본 노드에 대해 노드 이전 상태 측정항목의 상태가 정상인지 확인합니다. 이 상태는 소스 및 타겟 인스턴스의 샤드 간 복제 링크가 정상이고 활성 상태임을 나타냅니다.

Google Cloud 콘솔을 사용하여 대상 인스턴스의 마이그레이션을 모니터링할 수 있습니다. 타겟 인스턴스의 각 기본 노드에 대한 노드 이전 상태 측정항목의 값을 확인하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 측정항목 탐색기 페이지로 이동합니다.

    측정항목 탐색기

  2. 측정항목 메뉴에서 노드 이전 상태 측정항목을 선택합니다. 이렇게 하려면 Memorystore 인스턴스 노드 > 인스턴스 > 노드 마이그레이션 상태를 선택한 다음 적용을 클릭합니다.

  3. 필터 필드에서 다음 필터를 추가합니다.

    • instance_id = (equals) INSTANCE_ID
    • role = (equals) primary
    • status != (does not equal) HEALTHY

    INSTANCE_ID를 대상 인스턴스의 ID로 바꿉니다.

    이러한 필터를 추가하면 타겟 인스턴스의 기본 노드를 모니터링하여 비정상 노드가 있는지 확인할 수 있습니다. 노드가 표시되지 않으면 모든 노드가 정상 상태이므로 마이그레이션을 완료할 수 있습니다.

마이그레이션 완료

애플리케이션 트래픽을 타겟 인스턴스로 전환할 준비가 되면 마이그레이션을 완료합니다. 이렇게 하면 대상 인스턴스의 노드가 더 이상 소스 인스턴스의 노드와 복제되지 않습니다. 타겟 인스턴스는 모든 읽기 및 쓰기 작업을 허용합니다.

Google Cloud 콘솔 또는 gcloud CLI를 사용하여 마이그레이션을 완료할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Memorystore for Valkey 페이지로 이동합니다.

    Memorystore for Valkey

  2. 타겟 인스턴스의 ID를 클릭합니다.

  3. 인스턴스 한눈에 보기 페이지에서 이전 완료를 클릭합니다.

  4. 마이그레이션 완료 대화상자에서 다음을 수행합니다.

    1. 소스 인스턴스의 모든 데이터가 대상 인스턴스로 복제되도록 하려면 표준을 선택합니다.

    2. 인스턴스 ID 텍스트 필드에 타겟 인스턴스의 ID를 입력합니다.

    3. 이전 완료를 클릭합니다.

  5. 인스턴스 한눈에 보기 페이지에서 이전됨 상태가 표시되는지 확인합니다.

gcloud

마이그레이션을 완료하려면 gcloud beta memorystore instances finish-migration 명령어를 사용합니다.

gcloud beta memorystore instances finish-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION

다음을 바꿉니다.

  • INSTANCE_ID: 대상 인스턴스의 ID
  • PROJECT_ID: 대상 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
  • REGION: 대상 인스턴스가 있는 리전

마이그레이션이 성공적으로 완료되었는지 확인하려면 gcloud memorystore instances describe 명령어를 사용합니다.

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

state 매개변수 옆에 MIGRATED 상태가 표시되는지 확인합니다.