自動スケール・ポリシーの作成
/paas/api/v1.1/instancemgmt/{identityDomainId}/services/JaaS/instances/{serviceId}/autoscaling/policies
Oracle Java Cloud Serviceインスタンスに自動スケール・ポリシーを作成して有効にします。
ポリシーは、サービス・インスタンスを自動的にスケーリングするタイミングのルールおよび条件を定義します。 現時点では、2つルール(操作)のみがサポートされます: クラスタでのスケール・アウトおよびスケール・イン。 最大クラスタ・サイズおよび最小クラスタ・サイズを定義できます。
仮想マシン(VM)のメトリックの特定の条件が満たされると、ルールによってアラームがトリガーされます。 現時点でサポートされているメトリックはCPU使用率のみです。
サービス・インスタンスで自動スケールを有効にするには、少なくとも1つのルール(操作)を定義する必要があります。 両方のルール(操作)を定義する場合は、条件が相互に競合しないようにしてください。
Oracle Java Cloud Serviceの使用の自動スケールに関する項を参照してください。
自動スケールを有効にする場合は、次のことを考慮してください。
- オンデマンドでのスケーリングと同様に、スケーリング操作が実行される前に、サービス・インスタンスのバックアップが自動的に開始されます。 自動スケール・ポリシーを有効にする前に、それに対応できるようにOracle Cloudストレージを計画してください。
- Oracle Exadataデータベースに関連付けられているサービス・インスタンスでは、自動スケールはサポートされません。
リクエスト
- application/json
- identityDomainId
-
型:
string
必須:true
Oracle Java Cloud Serviceアカウントのアイデンティティ・ドメインID。- serviceId
型:string
必須:true
Oracle Java Cloud Serviceインスタンスの名前。
- X-ID-TENANT-NAME
-
型:
string
必須:true
Oracle Java Cloud Serviceアカウントのアイデンティティ・ドメインID。
- alarm
-
タイプ:
object
alarm必須:true
アラームをトリガーするルールの条件をグループ化します。 - coolDownPeriod
-
型:
integer
必須:true
スケーリング・アクティビティが完了してから、次のスケーリング・アクティビティを開始できるようになるまでの時間(分単位)。 有効な値は30-300の範囲の正の整数です。クール・ダウン期間後もアラームがまだアクティブな場合は、スケーリング・アクティビティが繰り返されます。 アラームがアクティブではなくなるか、最大または最小クラスタ・サイズに達するまで、このプロセスが継続されます。
- maxClusterSize
-
型:
integer
必須:true
サービス・インスタンスによってサポートされる最大クラスタ・サイズ。ScaleOut
ルールの場合にのみ必要であり、有効となります。 - minClusterSize
-
型:
integer
必須:true
サービス・インスタンスによってサポートされる最小クラスタ・サイズ。ScaleIn
ルールの場合にのみ必要であり、有効となります。 - operation
-
型:
string
必須:true
アラームがトリガーされたときに実行されるスケーリング操作。 現時点では、スケール・アウトおよびスケール・インのみがサポートされます。 少なくとも1つのスケーリング操作をポリシーに定義する必要があります。 有効な値:scaleOut
、scaleIn
object
- breachedOnInstance
-
型:
string
必須:true
アラーム・ルールがすべてのVMインスタンスまたはいずれかのVMインスタンスで違反となったときに、自動スケールが実行されるかどうか。 有効な値:ALL
、ANY
- comparisonOperator
-
型:
string
必須:true
指定したstatistic
値およびthreshold
値を比較するときに使用される算術操作。 有効な値:GreaterThanOrEqualToThreshold
(スケール・アウトの場合)、LessThanOrEqualToThreshold
(スケール・インの場合) - metricName
-
型:
string
必須:true
アラームに設定されているメトリックの名前。 現時点でサポートされる値はCPUUtilization
のみです。 - metricUnit
-
型:
string
必須:true
アラームに関連付けられているメトリックの測定単位。 有効な値:percent
- sampleCount
-
型:
integer
必須:true
特定のメトリックでデータが連続して比較される回数。 有効な値は1-24の範囲の正の整数です。 - sampleFrequency
-
型:
integer
必須:true
特定のメトリックでデータが比較される間隔(分単位)。 有効な値は5-60の範囲の正の整数です。 - statistic
-
型:
string
必須:true
アラームに関連付けられているメトリックに適用される統計。 有効な値:AVG
、MIN
、MAX
- threshold
-
型:
integer
必須:true
特定のstatistic
が比較される値。 有効な値は1-100の範囲の正の整数です。
レスポンス
- application/json
- description
-
型:
string
自動スケール・ポリシーの説明。 - message
-
型:
string
例:Rule is Active
- name
-
型:
string
自動スケール・ポリシーの名前。 デフォルト名はサービス・インスタンス名です。 - policies
-
タイプ:
array
policies自動スケール・ポリシーの詳細をグループ化します。 - startTime
-
型:
string
自動スケール・ポリシーが作成または更新された日時。 - status
-
型:
string
自動スケール・ポリシーの状態。 - version
-
型:
string
自動スケール・ポリシーのバージョン。
- alarm
-
タイプ:
object
alarmアラームをトリガーするルールの条件をグループ化します。 - coolDownPeriod
-
型:
integer
スケーリング・アクティビティが完了してから、次のスケーリング・アクティビティを開始できるようになるまでの時間(分単位)。 - maxClusterSize
-
型:
integer
スケール・アウトするときに、サービス・インスタンスによってサポートされる最大クラスタ・サイズ。 - minClusterSize
-
型:
integer
スケール・インするときに、サービス・インスタンスによってサポートされる最小クラスタ・サイズ。 - operation
-
型:
string
アラームがトリガーされたときに実行されるスケーリング操作。 例:scaleOut
、scaleIn
object
- breachedOnInstance
-
型:
string
アラーム・ルールがすべてのVMインスタンスまたはいずれかのVMインスタンスで違反となったときに、自動スケールが実行されるかどうか。 例:ALL
、ANY
。 - comparisonOperator
-
型:
string
指定したstatistic
値およびthreshold
値を比較するときに使用される算術操作。 例:GreaterThanOrEqualToThreshold
、LessThanOrEqualToThreshold
- metricName
-
型:
string
アラームに設定されているメトリックの名前。 たとえば、CPUUtilization
です - metricUnit
-
型:
string
アラームに関連付けられているメトリックの測定単位。 例:percent
- sampleCount
-
型:
integer
特定のメトリックでデータが連続して比較される回数。 - sampleFrequency
-
型:
integer
特定のメトリックでデータが比較される間隔(分単位)。 - statistic
-
型:
string
アラームに関連付けられているメトリックに適用される統計。 例:AVG
、MIN
、MAX
- threshold
-
型:
integer
特定のstatistic
が比較される値。
- detail
-
型:
string
エラーの詳細。 - errors
-
型:
string
エラーの詳細をグループ化します。 - source
-
型:
string
エラーの原因となったアラーム属性の名前。 例:threshold
- status
-
型:
string
操作のステータスの説明。 例:Bad Request
例
次の例では、cURLを使用してRESTリソースに対するPOSTリクエストを発行することによってOracle Java Cloud Serviceインスタンスに自動スケール・ポリシーを追加する方法を示しています。
注意:
この例のコマンドでは、URL構造https://rest_server_url/resource-pathが使用されています。ここで、rest_server_urlはアイデンティティ・ドメインを問い合せるためのOracle Public CloudのRESTサーバーです。 Oracle Public Cloudに使用する適切なURL構造の詳細は、リクエストの送信を参照してください。
リソース・パスのサービス・タイプ../JaaS/..では大文字小文字が区別されます。
cURLコマンド
curl -i -X POST -u username:userPassword1! -d @addpolicy.json -H "Content-Type:application/json" -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/api/v1.1/instancemgmt/ExampleIdentityDomain/services/JaaS/instances/ExampleInstance/autoscaling/policies
リクエスト本文の例
JSON形式のリクエスト本文の例を次に示します。
{ "name": "JCSPolicy", "description": "JCS1 Auto Scaling Policy", "policies": [ { "operation": "scaleOut", "alarm": { "metricName": "CPUUtilization", "metricUnit": "percent", "statistic": "AVG", "comparisonOperator": "GreaterThanOrEqualToThreshold", "threshold": 80, "sampleCount": 3, "sampleFrequency": 10, "breachedOnInstance": "ALL" }, "coolDownPeriod": 30, "maxClusterSize": 4 }, { "operation": "scaleIn", "alarm": { "metricName": "CPUUtilization", "metricUnit": "percent", "statistic": "AVG", "comparisonOperator": "LessThanOrEqualToThreshold", "threshold": 40, "sampleCount": 3, "sampleFrequency": "10", "breachedOnInstance": "ANY" }, "coolDownPeriod": 30, "minClusterSize": 2 } ] }
この例では:
"CPUUtilization"の"AVG"が"ALL"のVMインスタンスで"10"分間隔で"3"回連続して"80" "percent"以上であった("GreaterThanOrEqualToThreshold")場合、最大"maxClusterSize"="4"まで自動的にスケール・アウトし、クールダウンのために"30"分間待機します
"CPUUtilization"の"AVG"が"ANY"のVMインスタンスで"10"分間隔で"3"回連続して"40" "percent"以下であった("LessThanOrEqualToThreshold")場合、"minClusterSize"="2"に自動的にスケール・インし、クールダウンのために"30"分間待機します
レスポンス・ヘッダーの例
次にレスポンス・ヘッダーの例を示します。
HTTP/1.1 202 Accepted Date: Thu, 19 May 2016 00:53:16 GMT Content-Length: 0 Content-Type: application/json
レスポンス本文の例
JSON形式で返されるレスポンスの例を次に示します。
{ "name": "JCSPolicy", "description": "JCS1 Auto Scaling Policy", "policies": [ { "operation": "scaleOut", "alarm": { "metricName": "CPUUtilization", "metricUnit": "percent", "statistic": "AVG", "comparisonOperator": "GreaterThanOrEqualToThreshold", "threshold": "80", "sampleCount": "3", "sampleFrequency": "10", "breachedOnInstance": "ALL" }, "coolDownPeriod": "30", "maxClusterSize": "4" }, { "operation": "scaleIn", "alarm": { "metricName": "CPUUtilization", "metricUnit": "percent", "statistic": "AVG", "comparisonOperator": "LessThanOrEqualToThreshold", "threshold": "40", "sampleCount": "3", "sampleFrequency": "10", "breachedOnInstance": "ANY" }, "coolDownPeriod": "30", "minClusterSize": "2" } ], "version": 1, "status": "Active", "startTime": "2016-05-19T07:28:54.422+0000" }
レスポンス本文の例(検証でエラーが発生した)
ポリシーに検証エラーがあった場合にJSON形式で返されたレスポンスの例を次に示します。
{ "status": "Bad Request", "errors": [ { "detail": "[statistic] is invalid, valid values are [AVG,MIN,MAX].", "source": "statistic" }, { "detail": "[threshold] is invalid, it should be positive integer in the range of [1-100].", "source": "threshold" } ] }