日中の大量データ書き込みなどのビジネスのピーク時間には、Milvus クラスターの Data Node と Index Node で CPU とメモリの使用率が高くなる場合があります。これにより、インデックス構築の遅延、コンパクションの遅延、またはメモリ不足 (OOM) エラーによるノード再起動が発生する可能性があります。一方、オフピーク時間や夜間には、これらのノードのリソース使用率が低くなり、コンピューティングリソースが無駄になります。
スケジュールベースのスケーリングを使用すると、Data Node と Index Node に対して、時間に基づくスケーリングプランを複数設定できます。この機能は、指定した時刻にノードを自動的にスケールアウトまたはスケールインし、手動調整の必要性を減らし、リソースコストの最適化に役立ちます。
制限事項
-
CPU 使用率や QPS など、負荷またはメトリクスに基づく Auto Scaling はサポートされていません。
-
各インスタンスは、実行に使用するタイムゾーンを 1 つのみサポートします。タイムゾーンをまたぐ変換は行われません。
-
各ノードタイプでサポートされるルールは最大 10 件です。
-
2 つのアベイラビリティーゾーンにまたがる高可用性インスタンスの場合、スケーリングのステップサイズは 2 です。
-
スケーリング中、インスタンスは一時的に Scaling Out または Scaling In 状態になります。この期間中は、インスタンスに対して他の構成変更を行えません。
-
スケールアウトの詳細:スケールアウトでは、新しいノードが割り当てられて初期化されます。通常、数分かかります。その後、インスタンスはデータを自動的に再バランスします。所要時間はワークロードによって異なりますが、さらに数分かかる場合があります。
-
スケールインの詳細:スケールインでは、まず デコミッション プロセスがトリガーされ、削除対象ノード上のデータが、リソース解放前に残存ノードへ安全に移行されます。このデータ移行に必要な時間は、クラスター負荷によって異なります。デコミッション プロセスのデフォルトのタイムアウトは 1 時間です。この時間内にデータ移行が完了しない場合、システムはスケールインを強制的に完了します。
バージョンと仕様の制限
-
Auto Scaling は Standard Edition インスタンスでのみ利用可能です。スターターエディションインスタンスではサポートされていません。
-
インスタンスのエンジンバージョンは、次の最小要件を満たす必要があります:
|
エンジンバージョン |
最小バージョン要件 |
|
2.6 |
すべての 2.6 バージョンがサポートされています |
|
2.5 |
2.5.12-0.6.2_3.8.0 以降 |
|
2.4 |
2.4.23-0.4.3_3.8.0 以降 |
インスタンスがこれより前のバージョンで実行されている場合は、アップグレードして Auto Scaling を有効にできます。
-
Auto Scaling をサポートするコンポーネント
Auto Scaling をサポートするコンポーネントは、Milvus のバージョンによって異なります:
|
コンポーネント |
2.4 |
2.5 |
2.6 |
|
Data Node |
サポート |
サポート |
サポート |
|
Index Node |
サポート |
サポート |
— |
|
Streaming Node |
— |
— |
サポートされていません |
|
Proxy |
サポートされていません |
サポートされていません |
サポートされていません |
|
Query Node |
サポートされていません |
サポートされていません |
サポートされていません |
|
metadata service |
サポートされていません |
サポートされていません |
サポートされていません |
課金
-
サブスクリプションインスタンス:インスタンスの総リソースは、ベースリソースとエラスティックリソースで構成されます。サブスクリプションに含まれるベースリソースは Auto Scaling の対象外です。エラスティックリソースは従量課金で請求され、使用するには事前に従量課金のリソースグループを有効化する必要があります。
-
従量課金インスタンス:このモデルではベースリソースとエラスティックリソースを区別しません。すべてのリソースは従量課金のリソースグループに属します。
前提条件
-
インスタンスが Running 状態であること。
-
サブスクリプションインスタンスの場合、従量課金のリソースグループが有効化されていること。
-
アカウントにインスタンス構成を変更する権限があること。
手順 1:Auto Scaling ページへの移動
-
Alibaba Cloud Milvus console にログインします。
-
左側のナビゲーションペインで、[Milvus インスタンス] をクリックします。
-
上部メニューで、対象リージョンを選択します。
-
インスタンスリストで、対象インスタンスの名前をクリックします。
-
インスタンス詳細ページで、Auto Scaling タブをクリックします。
Auto Scaling タブが表示されない場合、お使いのインスタンスバージョンではスケジュールベースの自動スケーリングをサポートしていません。
手順 2:従量課金のリソースグループの有効化
従量課金インスタンスを使用している場合は、この手順をスキップしてください。
サブスクリプションインスタンスの場合、Auto Scaling ルールを設定する前に、従量課金のリソースグループを有効化する必要があります。
-
Auto Scaling ページで、従量課金のリソースグループのステータスを確認します。
-
有効になっていない場合は、画面の指示に従ってEnable PASG Resource Groupを実行します。
-
有効化後、従量課金のリソースグループを手動でスケーリングできます:
-
スケールアウト:従量課金のリソースグループにおけるノード数の上限は 50 です。2 つのアベイラビリティーゾーンにまたがる高可用性インスタンスの場合、ステップサイズは 2 です。スケールアウト中は、スケールイン、スケールアップ、スケールダウン、構成変更、アップグレードなどの他の操作を実行できません。従量課金のリソースグループのノード仕様はベースリソースと同じで、変更できません。
-
スケールイン:従量課金のリソースグループにおけるノード数の下限は 0 です。2 つのアベイラビリティーゾーンにまたがる高可用性インスタンスの場合、ステップサイズは 2 です。スケールイン中は、スケールアウト、スケールアップ、スケールダウン、構成変更、アップグレードなどの他の操作を実行できません。
-
手順 3:Auto Scaling ルールの作成
-
Auto Scaling ページで、[新規ルール] をクリックします。
-
[新規ルール] ダイアログボックスで、以下のパラメーターを設定します。
パラメータ
説明
Rule Name
必須。ルール名は 1~64 文字で、特殊文字は使用できません。ルール名は同一インスタンス内で一意である必要があります。
Execution Interval
必須。
[毎日] を選択すると、指定した時刻にルールが 1 日 1 回実行されます。
実行時刻を 24 時間形式で選択します (分単位)。
また、Use cron expression を選択して、標準の 5 フィールド Cron 式でカスタム実行スケジュールを定義し、より柔軟なスケジューリングシナリオに対応することもできます。
Node Configuration
スケーリング対象ノードの目標構成を指定します。
-
Node Type:必須。スケーリングするコンポーネントタイプ (例:Data Node、Index Node) を選択します。
-
Node Specifications:エラスティックノードのノード仕様です。
-
[Elastic resource (Number of nodes)]:ルールがトリガーされると、選択したコンポーネントの従量課金ノード数がこの目標値に調整されます。
-
サブスクリプションインスタンスの場合:最小 0、最大 50 です。
-
従量課金インスタンスの場合:Data Node と Index Node の最小値はいずれも 1、最大値は 50 です。
2 つのアベイラビリティーゾーンにまたがる高可用性インスタンスの場合、ノード数は 2 ずつ増減させる必要があります。
説明-
あるノードタイプにすでに最大 10 件のルールがある場合、既存のルールを削除するまで、そのノードタイプに新しいルールを作成できません。
-
同一ノードタイプに対して、同時刻に実行される複数のルールは設定できません。
-
-
[OK] をクリックしてルールを作成します。
ルールが作成されると、[ルールリスト]に表示されます。
ルール設定の例
例 1:営業時間中のスケールアウト
データ書き込みトラフィックがピークになる時間帯に対応するため、毎日 9:00 AM に Data Node を自動的にスケールアウトします:
|
Parameter |
Value |
|
[Rule name] |
day-scale-out |
|
[Execution interval] |
Every Day |
|
[Execution time] |
09:00 |
|
[Node type] |
Data |
|
[Elastic resource] |
2 |
例 2:オフピーク時間のスケールイン
オフピーク時間にリソースを解放するため、毎晩 10:00 PM (22:00) に Data Node を自動的にスケールインします:
|
Parameter |
Value |
|
[Rule name] |
night-scale-in |
|
[Execution interval] |
Every Day |
|
[Execution time] |
22:00 |
|
[Node type] |
Data |
|
[Elastic resource] |
0 |
Auto Scaling ルールの管理
Auto Scaling ページの [ルール一覧] では、Auto Scaling ルールを表示、編集、無効化、有効化、または削除できます。
ルールリストの表示
ルールリストには次のフィールドが表示されます:
-
[Rule ID / Rule name]
-
[Node type] (Data Node / Index Node)
-
[Target node count]
-
[Schedule] (Every day at a specific time)
-
[Actions]
Auto Scaling ルールの編集
-
[Auto Scaling] タブで、対象ルールを見つけます。
-
ルールの [操作] 列で、Edit をクリックします。
-
ルールパラメーターを変更し、[OK] をクリックします。
-
ノードタイプは変更できませんが、それ以外のフィールドはすべて調整できます。
-
ルールの実行中は編集できません。
Auto Scaling ルールの削除
-
[Auto Scaling] タブで、対象ルールを見つけます。
-
ルールの操作列で、Delete をクリックします。
-
表示される確認ダイアログボックスで、[OK] をクリックします。
-
これは、過去に実行されたスケーリングには影響しません。
-
ルールの実行中は削除できません。
Auto Scaling ルールの有効化または無効化
ルールを削除せずに、有効化または無効化してアクティブ状態を制御できます。
-
[Auto Scaling] タブで、対象ルールを見つけます。
-
ルールの操作列で、Enable または Disable をクリックします。
-
これは、過去に実行されたスケーリングには影響しません。
-
ルールの実行中は変更できません。
タイムゾーンの変更
-
Auto Scaling タブで、Switch Time Zone をクリックします。
-
希望のタイムゾーンを選択して、[OK] をクリックします。
タイムゾーンは、インスタンスに既存のルールがない場合にのみ変更できます。
Auto Scaling の概要
[Auto Scaling] タブの [Auto Scaling Overview] セクションには、スケーリング履歴が表示されます:
|
フィールド |
説明 |
|
[Rule name] |
スケーリングをトリガーしたルールの名前です。 |
|
[Component type] |
スケーリング対象のコンポーネントです。 |
|
[Status] |
スケーリングの実行ステータスです:Pending、In Progress、Succeeded、Failed、Rejected、Canceled。 |
|
[Start time] |
スケーリングが開始された時刻です。 |
|
[End time] |
スケーリングが終了した時刻です。 |
|
[Description] |
スケーリングに関する詳細情報です。 |
よくある質問
Auto Scaling は実行中のクエリや書き込みに影響しますか?
いいえ。Auto Scaling プロセスはスムーズに実行されるよう設計されており、実行中のクエリや書き込み処理を中断しません。これにより、ビジネス継続性が確保されます。
スケールイン中のデータは安全ですか?
スケールインでは デコミッション メカニズムを使用します。システムはまず、削除対象ノードから残存ノードへデータを移行します。データ移行が完了し、データ整合性が確認された後にのみ、ノードリソースを解放します。デコミッション プロセスのデフォルトのタイムアウトは 1 時間です。この時間内にプロセスが完了しない場合、システムはスケールインを強制的に完了します。
インスタンスが Auto Scaling をサポートしていないのはなぜですか?
次の条件を確認してください:
-
インスタンスは Standard Edition である必要があります。Auto Scaling は Starter Edition インスタンスではサポートされていません。
-
エンジンバージョンが最小要件を満たす必要があります (2.4 は 2.4.23-0.4.3_3.8.0 以降、2.5 は 2.5.12-0.6.2_3.8.0 以降、2.6 はすべてのバージョンがサポートされています)。
-
インスタンスが Running 状態である必要があります。
スケールアウトしたノードはどのように課金されますか?
スケールアウトしたノードは、実際の使用時間に基づいて従量課金で請求されます。スケールインでノードが解放されると、課金は直ちに停止します。
Auto Scaling ルール数の上限
ノードタイプごとに最大 10 件のスケーリングルールを設定できます。