このページでは、Memorystore for Redis Cluster のバックアップ オペレーションを実行する方法について説明します。このページをお読みいただく前に、バックアップを十分に理解しておく必要があります。
始める前に
ユーザーまたは使用しているユーザー アカウントに、操作を行うための必要な権限があることを確認します。
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 は、
december-2024-backup
などのバックアップの ID です。 - 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 Cluster には、宛先 Cloud Storage バケットにアクセスする権限が必要です。Memorystore for Redis Cluster サービス エージェントに Cloud Storage リソースへのアクセス権を付与します。
Memorystore for Redis Cluster サービス エージェントは、次の命名形式を使用します。
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
PROJECT_NUMBER は、クラスタまたはバックアップが配置されているプロジェクトのプロジェクト番号に置き換えます。
サービス エージェントに、
storage.buckets.get
、storage.objects.create
、storage.objects.delete
、storage.folders.create
の権限を付与するロールを付与します。たとえば、次のコマンドは、指定されたバケットに対するStorage Admin
ロールを Memorystore for Redis Cluster サービス エージェントに付与します。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 ファイルからクラスタをシードするには、Memorystore for Redis Cluster にファイルへのアクセス権が必要です。
バックアップから新しいクラスタをシードする
次の例は、バックアップから新しいクラスタにデータをインポートする方法を示しています。バックアップは、新しいクラスタと同じリージョンに存在する必要があります。クラスタを作成するプリンシパルには、バックアップに対する 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 ファイルから新しいクラスタにデータをインポートする方法を示しています。バケットは、新しいクラスタと同じリージョンのリージョン バケットか、1 つのリージョンが同じデュアルリージョン バケットである必要があります。
Cloud Storage の RDB ファイルからクラスタをシードするには、Memorystore for Redis クラスタに Cloud Storage バケットとオブジェクトへのアクセス権を付与してから、作成オペレーションを実行する必要があります。
Memorystore for Redis Cluster には、Cloud Storage オブジェクトにアクセスする権限が必要です。Memorystore for Redis Cluster サービス エージェントに Cloud Storage リソースへのアクセス権を付与します。
Memorystore for Redis Cluster サービス エージェントは、次の命名形式を使用します。
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 は、カンマ(
,
)で区切られた 1 つ以上の 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 Cluster バックアップで使用可能な指標のリストについては、バックアップ指標をご覧ください。