このページでは、Cloud Storage で Cassandra のバックアップをスケジュールする方法について説明します。この方法では、指定した Cloud Storage バケットにバックアップが保存されます。
Cassandra のバックアップをスケジュールするには、次の手順に従います。
- 次の
create-service-account
コマンドを実行して、標準のroles/storage.objectAdmin
ロールを持つ Google Cloud サービス アカウント(SA)を作成します。この SA ロールを使用すると、バックアップ データを Cloud Storage に書き込むことができます。$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
ディレクトリで次のコマンドを実行します。./tools/create-service-account --env non-prod --dir ./
このコマンドにより、非本番環境で使用する
apigee-non-prod
という名前の 1 つのサービス アカウントが作成され、ダウンロードしたキーファイルが./
ディレクトリに配置されます。Google Cloud サービス アカウントの詳細については、サービス アカウントの作成と管理をご覧ください。
create-service-account
コマンドにより、サービス アカウントの秘密鍵を含む JSON ファイルが保存されます。そのファイルは、コマンドを実行したのと同じディレクトリに保存されます。次のステップでは、このファイルへのパスが必要になります。- Cloud Storage バケットを作成する。 バケット用に、適当なデータ保持ポリシーを指定してください。15 日のデータ保持ポリシーを使用することをおすすめします。
overrides.yaml
ファイルを開きます。- 次の
cassandra.backup
プロパティを追加してバックアップを有効にします。すでに構成されているプロパティはどれも削除しないでください。パラメータ
cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_NAME schedule: BACKUP_SCHEDULE_CODE cloudProvider: "GCP" # For remote server backup set this to HYBRID (all caps) ...
例
... cassandra: storage: type: gcepd capacity: 50Gi gcepd: replicationType: regional-pd auth: default: password: "abc123" admin: password: "abc234" ddl: password: "abc345" dml: password: "abc456" nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-data backup: enabled: true serviceAccountPath: "my-cassandra-backup-sa.json" dbStorageBucket: "myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
ここで - 構成の変更を新しいクラスタに適用します。次に例を示します。
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
ここで、OVERRIDES_FILE は、先ほど編集したオーバーライド ファイルのパスです。
- バックアップ ジョブを確認します。次に例を示します。
kubectl get cronjob -n APIGEE_NAMESPACE
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
プロパティ | 説明 |
---|---|
backup:enabled |
バックアップはデフォルトでは無効になっています。このプロパティを true に設定する必要があります。 |
backup:serviceAccountPath |
SA_JSON_FILE_PATH
パスは、apigee-datastore チャート ディレクトリからの相対パスにする必要があります。例: |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_NAME バックアップ アーカイブの保存に使用する既存の Google Cloud Storage バケットの名前。バケットを作成する必要がある場合は、バケットの作成をご覧ください。 |
backup:cloudProvider |
Cloud Storage バックアップの場合は、プロパティを リモート サーバーのバックアップの場合は、プロパティを |
backup:schedule |
BACKUP_SCHEDULE_CODE バックアップの開始時刻。標準の crontab 構文で指定します。デフォルト: |
手動バックアップを開始する
Cassandra バックアップは、overrides.yaml
ファイルに設定された cron スケジュールに従って自動的に生成されます。
手動バックアップを開始するには、次のコマンドを使用します。
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME