メインコンテンツまでスキップ
メインコンテンツまでスキップ

自動スケーリング

スケーリングは、クライアントの要求に応じて利用可能なリソースを調整する能力です。Scale および Enterprise(標準 1:4 プロファイル)のティアサービスは、APIをプログラムで呼び出すか、UI上で設定を変更することにより、水平スケーリングが可能です。あるいは、これらのサービスは、アプリケーションの要求に応じて自動垂直スケーリングされることもあります。

Scale plan feature

自動垂直スケーリング is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

ClickHouse Cloudにおけるスケーリングの仕組み

現在、ClickHouse Cloudは、Scaleティアサービスに対して垂直自動スケーリングと手動水平スケーリングをサポートしています。

Enterpriseティアサービスのスケーリングは次のように機能します。

  • 水平スケーリング:手動水平スケーリングは、Enterpriseティアのすべての標準およびカスタムプロファイルで利用可能です。
  • 垂直スケーリング:
    • 標準プロファイル(1:4)は、垂直自動スケーリングをサポートします。
    • カスタムプロファイルは、発売時に垂直自動スケーリングまたは手動垂直スケーリングをサポートしません。ただし、これらのサービスはサポートに連絡することで垂直にスケールできます。
注記

我々は、「Make Before Break」(MBB)と呼ばれる計算レプリカ用の新しい垂直スケーリングメカニズムを導入しています。このアプローチでは、古いレプリカを削除する前に、新しいサイズの1つまたは複数のレプリカを追加し、スケーリング操作中に容量が失われないようにします。既存のレプリカを削除し新しいレプリカを追加するギャップを排除することで、MBBはよりシームレスで中断の少ないスケーリングプロセスを実現します。これは、リソースの高い使用率が追加容量の必要性を引き起こすスケールアップシナリオに特に有益です。レプリカを早急に削除すると、リソース制約がさらに悪化するだけです。

この変更の一環として、スケーリングイベントの一部として過去30日間のシステムテーブルデータが保持されることに注意してください。また、AWSまたはGCPのサービスにおいては2024年12月19日以前の、Azureのサービスにおいては2025年1月14日以前のシステムテーブルデータは新しい組織ティアへの移行に伴い保持されません。

垂直自動スケーリング

Scale plan feature

自動垂直スケーリング is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

ScaleおよびEnterpriseサービスは、CPUおよびメモリ使用量に基づいて自動スケーリングをサポートしています。過去30時間にわたるサービスの履歴使用量を常に監視し、スケーリングの決定を行います。使用量が特定の閾値を超えたり下回ったりした場合、需要に応じてサービスを適切にスケールします。

CPUベースの自動スケーリングは、CPU使用率が50-75%の範囲で上限を超えたときに開始されます(実際の閾値はクラスタのサイズに依存します)。この時点で、クラスタへのCPU割り当ては倍増します。CPU使用率が上限閾値の半分(例えば、50%の上限閾値の場合、25%)を下回ると、CPU割り当ては半分に減少します。

メモリベースの自動スケーリングは、最大メモリ使用量の125%まで、またはOOM(メモリ不足)エラーが発生した場合は150%までクラスタをスケールします。

CPUまたはメモリの推奨の大きい方が選択され、サービスに割り当てられたCPUとメモリは、1 CPUsおよび4 GiBのメモリのインクリメントで同時にスケーリングされます。

垂直自動スケーリングの構成

ClickHouse CloudのScaleまたはEnterpriseサービスのスケーリングは、Adminロールを持つ組織メンバーが調整できます。垂直自動スケーリングを構成するには、サービスの設定タブに移動し、以下のように最小および最大メモリおよびCPU設定を調整します。

注記

シングルレプリカサービスは、すべてのティアでスケーリングできません。

スケーリング設定ページ

レプリカの最大メモリ最小メモリよりも高い値に設定します。その後、サービスはその範囲内で必要に応じてスケールします。これらの設定は、初期サービス作成フロー中にも利用可能です。サービス内の各レプリカには、同じメモリとCPUリソースが割り当てられます。

これらの値を同じに設定することも選択でき、実質的にサービスを特定の構成に「ピン留め」します。これを行うと、すぐに選択したサイズにスケーリングが強制されます。

このことは、クラスタの自動スケーリングを無効にし、これらの設定を超えたCPUまたはメモリ使用の増加に対してサービスが保護されなくなることに注意してください。

注記

Enterpriseティアサービスでは、標準1:4プロファイルが垂直自動スケーリングをサポートします。 カスタムプロファイルは、発売時に垂直自動スケーリングまたは手動垂直スケーリングをサポートしません。 ただし、これらのサービスはサポートに連絡することで垂直にスケールできます。

手動水平スケーリング

Scale plan feature

手動水平スケーリング is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

ClickHouse CloudのパブリックAPIを使用して、サービスのスケーリング設定を更新したり、クラウドコンソールからレプリカの数を調整したりできます。

ScaleおよびEnterpriseティアは、シングルレプリカサービスをサポートしています。ただし、これらのティア内のサービスが複数のレプリカで開始された場合や、複数のレプリカにスケールアウトした場合は、最小の2レプリカに戻すことしかできません。

注記

サービスは最大20レプリカまで水平にスケールできます。追加のレプリカが必要な場合は、サポートチームにお問い合わせください。

API経由での水平スケーリング

クラスタを水平にスケールするには、PATCHリクエストをAPIを介して発行して、レプリカの数を調整します。以下のスクリーンショットは、3レプリカのクラスタを6レプリカにスケールアウトするためのAPI呼び出しを示しています。

スケーリングPATCHリクエスト

numReplicasを更新するためのPATCHリクエスト

スケーリングPATCHレスポンス

PATCHリクエストからのレスポンス

スケーリングリクエストを新たに発行するか、1つのリクエストが進行中である間に複数のリクエストを連続して発行した場合でも、スケーリングサービスは中間状態を無視し、最終的なレプリカ数に収束します。

UI経由での水平スケーリング

UIからサービスを水平にスケールするには、サービスの設定ページでレプリカの数を調整できます。

スケーリング設定

ClickHouse Cloudコンソールからのサービススケーリング設定

サービスがスケールされた後、クラウドコンソールのメトリクスダッシュボードにサービスへの正しい割り当てが表示されるはずです。以下のスクリーンショットは、クラスタが合計メモリ96 GiBにスケールされたことを示しており、これは6レプリカそれぞれに16 GiBのメモリ割り当てがあります。

スケーリングメモリ割り当て

自動アイドル

設定ページでは、サービスがアイドル状態のときに自動アイドルを許可するかどうかを選択できます(つまり、サービスがユーザーが提出したクエリを実行していないとき)。自動アイドルはサービスのコストを削減します。サービスが一時停止している間は計算リソースに対して請求されません。

注記

特定の特別なケース(例えば、サービスに多数のパーツがある場合)では、サービスが自動的にアイドル状態にならないことがあります。

サービスはアイドル状態になり、リフレッシュ可能なマテリアライズドビューS3Queueからの消費、そして新しいマージのスケジューリングを一時停止します。既存のマージ操作は、サービスがアイドル状態に移行する前に完了します。リフレッシュ可能なマテリアライズドビューおよびS3Queue消費の継続的な運用を確保するために、アイドル状態機能を無効にしてください。

自動アイドルを使用すべきでない場合

自動アイドルは、クエリへの応答に遅延が発生しても問題ないユースケースのみで使用してください。サービスが一時停止していると、接続がタイムアウトするからです。自動アイドルは、使用頻度が低く、遅延を許容できるサービスに理想的です。頻繁に使用される顧客向け機能を提供するサービスにはお勧めできません。

突発的なワークロードの処理

今後のワークロードの急増が予想される場合は、ClickHouse Cloud APIを使用して、急増に対応するためにサービスを事前にスケールアップし、需要が収まったらスケールダウンできます。各レプリカで使用中の現在のCPUコアとメモリを理解するには、以下のクエリを実行できます。