データのレジリエンス
このページでは、ClickHouse Cloud におけるディザスタリカバリの推奨事項と、障害発生時にお客様が復旧するための指針を説明します。 現在、ClickHouse Cloud は自動フェイルオーバーや、複数の地理的リージョン間での自動同期をサポートしていません。
お客様は、自身のサービス規模および構成に固有の RTO を把握するため、定期的にバックアップからの復元テストを実施する必要があります。
用語の定義
まずはいくつかの用語を定義しておくと役に立ちます。
RPO (Recovery Point Objective / 復旧時点目標): 障害などの破壊的なイベント発生後に、時間で表した場合に許容できる最大のデータ損失期間。例: RPO が 30 分であれば、障害発生時にデータベースは「30 分より前の状態には遡らない」地点まで復元できる必要があります。これは当然ながら、バックアップの取得頻度に依存します。
RTO (Recovery Time Objective / 復旧時間目標): 障害発生後、通常運用を再開しなければならないまでに許容される最大停止時間。例: RTO が 30 分であれば、障害発生時にチームは 30 分以内にデータとアプリケーションを復元し、通常運用を再開できる必要があります。
データベースのバックアップとスナップショット: バックアップは、データの別コピーを保持する耐久性の高い長期保存を提供します。スナップショットは追加のデータコピーを作成せず、通常はより高速で、より優れた RPO を実現できます。
データベースバックアップ
プライマリサービスのバックアップを保持しておくことは、プライマリサービスにダウンタイムが発生した場合に、そのバックアップからリストアするための有効な手段です。 ClickHouse Cloud は、バックアップに関して次の機能をサポートしています。
- デフォルトバックアップ
デフォルトでは、ClickHouse Cloud は 24 時間ごとにサービスのバックアップを取得します。 これらのバックアップはサービスと同じリージョンにある、ClickHouse が利用するクラウドサービスプロバイダー(CSP)のストレージバケット内に作成されます。 プライマリサービス内のデータが破損した場合、バックアップを使用して新しいサービスへリストアできます。
- 外部バックアップ(顧客自身のストレージバケット)
Enterprise Tier のお客様は、自身のアカウント内のオブジェクトストレージに、同一リージョンまたは別リージョンへバックアップをエクスポートできます。 クラウド間(クロスクラウド)のバックアップエクスポートのサポートは近日提供予定です。 リージョン間およびクラウド間バックアップには、該当するデータ転送料金が適用されます。
この機能は現在、PCI/HIPAA サービスでは利用できません
- 設定可能なバックアップ
お客様は、RPO を改善するために、最大 6 時間ごとのより高い頻度でバックアップを設定できます。 保持期間を長く設定することも可能です。
現在お使いのサービスで利用可能なバックアップは、ClickHouse Cloud コンソールの「Backups」ページに一覧表示されます。 このセクションでは、各バックアップの成功/失敗ステータスも確認できます。
バックアップからの復元
- ClickHouse Cloud バケット内のデフォルト バックアップは、同じリージョン内の新しいサービスに復元できます。
- 外部バックアップ(お客様のオブジェクトストレージ内)は、同じリージョンまたは別のリージョンの新しいサービスに復元できます。
バックアップおよびリストア所要時間の目安
バックアップおよびリストアにかかる時間は、データベースのサイズに加え、スキーマやテーブル数など、複数の要因によって変動します。
検証では、約 1 TB 程度の小規模なバックアップでも、完了までに 10〜15 分、場合によってはそれ以上かかることを確認しています。 20 TB 未満のバックアップであれば通常 1 時間以内に完了し、約 50 TB のデータのバックアップには 2〜3 時間程度を見込んでください。 サイズが大きくなるとバックアップはスケールメリットを得られ、いくつかの内部サービスでは最大 1 PB のバックアップが 10 時間未満で完了した例もあります。
実際の所要時間は、上記のとおり複数の要因に依存するため、より正確な見積もりを得るには、自身のデータベースまたはサンプルデータを用いてテストすることを推奨します。
リストアにかかる時間は、同程度のサイズであればバックアップにかかる時間と同程度です。 前述のとおり、どの程度の時間でバックアップをリストアできるか把握するためにも、自身のデータベースでのテストを推奨します。
現在、同一リージョン内か異なるリージョンかを問わず、2 つの ClickHouse Cloud インスタンス間での自動フェイルオーバーはサポートされていません。 また、同一または異なるリージョンに存在する複数の ClickHouse Cloud サービス間でのデータの自動同期、すなわちアクティブ-アクティブレプリケーションも現時点では利用できません。
復旧プロセス
このセクションでは、さまざまな復旧オプションと、それぞれのケースで実行できる手順について説明します。
プライマリサービスのデータ破損
この場合、同一リージョン内の別のサービスに対して、バックアップからデータを復元できます。 デフォルトのバックアップポリシーを使用している場合、利用可能なバックアップは最大で 24 時間前の時点までさかのぼります。6 時間間隔で取得する設定可能なバックアップを使用している場合は、最大で 6 時間前のものまで復元できます。
復元手順
既存のバックアップから復元するには
ClickHouse Cloud コンソールの「Backups」セクションに移動します。
復元に使用したいバックアップの「Actions」列に表示される縦三点リーダー(⋮)アイコンをクリックします。
新しいサービスに明確な名前を付け、このバックアップから復元します。

プライマリリージョンのダウンタイム
Enterprise Tier のお客様は、バックアップを自身のクラウドプロバイダのバケットにエクスポートできます。 リージョン障害が懸念される場合は、バックアップを別リージョンにエクスポートすることを推奨します。 リージョン間をまたぐデータ転送料金が発生する点に注意してください。
プライマリリージョンがダウンした場合、別リージョンにあるバックアップを使用して、そのリージョンの新しいサービスへ復元できます。
バックアップを別のサービスに復元したら、DNS、ロードバランサー、または接続文字列の設定を更新し、新しいサービスを参照するようにする必要があります。 これには次の作業が含まれる場合があります:
- 環境変数やシークレットの更新
- 新しい接続を確立するためのアプリケーションサービスの再起動
外部バケットへのバックアップ/リストアは、現在 Transparent Data Encryption (TDE) を利用しているサービスではサポートされていません。
追加オプション
検討すべき追加オプションがいくつかあります。
- 別クラスターへのデュアルライト
このオプションでは、異なるリージョンに 2 つの独立したクラスターを構成し、両方にデュアルライトすることができます。 このオプションは複数のサービスを稼働させるためコストが高くなりますが、いずれかのリージョンが利用不能になった場合の可用性を高めることができます。
- CSP レプリケーションの利用
このオプションでは、クラウドサービスプロバイダーが提供するネイティブなオブジェクトストレージのレプリケーション機能を利用してデータをコピーします。 例えば、BYOB を利用する場合、プライマリリージョンで自分が所有するバケットにバックアップを書き出し、AWS Cross-Region Replication を使って別のリージョンにレプリケートさせることができます。