自動スケーリング

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

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

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

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

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

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

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

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

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

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

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 エンドポイントに送信して、API によってデプロイメントの自動スケーリングのパラメーターを取得できます。

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統合 を使用してリソースを監視してください。 インスタンスにリソースを追加するには、デプロイメントを手動でスケールします。