このページでは、単一リージョンで Cassandra を復元する方法について説明します。
単一リージョンのデプロイでは、Apigee ハイブリッドは単一のデータセンターまたはリージョンにデプロイされます。デプロイに複数の Apigee 組織がある場合、復元プロセスではすべての組織のデータが復元されます。複数組織の設定で、特定の組織を復元することはできません。
リージョンをバックアップから復元する
構成では、Cassandra のバックアップを Cloud Storage とリモート サーバーのいずれかに配置できます。いずれの場合も、復元は次の手順を実施します。
- ハイブリッド バージョンを確認します。apigeectl version 
- 復元先の Kubernetes クラスタに以前の Apigee ハイブリッド インストールが存在しないことを確認します。復元先が既存のクラスタの場合は、次のコマンドを使用して既存の Apigee ハイブリッド インストールを削除します。apigeectl delete -f overrides.yamlkubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.apigeectl delete --all -f overrides.yaml
- overrides.yamlファイルを開き、- restoreプロパティを目的の値に設定します。- Cloud Storage- パラメータ- namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE" - 例- namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ... - 各要素の意味は次のとおりです。 - プロパティ - 説明 - namespace- YOUR_RESTORE_NAMESPACE - 復元用の Namespace。元のクラスタの Namespace を使用します。 - cassandra:hostNetwork- hostNetworkは必須で、必ず- falseに設定する必要があります。- restore:enabled- デフォルトでは、復元は無効になっています。このプロパティを - trueに設定する必要があります。- restore:serviceAccountPath- SA_JSON_FILE_PATH - バックアップ用に作成したサービス アカウントへのファイル システム上のパス。 - restore:dbStorageBucket- CLOUD_STORAGE_BUCKET_PATH - バックアップ データが保存されている Cloud Storage バケットのパス。形式は - gs://BUCKET_NAMEです。必ず- gs://を付ける必要があります。- restore:cloudProvider- GCP- cloudProvider: "GCP"プロパティは必須です。- restore:snapshotTimestamp- TIMESTAMP - 復元するバックアップ スナップショットのタイムスタンプ。使用できるタイムスタンプを確認するには、 - dbStorageBucketに移動し、バケット内にあるファイルを確認します。各ファイル名にはタイムスタンプの値が含まれます。例:- backup_20210203213003_apigee-cassandra-default-0.tgz- ここで、20210203213003 は、その時点で作成されたバックアップを復元する場合に使用する - snapshotTimestampの値です。- backup:enabled- バックアップはデフォルトでは無効になっています。このプロパティを - trueに設定する必要があります。- backup:serviceAccountPath- SA_JSON_FILE_PATH - ./tools/create-service-accountの実行時にダウンロードされたサービス アカウント JSON ファイルへのファイル システム上のパス。- backup:dbStorageBucket- CLOUD_STORAGE_BUCKET_PATH - Cloud Storage バケットのパス。形式は - gs://BUCKET_NAMEです。必ず- gs://を付ける必要があります。- backup:cloudProvider- GCP- cloudProvider: "GCP"プロパティは必須です。- backup:schedule- SCHEDULE - バックアップの開始時刻。標準の crontab 構文で指定します。デフォルト: - 0 2 * * *- Cloud Storage 以外- パラメータ- namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"- 例- namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...- 各要素の意味は次のとおりです。 - プロパティ - 説明 - namespace- YOUR_RESTORE_NAMESPACE - 復元用の Namespace。元のクラスタの Namespace を使用します。 - cassandra:hostNetwork- hostNetworkは必須で、必ず- falseに設定する必要があります。- restore:enabled- デフォルトでは、復元は無効になっています。このプロパティを - trueに設定する必要があります。- restore:keyFile- PATH_TO_PRIVATE_KEY_FILE - ローカル ファイル システム上の SSH 秘密鍵ファイル(SSH 認証鍵ペアを作成した手順で - ssh_keyと名付けています)へのパス。- restore:server- BACKUP_SERVER_IP - バックアップ サーバーの IP アドレス。 - restore:storageDirectory- BACKUP_DIRECTORY - バックアップ サーバー上のバックアップ ディレクトリの名前。これは、 - home/apigee内のディレクトリにする必要があります(バックアップ ディレクトリを作成した手順でバックアップ ディレクトリに- cassandra_backupという名前を付けています)。- restore:cloudProvider- HYBRID- cloudProvider: "HYBRID"プロパティは必須です。- restore:snapshotTimestamp- TIMESTAMP - 復元するバックアップ スナップショットのタイムスタンプ。使用できるタイムスタンプを確認するには、 - dbStorageBucketに移動し、バケット内にあるファイルを確認します。各ファイル名にはタイムスタンプの値が含まれます。例:- backup_20210203213003_apigee-cassandra-default-0.tgz- ここで、20210203213003 は、その時点で作成されたバックアップを復元する場合に使用する - snapshotTimestampの値です。- backup:enabled- バックアップはデフォルトでは無効になっています。このプロパティを - trueに設定する必要があります。- backup:keyFile- PATH_TO_PRIVATE_KEY_FILE - ローカル ファイル システム上の SSH 秘密鍵ファイル(SSH 認証鍵ペアを作成した手順で - ssh_keyと名付けています)へのパス。- backup:server- BACKUP_SERVER_IP - バックアップ サーバーの IP アドレス。 - backup:storageDirectory- BACKUP_DIRECTORY - バックアップ サーバー上のバックアップ ディレクトリの名前。これは、 - home/apigee内のディレクトリにする必要があります(バックアップ ディレクトリを作成した手順でバックアップ ディレクトリに- cassandra_backupという名前を付けています)。- backup:cloudProvider- HYBRID- cloudProvider: "HYBRID"プロパティは必須です。- backup:schedule- SCHEDULE - バックアップの開始時刻。標準の crontab 構文で指定します。デフォルト: - 0 2 * * *
- 新しいハイブリッド ランタイム デプロイを作成します。これにより、新しい Cassandra クラスタが作成され、クラスタへのバックアップ データの復元が開始します。${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
- 復元ジョブの進行状況を確認し、apigeedsと他のすべての Pod が稼働していることを確認します。- apigeedsを確認するには、次の手順を実施します。- kubectl get apigeeds -n apigee 
- 他のすべての Pod を確認するには、次の手順を実施します。kubectl get pods -n apigee 
 
復元が正常に完了し、ランタイム コンポーネントが正常であることを確認したら、クラスタにバックアップを構成することをおすすめします。
- overrides-restore.yamlファイルから- restore構成を削除します。
- backup構成を- overrides-restore.yamlファイルに追加します。
- 以下のコマンドを使用して backup構成を適用します。./apigeectl apply -f ../overrides-restore.yaml