AWS
AWS へのバックアップの作成
1. AWS で実施する手順
以下の手順を AWS アカウントで実施してください。
AWS S3 バケットを作成する
バックアップのエクスポート先となる AWS S3 バケットを、アカウント内に作成します。
IAM ロールを作成する
AWS はロールベースの認証を使用するため、ClickHouse Cloud サービスがこのバケットに書き込めるよう、引き受け可能な IAM ロールを作成します。
- a. ClickHouse Cloud サービスの設定ページにある Network security information から ARN を取得します。次のような形式です。

- b. このロールに対して、次のような信頼ポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "backup service",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::463754717262:role/CH-S3-bordeaux-ar-90-ue2-29-Role"
},
"Action": "sts:AssumeRole"
}
]
}ロールの権限を更新する
この ClickHouse Cloud サービスが S3 バケットに書き込めるように、このロールの権限も設定する必要があります。 これを行うには、このような JSON の権限ポリシーをロール用に作成します。両方の Resource には、自身のバケット ARN を指定してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::byob-ui"
],
"Effect": "Allow"
},
{
"Action": [
"s3:Get*",
"s3:List*",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::byob-ui/*"
],
"Effect": "Allow"
},
{
"Action": [
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::byob-ui/*/.lock"
],
"Effect": "Allow"
}
]
}2. ClickHouse Cloud で行う手順
外部バケットを設定するには、ClickHouse Cloud コンソールで以下の手順に従ってください。
外部バックアップを変更する
Settings ページで、Set up external backup をクリックします。

AWS IAM Role ARN と S3 バケットの詳細を設定する
次の画面で、先ほど作成した AWS IAM Role ARN と、以下の形式の S3 バケット URL を入力します。

変更を保存する
設定を保存するには、“Save External Bucket” をクリックします。
デフォルトのスケジュールからバックアップスケジュールを変更する
以降、外部バックアップはデフォルトのスケジュールでお使いのバケットに対して実行されます。 また、“Settings” ページからバックアップスケジュールを設定することもできます。 別のスケジュールを設定した場合は、そのカスタムスケジュールに従ってお使いの バケットにバックアップが書き込まれ、デフォルトのスケジュール (24 時間ごとのバックアップ) は ClickHouse Cloud が所有するバケット内のバックアップに使用されます。
お使いのバケットに保存されているバックアップを表示する
バックアップページには、以下のように、お使いのバケット内のこれらのバックアップが 別のテーブルに表示されます。

AWS からバックアップを復元する
以下の手順に従って、AWS からバックアップを復元します。
復元先の新しいサービスを作成する
バックアップの復元先となる新しいサービスを作成します。
サービス ARN を追加する
新しく作成したサービスの ARN (ClickHouse Cloud Console のサービス設定ページにあります) を IAM ロールの信頼ポリシーに追加します。これは、上記の AWS の手順セクションにある2 番目の手順と同じです。これにより、新しいサービスが S3 バケットにアクセスできるようになります。
バックアップの復元に使用する SQL コマンドを取得する
UI のバックアップ一覧の上にある「バックアップにアクセスまたは復元」リンクをクリックすると、バックアップの復元に使用する SQL コマンドを取得できます。コマンドは次のようになります。

復元コマンドを実行する
新しく作成したサービスの SQL コンソール で復元コマンドを実行し、バックアップを復元します。
GCP
GCP へのバックアップの作成
GCP にバックアップを作成するには、以下の手順に従ってください。
GCP で実施する手順
GCP のストレージ バケットを作成する
バックアップのエクスポート先として、GCP アカウントにストレージ バケットを作成します。
HMACキーとシークレットを生成する
パスワードベースの認証に必要な HMACキーとシークレット を生成します。キーを生成するには、以下の手順に従ってください。
-
a. サービス アカウントを作成する
- I. Google Cloud Console の IAM & Admin セクションに移動し、
Service Accountsを選択します。 - II.
Create Service Accountをクリックし、名前と ID を入力します。Create and Continueをクリックします。 - III. このサービス アカウントに Storage Object User ロールを付与します。
- IV.
Doneをクリックして、サービス アカウントの作成を完了します。
- I. Google Cloud Console の IAM & Admin セクションに移動し、
-
b. HMAC key を生成する
- I. Google Cloud Console の Cloud ストレージに移動し、
Settingsを選択します - II. Interoperability タブに移動します。
- III.
Service account HMACセクションで、Create a key for a service accountをクリックします。 - IV. ドロップダウンメニューから、前の手順で作成したサービス アカウントを選択します。
- V.
Create keyをクリックします。
- I. Google Cloud Console の Cloud ストレージに移動し、
-
c. 認証情報を安全に保存する:
- I. システムに Access ID (HMAC key) と Secret (HMAC secret) が表示されます。これらの値を保存してください。 このウィンドウを閉じると、secret は再表示されません。
ClickHouse Cloud での手順
外部バケットを設定するには、ClickHouse Cloudコンソールで以下の手順を実行してください。
外部バックアップを変更する
Settings ページで、Change external backup をクリックします。

GCP HMACキーとシークレットを設定する
ポップアップダイアログで、前のセクションで作成した GCP バケットのパス、HMACキー、シークレットを入力します。

外部バケットを保存する
Save External Bucket をクリックして設定を保存します。
デフォルトのスケジュールからバックアップスケジュールを変更する
以降、外部バックアップはデフォルトのスケジュールに従ってお使いのバケットに保存されます。
また、Settings ページからバックアップスケジュールを設定することもできます。
別のスケジュールを設定した場合、バケットにバックアップを書き込む際にはカスタムスケジュールが使用され、
デフォルトのスケジュール (24時間ごとのバックアップ) は
ClickHouse Cloud が管理するバケット内のバックアップに使用されます。
バケットに保存されているバックアップを表示する
以下のように、バックアップページにはお使いのバケット内のバックアップが別のテーブルに表示されます。

GCP からバックアップを復元する
以下の手順に従って、GCP からバックアップを復元します。
復元先となる新しいサービスを作成する
バックアップの復元先となる新しいサービスを作成します。
バックアップの復元に使用する SQL コマンドを取得する
UI のバックアップ一覧の上にある バックアップにアクセスまたは復元 リンクをクリックして、バックアップを復元するための SQL コマンドを取得します。コマンドは次のように表示され、ドロップダウンから適切なバックアップを選択すると、そのバックアップ用の復元コマンドを取得できます。コマンドにはシークレットアクセスキーを追加する必要があります。

バックアップを復元する SQL コマンドを実行する
新しく作成したサービスの SQL コンソールで復元コマンドを実行し、バックアップを復元します。
Azure
Azure へのバックアップの作成
Azure にバックアップを作成するには、以下の手順に従ってください。
Azure での手順
ストレージ アカウントを作成する
Azure portal でストレージ アカウントを作成するか、バックアップの保存先として既存のストレージ アカウントを選択します。
接続文字列を取得する
- a. ストレージ アカウントの概要で、
Security + networkingセクションを探し、Access keysをクリックします。 - b. ここに
key1とkey2が表示されます。各キーの下にConnection stringフィールドがあります。 - c.
Showをクリックして接続文字列を表示します。ClickHouse Cloud での設定に使用するため、この接続文字列をコピーします。
ClickHouse Cloud で実施する手順
外部バケットを設定するには、ClickHouse Cloudコンソールで以下の手順を実行してください。
外部バックアップを変更する
Settings ページで、Change external backup をクリックします。

Azure ストレージアカウント の接続文字列とコンテナー名を指定する
次の画面で、前のセクションで作成した Azure ストレージアカウント の接続文字列とコンテナー名を入力します。

外部バケットを保存する
設定を保存するには、Save External Bucket をクリックします。
デフォルトのスケジュールからバックアップスケジュールを変更する
これで、外部バックアップはデフォルトのスケジュールでお使いのバケットに保存されます。必要に応じて、
Settings ページからバックアップスケジュールを設定することもできます。別のスケジュールを設定すると、
バケットへのバックアップの書き込みにはそのカスタムスケジュールが使用され、デフォルトのスケジュール
(24 時間ごとのバックアップ) は ClickHouse Cloud が管理するバケット内のバックアップに使用されます。
バケットに保存されているバックアップを表示する
以下のように、バックアップページにはお使いのバケット内のバックアップが別のテーブルに表示されます。

Azure からバックアップを復元する
Azure からバックアップを復元するには、以下の手順に従ってください。
復元先となる新しいサービスを作成する
バックアップの復元先となる新しいサービスを作成します。現在、バックアップの復元先としてサポートされているのは新しいサービスのみです。
バックアップの復元に使用する SQL コマンドを取得する
UI のバックアップ一覧の上にある バックアップにアクセスまたは復元 リンクをクリックすると、バックアップを復元するための SQL コマンドを取得できます。コマンドは次のような形式です。ドロップダウンから適切なバックアップを選択すると、そのバックアップ専用の復元コマンドを取得できます。このコマンドには、Azure ストレージアカウントの接続文字列を追加する必要があります。

バックアップを復元する SQL コマンドを実行する
新しく作成したサービスの SQL コンソールで復元コマンドを実行し、バックアップを復元します。