自動スケーリング

自動スケーリングは、IBM Cloud® Databases for PostgreSQL のデプロイメントでのリソース使用量の短期間から中期間のトレンドに対応するように設計されています。 使用可能にすると、指定した間隔でデプロイメントが検査されます。 リソースが不足している場合は、リソースがデプロイメントに追加されます。 リソースの状態を把握するには、 「 IBM Cloud® Monitoring 」連携機能 をご利用ください。この機能では、メモリ、ディスク容量、ディスクI/Oの使用状況に関するメトリクスが提供されます。

ディスクまたは RAM あるいはその両方を自動スケーリングするようにデプロイメントを設定できます。

一般的なオートスケーリングパラメータ:

  • 一定期間における使用量に基づくスケーリングのタイミング
  • メンバーあたりのリソースのパーセンテージとしての、スケーリングする量
  • 秒、分、時間のいずれかで測定されるスケーリング頻度
  • スケーリングのハード制限。その制限でデプロイメントはスケーリングを停止します。

メモリ - メモリの自動スケーリングは、ディスクI/Oの使用状況に基づいて行われ、読み書きの負荷が増加するにつれて、ディスクキャッシュ用に割り当てられるメモリ量を増やします。 追加メモリーによってより多くのキャッシングをサポートし、ディスク入出力における負荷を軽減できることが利点です。 メモリー使用量に基づく自動スケーリング構成は、現在使用できません。

ディスク - ディスクの自動スケーリングは、ディスク使用量が特定の閾値に達した場合、ディスク I/O 使用量が特定の閾値に達した場合、あるいはその両方が満たされた場合にスケーリングが行われます。 (UI で「or」は、inclusive or、|、v として機能します) デプロイメントで使用可能な IOPS の量は、ディスク・サイズに応じて GB ごとに 10 IOPS の比率で増加します。

CPUとRAMの自動スケーリングは、Isolated Computeではサポートされていません。 ディスクの自動スケーリングが可能。 隔離されたインスタンスをプロビジョニングした場合、または自動スケーリング付きのデプロイメントから切り替えた場合は、IBM Cloud® Monitoring統合 を使用してリソースを監視してください。 インスタンスにリソースを追加するには、デプロイメントを手動でスケールします。

リソース数は、デプロイメント内の各データベース・メンバーを表します。 例えば、PostgreSQL デプロイメントに 2 つのデータ・メンバーがあり、デプロイメントが 10 GB のディスクと 1 GB の RAM でスケーリングされているとします。つまり、各メンバーが 10 GB のディスクと 1 GB の RAM を取得します。 このデプロイメントに追加されたリソースの合計は、ディスク 20 GB および RAM 2 GB になります。

自動スケーリングに関する考慮事項

  • デプロイメントをスケール・アップすると、データベースが再始動する場合があります。 より容量の大きいホストにデプロイメントを移行する必要がある場合は、移行の一環としてデータベースが再始動されます。

  • ディスクをスケール・ダウンすることはできません。

  • いくつかのスケーリング操作は他の操作と比べて、実行時間が長くなることがあります。 基礎的なハードウェア・リソースをさらにプロビジョニングするために、RAM またはディスクを大幅に増やすと、少しだけ増やす場合に比べて時間が長くかかる可能性があります。

  • 自動スケーリング操作は、IBM Cloud® Activity Tracker Event Routing でログに記録されます。

  • 制限:

    • いずれの場合であっても、60 秒未満の間隔でスケーリングするように設定することはできません。
    • メンバー1人あたりのディスク容量の上限は4 TBです。
    • メンバー1人あたりの最大RAM容量は240 GBです。
  • オートスケーリングでは、ディスクやメモリの使用量が減少した場合でも、デプロイメントの規模を縮小することはありません。 デプロイメントにプロビジョンされた RAM は、将来の必要に備えて、手動でデプロイメントをスケールダウンしない限り保持されます。 デプロイメントにプロビジョンされたディスクは、ディスクをスケールダウンすることはできないのでそのまま保持されます。

  • 配置にリソースを追加する必要がたまにしかない場合、またはめったにない場合は、手動で配置をスケール します。

  • 読み取り専用レプリカが、リーダーに合わせて自動的にスケーリングされることはありません。 保管するデータの量がデプロイメントに割り振られているディスクの量を超える場合は、読み取り専用レプリカのディスクをスケーリングしてから、リーダーのディスクをスケーリングしてください。 読み取り専用レプリカを最初にスケーリングすることで、読み取り専用レプリカのスペースが枯渇しないようにします。 スペースではなくパフォーマンスのためにリーダーのディスクをスケーリングした場合は、読み取り専用レプリカのスケーリングは必須ではありません。

UI における自動スケーリングの構成

オートスケーリングパネルは、左側のナビゲーションメニューの_リソース_タブにあります。 スケーリングを有効にするには、パラメーターを入力します。 次に、ボックスにチェック・マークを付けて、使用しているパラメーターを有効にします。 忘れずに、保存する構成について**「変更を保存」**をクリックし、変更内容を有効にします。

自動スケーリングを無効にするには、使用しなくなったパラメーターのボックスのチェック・マークを外します。 すべてのボックスのチェック・マークを外すと、自動スケーリングは無効になります。 **「変更を保存」**をクリックして、構成を保存します。

CPUとRAMの自動スケーリングは、Isolated Computeではサポートされていません。 ディスクの自動スケーリングが可能。 隔離されたインスタンスをプロビジョニングした場合、または自動スケーリング付きのデプロイメントから切り替えた場合は、IBM Cloud® Monitoring統合 を使用してリソースを監視してください。 インスタンスにリソースを追加するには、デプロイメントを手動でスケールします。

CLI における自動スケーリングの構成

CLI では、 cdb deployment-autoscaling コマンドを使用することで、デプロイメントの自動スケーリングパラメータを取得できます。

ibmcloud cdb deployment-autoscaling <DEPLOYMENT_NAME_OR_CRN> member

CLI を通じて自動スケーリングを有効にし、そのパラメータを設定するには、 cdb deployment-autoscaling-set コマンドで、JSONオブジェクトまたはファイルを使用してください。

ibmcloud cdb deployment-autoscaling-set <DEPLOYMENT_NAME_OR_CRN> member '{"autoscaling": { "memory": {"scalers": {"io_utilization": {"enabled": true, "over_period": "5m","above_percent": 90}},"rate": {"increase_percent": 10.0, "period_seconds": 300,"limit_mb_per_member": 114688,"units": "mb"}}}}'

CPUとRAMの自動スケーリングは、Isolated Computeではサポートされていません。 ディスクの自動スケーリングが可能。 隔離されたインスタンスをプロビジョニングした場合、または自動スケーリング付きのデプロイメントから切り替えた場合は、IBM Cloud® Monitoring統合 を使用してリソースを監視してください。 インスタンスにリソースを追加するには、デプロイメントを手動でスケールします。

API における自動スケーリングの構成

GET リクエストを /deployments/{id}/groups/{group_id}/autoscaling エンドポイントにxml-ph-0000@deepl.internalリクエストを送信することで、デプロイメントの自動スケーリングパラメータを取得できます。

curl -X GET -H "Authorization: Bearer $APIKEY" 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member/autoscaling'

API を使用してデプロイメントの自動スケーリングのパラメーターを有効にして設定するには、エンドポイントに POST 要求を送信します。 自動スケーリングを有効にするには、scalers (io_utilization または capacity) を true に設定します。

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member/autoscaling -H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{
    "autoscaling": {
      "memory": {
        "scalers": {
          "io_utilization": {
            "enabled": true,
            "over_period": "5m",
            "above_percent": 90
          }
        },
        "limits": {
          "scale_increase_percent": 10,
          "scale_period_seconds": 30,
          "scale_maximum_mb": 125952,
          "units": "mb"
        }
      }
    }
  }'

自動スケーリングを無効にするには、現在有効になっているスケーリング機能を false に設定して PATCH 要求を送信します。 すべてを false に設定すると、デプロイメントで自動スケーリングが無効になります。

CPUとRAMの自動スケーリングは、Isolated Computeではサポートされていません。 ディスクの自動スケーリングが可能。 隔離されたインスタンスをプロビジョニングした場合、または自動スケーリング付きのデプロイメントから切り替えた場合は、IBM Cloud® Monitoring統合 を使用してリソースを監視してください。 インスタンスにリソースを追加するには、デプロイメントを手動でスケールします。