このページでは、Cloud Storage で Cassandra のバックアップをスケジュールする方法について説明します。この方法では、バックアップは指定した Cloud Storage バケットに保存されます。
Cassandra のバックアップをスケジュールするには、次の操作を行います。
- 次の
create-service-account
コマンドを実行して、標準のroles/storage.objectAdmin
ロールを持つ Google Cloud サービス アカウント(SA)を作成します。この SA ロールを使用すると、バックアップ データを Cloud Storage に書き込むことができます。hybrid-base-directory/hybrid-files
ディレクトリで次のコマンドを実行します:./tools/create-service-account --env non-prod --dir ./service-accounts
このコマンドは、非本番環境で使用するapigee-non-prod
という名前の 1 つのサービス アカウントを作成し、ダウンロードしたキーファイルを./service-accounts
ディレクトリに配置します。 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_PATH 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: "/Users/myhome/.ssh/my-cassandra-backup-sa.json" dbStorageBucket: "gs://myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
ここで - 構成の変更を新しいクラスタに適用します。例:
$APIGEECTL_HOME/apigeectl apply --datastore -f YOUR_OVERRIDES_FILE
ここで、YOUR_OVERRIDES_FILE は、先ほど編集したオーバーライド ファイルのパスです。
- バックアップ ジョブを確認します。例:
kubectl get cronjob -n apigee
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
プロパティ | 説明 |
---|---|
backup:enabled |
バックアップはデフォルトでは無効になっています。このプロパティを true に設定する必要があります。 |
backup:serviceAccountPath |
SA_JSON_FILE_PATH
相対ファイルパスを指定することもできます。このパスは、 |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH Cloud Storage バケットのパス。形式は |
backup:cloudProvider |
Cloud Storage バックアップの場合は、プロパティを リモート サーバーのバックアップの場合は、プロパティを |
backup:schedule |
BACKUP_SCHEDULE_CODE バックアップの開始時刻。標準の crontab 構文で指定します。デフォルト: |