マルチクラスターと auto scaling は、Hologres V4.0 以降の仮想ウェアハウスインスタンスで利用できます。仮想ウェアハウスは複数のクラスターにまたがって実行でき、auto scaling は負荷に基づいてアクティブなクラスターの数を調整します。これにより、高同時実行のワークロードを処理し、ウェアハウス内でリソースを分離します。
仕組み
マルチクラスターなし: 仮想ウェアハウス内のすべての計算リソースは単一のクラスターに属します。すべてのリクエストがこれらのリソースを共有します。
マルチクラスターあり: 1 つの仮想ウェアハウス内で複数のクラスターが実行されます。計算リソースはクラスター間で物理的に分離されます。アクセスノード FE は、受信リクエストを負荷分散し、実行のためにクラスターにルーティングします。
マルチクラスターと auto scaling あり: 仮想ウェアハウスは負荷 (リソース使用量とキューイング) を監視し、高負荷時に追加のエラスティッククラスターを自動的に起動します。負荷が低下すると、これらのエラスティッククラスターをリリースしてコストを削減します。
モードの選択
設定を行う前に、この表を参考にして、ご利用のワークロードに適したモードを選択してください。
|
モード |
最適な用途 |
適さない用途 |
|
マルチクラスター (固定) |
中小規模のクエリで、負荷が安定して予測可能な高同時実行ワークロード |
単一クラスターでより多くの計算リソースを必要とする大規模タスクの低同時実行ワークロード |
|
マルチクラスター + auto scaling |
予測不可能なトラフィックスパイクがある高同時実行ワークロード |
低同時実行の大規模タスク、スケジュールされたスケーリングによってすでに管理されているワークロード |
手動またはスケジュールされたスケーリングを代わりに使用する場合: ピークトラフィックが予測可能な場合は、クラスター数を手動で調整するか、時間ベースの弾力性を使用してください。auto scaling は、ピークが予測不可能な場合に最も価値があります。同じ仮想ウェアハウスで時間ベースの弾力性と auto scaling を同時に使用することはできません。
前提条件、注意事項、および制限事項
前提条件
開始する前に、以下を確認してください:
-
Hologres V4.0 以降を実行している仮想ウェアハウスインスタンス
-
権限:Alibaba Cloud アカウント、または以下の権限を持つ Resource Access Management (RAM) ユーザー:
-
RAM ポリシー: AliyunHologresWarehouseFullAccess。詳細については、「RAM ユーザーへの Hologres アクセス権の付与」をご参照ください。
-
開発: インスタンス内のスーパーユーザー権限。詳細については、「RAM ユーザーへの開発権限の付与」をご参照ください。
-
注意事項と制限事項
-
影響: クラスターのスケーリングは、特定の読み書きタスクを短時間中断させる可能性があります。詳細については、「スケールアウト (水平スケーリング)」をご参照ください。
-
機能の競合: スケジュールされたスケーリングと auto scaling は、1 つの仮想ウェアハウスで同時に有効にすることはできません。Hologres コンソールでの開始/停止や計算リソースの調整などの手動操作は引き続き利用可能です。
-
プロビジョニング失敗の可能性: エラスティッククラスターの起動は保証されません。プロビジョニング失敗の可能性があるため、アラートを設定してください。詳細については、「監視とアラート」をご参照ください。
-
リージョン別の可用性:
機能
可用性
マルチクラスター
すべてのリージョン
auto scaling
以下の表をご参照ください
リージョン
auto scaling のサポート
注意事項
中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深セン)
サポート済み (ベータ版)
トライアルを申請するには、申請フォームにご記入ください。
課金
予約済みリソースは、インスタンスの課金方法 (サブスクリプションまたは従量課金) に基づいて課金されます。
エラスティックリソースは従量課金で、起動されたエラスティック計算リソースに対して別途課金されます:
コスト = 起動されたエラスティックリソース (CU × 時間) × 単価
Alibaba Cloud はエラスティックリソースの使用量を 1 分ごとに記録し、1 時間ごとに請求書をプッシュします。料金はアカウントから自動的に引き落とされます。単価については、「課金」をご参照ください。
マルチクラスターの有効化
仮想ウェアハウスの予約済みクラスター数を変更することで、マルチクラスター機能を有効にできます。詳細な手順については、「スケールアウト (水平スケーリング)」をご参照ください。
auto scaling の有効化
auto scaling は、リソース使用量やキューイングを含む負荷に基づいてアクティブなクラスターの数を調整します。
-
Hologres コンソールにログインします。左上のコーナーで、インスタンスがデプロイされているリージョンを選択します。
-
左側のナビゲーションウィンドウで、インスタンス一覧 をクリックします。対象の インスタンス ID / 名前 をクリックして、インスタンスの詳細 ページを開きます。
-
インスタンス詳細ページの左側のナビゲーションウィンドウで、仮想ウェアハウスの管理 を選択します。右側で、仮想ウェアハウス自動スケーリング タブを選択します。
-
自動スケーリングを有効にする をオンにします。クラスターの最大数 の値を設定し、保存 をクリックします。
[最大クラスター数] は、エラスティックなスケールアウトの上限を定義します。仮想ウェアハウスは、高負荷時にこの制限までクラスターを追加します。
auto scaling の動作の確認
auto scaling を有効にした後、pgbench (PostgreSQL のネイティブパフォーマンステストツール) を使用して、スケーリングが正しくトリガーされることを確認します。この例では、クラスターあたり 32 CU、予約済みクラスター 1 つ、最大クラスター数 4 つの構成を使用します。
-
テストテーブルを作成し、データをロードします:
CREATE TABLE tbl_1 (col1 INT, col2 INT, col3 TEXT); CREATE TABLE tbl_2 (col1 INT, col2 INT, col3 TEXT); INSERT INTO tbl_1 SELECT i, i+1, md5(random()::TEXT) FROM generate_series(0, 500000) AS i; INSERT INTO tbl_2 SELECT i, i+1, md5(random()::TEXT) FROM generate_series(0, 500000) AS i; -
ストレステストサーバーで、次のクエリを含む
select.sqlという名前のファイルを作成します:EXPLAIN ANALYZE SELECT * FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.col3 = tbl_2.col3 ORDER BY 1; -
パスワードを環境変数として設定します:
export PGPASSWORD='<AccessKey_Secret>' -
ストレステストを実行します。プレースホルダーを実際の値に置き換えてください。接続パラメーターの詳細については、「Hologres への接続とデータ開発」をご参照ください。
プレースホルダー
説明
<AccessKey_Secret>アカウントの AccessKey Secret
<Database>対象の Hologres データベース名
<AccessKey_ID>アカウントの AccessKey ID
<Endpoint>Hologres インスタンスのエンドポイント
<Port>接続ポート
pgbench \ -c 30 \ -j 30 \ -f select.sql \ -d <Database> \ -U <AccessKey_ID> \ -h <Endpoint> \ -p <Port> \ -T 1800
期待される結果:
-
クラスターの CPU 使用率:

-
クラスター 1 の負荷が高い状態が続くと、auto scaling がクラスターを追加します (チャートの位置 1)。
-
ストレステストが終了すると、両方のクラスターの負荷が低くなり、auto scaling がエラスティッククラスターを削除します (位置 2)。
-
-
仮想ウェアハウスの CPU 使用率:

-
仮想ウェアハウスの CPU 使用率が継続的に 85% を超えると、新しいクラスターが追加されます。
-
新しいクラスターが追加されると、全体の CPU 使用率は約 70% に低下します。
-
監視とアラート
メトリクス
Hologres コンソールで、仮想ウェアハウスの以下のメトリクスを監視します。設定手順については、「メトリクスの監視」をご参照ください。
-
クラスターの CPU 使用率
-
クラスターのメモリ使用量
-
仮想ウェアハウスの auto scaling によって起動された vCPU の数
エラスティックイベントログ
-
仮想ウェアハウスの管理 ページで、エラスティックイベント実行ログ タブをクリックします。
-
時間範囲を選択して、過去のスケーリングイベントを表示します。各イベントレコードには、実行時間、仮想ウェアハウス、実行ステータス、イベントタイプ、予約済みクラスター数、およびターゲットクラスター数が含まれます。
Cloud Monitor イベント
auto scaling のスケールアウトおよびスケールインイベントは Cloud Monitor に記録されます。
-
Cloud Monitor イベントセンターに移動します。システムイベント ページで、イベントモニタリング エリアのプロダクトとして Hologres を選択します。以下の auto scaling イベントが利用可能です:
イベント名
説明
Instance:Warehouse:AutoElastic:Start仮想ウェアハウスの auto scaling が開始されました
Instance:Warehouse:AutoElastic:Finishauto scaling が正常に完了しました
Instance:Warehouse:AutoElastic:Failedauto scaling が失敗しました (例:クラスターが起動できなかった)
-
これらのイベントに基づいて、通知またはアラートルールを設定します。設定手順については、「システムイベントのアラートの使用」をご参照ください。
以下に、スケールアウトイベントが失敗した場合の Cloud Monitor イベントペイロードの例を示します:
{
"status": "Failed",
"instanceName": "<instance_id>",
"resourceId": "<instance_resource_id>",
"content": {
"AutoElasticCPU": <cpu_num>,
"ScaleType": "ScaleOut",
"ScheduleId": "xxxxxx",
"WarehouseId": "<warehouse_id>",
"WarehouseName": "<warehouse_name>"
},
"product": "hologres",
"time": 1722852008000,
"level": "WARN",
"regionId": "<region>",
"id": "<event_id>",
"groupId": "0",
"name": "Instance:Warehouse:TimedElastic:Failed"
}
ActionTrail
Hologres コンソールで実行されたすべての操作 (auto scaling 設定の編集を含む) および auto scaling によってトリガーされた実際のクラスターのスケーリング操作は、ActionTrail に記録されます。詳細については、「監査イベントログ」をご参照ください。