이 페이지에서는 Redis용 Memorystore 클러스터 백업 작업을 실행하는 방법을 설명합니다. 이 페이지를 읽기 전에 백업을 숙지해야 합니다.
시작하기 전에
개발자 또는 개발자가 사용 중인 사용자 계정에 수행해야 하는 작업에 필요한 권한이 있는지 확인합니다.
Redis 관리자 및 Redis 편집자 역할은 모든 백업 작업을 실행할 수 있습니다. Redis 뷰어 역할은 백업을 보고 내보낼 수 있습니다.
주문형 백업 시작
다음 명령어를 사용하여 주문형 백업을 실행합니다.
gcloud
gcloud redis clusters create-backup INSTANCE_ID \ --backup-id=BACKUP_ID \ --ttl=TTL_PERIOD \ --project=PROJECT_ID \ --region=REGION
다음을 바꿉니다.
- INSTANCE_ID는 Memorystore for Redis Cluster 인스턴스의 ID입니다.
- BACKUP_ID은 백업의 ID입니다(예:
december-2024-backup
). - TTL_PERIOD은 백업의 TTL (수명)을 지정합니다.
TTL 한도에 도달하면 백업이 자동으로 삭제됩니다.
일수로 설정됩니다. 예를 들면
14d
입니다. 최솟값은 1일입니다. 지정하지 않으면 기본값은 100년입니다. - PROJECT_ID는 프로젝트 ID입니다.
- REGION은 클러스터가 있는 리전입니다 (예:
us-east1
).
이 명령어는 다음 형식의 작업 이름을 반환합니다.
projects/PROJECT_ID/locations/REGION/operations/operation-UID
gcloud redis operations describe
명령어를 사용하여 작업 상태를 확인할 수 있습니다.
gcloud redis operations describe projects/PROJECT_ID/locations/REGION/operations/operation-UID
gcloud redis operations list
명령어를 사용하여 프로젝트와 리전의 모든 작업을 나열할 수도 있습니다.
자동 백업 일정 구성
새 클러스터를 만들 때 일일 백업 일정을 구성하거나 기존 클러스터에서 일일 백업 일정을 사용 설정할 수 있습니다.
자동 백업 일정이 사용 설정된 클러스터 만들기
다음 예시에서는 새 클러스터를 만들 때 일일 백업 일정을 설정하는 방법을 보여줍니다. 클러스터를 만들 때 사용할 수 있는 추가 옵션은 인스턴스 만들기를 참고하세요.
gcloud
gcloud redis clusters create INSTANCE_ID \ --automated-backup-mode=ENABLED \ --automated-backup-start-time=START_TIME \ --automated-backup-ttl=RETENTION_POLICY
다음을 바꿉니다.
- INSTANCE_ID는 만들려는 Memorystore for Redis Cluster 인스턴스의 ID입니다.
- START_TIME A는 백업을 시작할 시점을 지정합니다. UTC 시간의 24시간 주기에서
HH:00
형식으로 시간을 지정합니다. 예를 들면23:00
입니다. RETENTION_POLICY은 각 백업을 보관할 일수를 지정합니다. 일 수로 설정합니다(예:
7d
). 최댓값은 365일이고 기본값은 35일입니다.클러스터가 삭제된 후에도 백업은 최대 365일의 보관 기간 동안 유지됩니다. 보관 기간이 만료되기 전에 백업을 삭제하려면 백업을 수동으로 삭제해야 합니다.
기존 클러스터에서 예약된 백업 사용 설정
gcloud
gcloud redis clusters update INSTANCE_ID \ --automated-backup-mode=enabled \ --automated-backup-start-time=START_TIME \ --automated-backup-ttl=RETENTION_POLICY
다음을 바꿉니다.
- INSTANCE_ID는 업데이트하려는 Memorystore for Redis Cluster 인스턴스의 ID입니다.
START_TIME 백업을 시작할 시간을 지정하는 타임스탬프입니다. 타임스탬프는 시간 수준이어야 하며 백업이 시작되는 1시간 기간을 지정해야 합니다(예:
2024-01-01T01:00:00Z
).RETENTION_POLICY은 각 백업을 보관할 일수를 지정합니다. 일 수로 설정합니다(예:
7d
).클러스터가 삭제된 후에도 백업은 보관 기간 동안 유지됩니다. 보관 기간이 만료되기 전에 백업을 삭제하려면 백업을 수동으로 삭제해야 합니다.
예약된 백업 사용 중지
다음 명령어를 사용하여 클러스터에서 예약된 백업을 사용 중지합니다.
gcloud
gcloud redis clusters update INSTANCE_ID \ --automated-backup-mode=disabled
INSTANCE_ID를 업데이트하려는 Memorystore for Redis Cluster 인스턴스의 ID로 바꿉니다.
백업과 클러스터 업데이트 작업 간 동시 실행
클러스터의 업데이트 작업과 유지보수 작업은 다음과 같은 상황에서 진행 중인 백업 작업을 취소할 수 있습니다.
- 클러스터를 업데이트하는 작업이 진행 중인 경우 백업 작업 요청이 거부됩니다.
- 진행 중인 백업 작업이 있으면 클러스터를 업데이트하는 수신 작업으로 인해 진행 중인 백업 작업이 취소되고 실패할 수 있습니다.
- 드물지만 유지보수 및 백업 작업이 동시에 진행되어 해당 인스턴스의 백업 작업이 건너뛰어질 수 있습니다.
백업 나열 및 설명
다음 섹션에서는 사용 가능한 백업에 관한 정보를 찾는 방법을 보여줍니다.
백업 컬렉션 나열
백업 컬렉션에는 클러스터의 모든 백업이 포함됩니다. 다음 명령어를 사용하여 지정된 프로젝트 및 리전의 백업 컬렉션을 나열합니다.
gcloud
gcloud redis clusters backup-collections list \ --project=PROJECT_ID \ --region=REGION
다음을 바꿉니다.
- REGION은 클러스터가 있는 리전입니다 (예:
us-east1
). - PROJECT_ID는 프로젝트 ID입니다.
이 명령어는 다음과 비슷한 백업 컬렉션 목록을 반환합니다.
BACKUP_COLLECTION_NAME CLUSTER_NAME CLUSTER_UID 6d9e1ff4-0f89-4c0a-a941-155dd4c3a213 projects/PROJECT_ID/locations/REGION/clusters/cluster1 6e539aed-ee7b-4eea-83ad-b4715b1ef160 dda2f551-b416-47ff-b1cf-684e00483dc9 projects/PROJECT_ID/locations/REGION/clusters/cluster2 57130520-636c-4ac7-ad7e-86f7cfb32838
백업 컬렉션의 백업 나열
다음 명령어를 사용하여 백업 컬렉션의 백업을 나열합니다.
gcloud
gcloud redis clusters backups list \ --backup-collection=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
다음을 바꿉니다.
- BACKUP_COLLECTION은 백업 컬렉션의 이름입니다.
- REGION은 클러스터가 있는 리전입니다(예:
us-east1
). - PROJECT_ID는 프로젝트 ID입니다.
이 명령어는 다음과 비슷한 백업 목록을 반환합니다.
BACKUP_NAME STATE CREATE_TIME EXPIRE_TIME backup-1 ACTIVE 2024-11-10T03:52:40.899882388Z 2124-11-10T03:53:02.856981736Z backup-2 ACTIVE 2024-11-11T03:48:22.137134936Z 2124-11-11T03:48:44.130735425Z
백업 설명
다음 명령어를 사용하여 특정 백업에 관한 정보를 가져옵니다.
gcloud
gcloud redis clusters backups describe BACKUP_NAME \ --backup-collections=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
다음을 바꿉니다.
- BACKUP_NAME은
2024-05-01-10-15-00
과 같은 백업의 이름입니다. - BACKUP_COLLECTION은 백업 컬렉션의 이름입니다.
- REGION은 클러스터가 있는 리전입니다(예:
us-east1
). - PROJECT_ID는 프로젝트 ID입니다.
이 명령어는 다음과 비슷한 백업 정보를 반환합니다.
backupFiles: - createTime: '2024-11-10T03:52:55.539Z' fileName: 3d2774dab822137c5bac9386f3fa69ee4c73b928.rdb sizeBytes: '694879680' - createTime: '2024-11-10T03:52:54.742Z' fileName: 7f5d99faaefc63ed8292a71da2552db3b06cdcff.rdb sizeBytes: '694925906' - createTime: '2024-11-10T03:52:54.972Z' fileName: 0aac1092a3fb81515aefb6b2421f31eb346c3961.rdb sizeBytes: '694784169' cluster: projects/PROJECT_ID/locations/us-east1/clusters/cluster1 clusterUid: 57130520-636c-4ac7-ad7e-86f7cfb32838 createTime: '2024-11-10T03:52:40.899882388Z' expireTime: '2124-11-10T03:53:02.856981736Z' name: projects/PROJECT_ID/locations/us-east1/backupCollections/dda2f551-b416-47ff-b1cf-684e00483dc9/backups/december-2024-backup nodeType: REDIS_HIGHMEM_MEDIUM shardCount: 3 state: ACTIVE totalSizeBytes: '2084589755'
백업 삭제
다음 명령어를 사용하여 백업을 삭제합니다.
gcloud
gcloud redis clusters backups delete BACKUP_NAME \ --backup-collection=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
다음을 바꿉니다.
- BACKUP_NAME은
2024-05-01-10-15-00
과 같은 백업의 이름입니다. - BACKUP_COLLECTION은 백업 컬렉션의 이름입니다.
- REGION은 클러스터가 있는 리전입니다(예:
us-east1
). - PROJECT_ID는 프로젝트 ID입니다.
스토리지 버킷으로 백업 내보내기
백업을 Cloud Storage 버킷으로 내보낼 수 있습니다. 대상 버킷은 리전 버킷이어야 하며 백업과 동일한 리전에 있어야 합니다. Memorystore for Redis Cluster에는 Cloud Storage 버킷에 액세스하고 버킷 내에 폴더와 객체를 만들 권한이 있어야 합니다.
다음 단계에서는 백업을 내보내는 방법을 보여줍니다.
Memorystore for Redis 클러스터에 대상 Cloud Storage 버킷에 액세스할 수 있는 권한이 있어야 합니다. Memorystore for Redis Cluster 서비스 에이전트에 Cloud Storage 리소스에 대한 액세스 권한을 부여합니다.
Memorystore for Redis 클러스터 서비스 에이전트는 다음 이름 지정 형식을 사용합니다.
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
PROJECT_NUMBER를 클러스터 또는 백업이 있는 프로젝트의 프로젝트 번호로 바꿉니다.
서비스 에이전트에
storage.buckets.get
,storage.objects.create
,storage.objects.delete
,storage.folders.create
권한을 부여하는 역할을 부여합니다. 예를 들어 다음 명령어는 지정된 버킷에 대한Storage Admin
역할을 Redis용 Memorystore 클러스터 서비스 에이전트에 부여합니다.gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \ --role=roles/storage.admin
다음을 바꿉니다.
- BUCKET_NAME은 대상 버킷의 이름입니다.
- PROJECT_NUMBER은 서비스 에이전트 이름에 사용된 프로젝트 번호입니다.
gcloud redis clusters backups export
명령어를 사용하여 백업을 Cloud Storage 버킷으로 내보냅니다.gcloud
gcloud redis clusters backups export BACKUP_NAME \ --region=REGION \ --backup-collection=BACKUP_COLLECTION \ --gcs-bucket=BUCKET
다음을 바꿉니다.
- BACKUP_NAME는 Memorystore for Redis Cluster 백업의 이름입니다.
- BACKUP_COLLECTION은 백업 컬렉션의 이름입니다.
- REGION은 백업 컬렉션이 있는 리전입니다(예:
us-east1
). - BUCKET_NAME은
gs://
이 접두사로 없는 Cloud Storage 버킷입니다.
버킷은 리전 버킷이어야 하며 백업과 동일한 리전에 있어야 합니다. Memorystore for Redis Cluster에는 Cloud Storage 버킷에 액세스하고 버킷 내에 폴더와 객체를 만들 권한이 있어야 합니다.
백업에서 데이터 복원
백업에서 데이터를 복원하려면 동일한 프로젝트의 관리형 백업에서 새 클러스터를 시드하거나 스토리지 버킷의 RDB 파일에서 새 클러스터를 시드하면 됩니다. RDB 파일에서 클러스터를 시드하려면 Redis용 Memorystore 클러스터에 파일에 액세스할 권한이 있어야 합니다.
백업에서 새 클러스터 시드
다음 예에서는 백업에서 새 클러스터로 데이터를 가져오는 방법을 보여줍니다. 백업은 새 클러스터와 동일한 리전에 있어야 합니다.
클러스터를 만드는 주 구성원에게는 백업에 대한 redis.backups.get
권한이 있어야 합니다.
클러스터를 만들 때 사용할 수 있는 추가 옵션은 인스턴스 만들기를 참고하세요.
gcloud
gcloud redis clusters create INSTANCE_ID \ --import-managed-backup=BACKUP_NAME \ --region=REGION
다음을 바꿉니다.
- INSTANCE_ID는 만들려는 Memorystore for Redis Cluster 인스턴스의 ID입니다.
- BACKUP_NAME은 관리 백업의 이름입니다. 예를 들면
projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID
입니다. - REGION은 클러스터가 있는 리전입니다(예:
us-east1
).
스토리지 버킷의 RDB 파일에서 새 클러스터 시드
다음 예에서는 Cloud Storage 버킷의 RDB 파일에서 새 클러스터로 데이터를 가져오는 방법을 보여줍니다. 버킷은 새 클러스터와 동일한 리전의 리전 버킷이거나 한 리전이 동일한 이중 리전 버킷이어야 합니다.
Cloud Storage의 RDB 파일에서 클러스터를 시드하려면 Redis 클러스터용 Memorystore에 Cloud Storage 버킷 및 객체에 대한 액세스 권한을 부여한 후 생성 작업을 실행해야 합니다.
Memorystore for Redis Cluster에 Cloud Storage 객체에 액세스할 수 있는 권한이 있어야 합니다. Memorystore for Redis Cluster 서비스 에이전트에 Cloud Storage 리소스에 대한 액세스 권한을 부여합니다.
Memorystore for Redis 클러스터 서비스 에이전트는 다음 이름 지정 형식을 사용합니다.
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
PROJECT_NUMBER를 새 클러스터를 만들 프로젝트의 프로젝트 번호로 바꿉니다.
서비스 에이전트에
storage.buckets.get
및storage.objects.get
권한을 부여하는 역할을 부여합니다. 예를 들어 다음 명령어는 Cloud Storage 버킷에Storage Admin
역할을 부여합니다.gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com --role=roles/storage.admin
다음을 바꿉니다.
- BUCKET_NAME은 RDB 파일이 있는 버킷의 이름입니다.
- PROJECT_NUMBER은 서비스 에이전트 이름에 사용된 프로젝트 번호입니다.
다음 예에서는 Cloud Storage 버킷의 RDB 파일에서 새 클러스터로 데이터를 가져오는 방법을 보여줍니다. 클러스터를 만들 때 사용할 수 있는 옵션에 대한 자세한 내용은 인스턴스 만들기를 참고하세요.
gcloud
gcloud redis clusters create INSTANCE_ID \ --import-gcs-object-uris=URI \ --region=REGION
다음을 바꿉니다.
- INSTANCE_ID는 만들려는 Memorystore for Redis Cluster 인스턴스의 ID입니다.
- URI는 쉼표 (
,
)로 구분된 하나 이상의 Cloud Storage URI입니다. 예를 들면gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb
입니다. - REGION은 클러스터가 있는 리전입니다(예:
us-east1
).
Cloud Monitoring 측정항목
Cloud Monitoring 측정항목을 사용하여 최근 백업 및 가져오기 작업을 모니터링할 수 있습니다. Memorystore for Redis 클러스터 백업에 사용할 수 있는 측정항목 목록은 백업 측정항목을 참고하세요.