サービス・インスタンスのスケーリング
次の手順で説明するように、REST APIを使用してOracle Java Cloud Serviceインスタンスをオンデマンドでスケーリングできます。
クラスタ: ノードを追加または削除します(後述の「クラスタのスケーリング」を参照)
管理サーバーまたは管理対象サーバー・ノード: 計算処理シェイプの変更、またはストレージの追加を行います(ストレージの削除はできません。後述の「ノードのスケーリング」を参照)
Coherenceデータ層: 容量単位を追加または削除します(「サービス・インスタンスのCoherenceデータ層のスケーリング」を参照)
Oracle Java Cloud Serviceインスタンスの状態を監視して、スケーリングのタイミングを決定できます(「サービス・インスタンスの監視」を参照)。
スケーリングする前に、次の点を考慮してください。
スケーリングは、Oracle Java Cloud Service - Virtual Imageインスタンスではサポートされません。 WebLogic Server Standard Editionに基づくOracle Java Cloud Serviceインスタンスの場合、ノードのスケーリングはサポートされます。ただし、クラスタのスケーリングはサポートされません。
大きいメモリー・シェイプを持ち、管理対象サーバーのJVMの初期Javaヒープ・サイズに非常に高い値が設定されているサービス・インスタンスをスケール・ダウンする場合、ノードのスケール・ダウンがブロックされることがあります。 そのようなサービス・インスタンスをスケール・ダウンする前に、ノードのスケーリングのignoreManagedServerHeapErrorリクエスト・パラメータを参照してください。
Oracle Public Cloudの場合: Oracle Exadataデータベースを使用するサービス・インスタンスのクラスタをスケール・アウトする場合は、スケール・アウト・リクエストを開始する前に、追加する管理対象サーバーのIP予約を取得する必要があります。 IP予約なしではクラスタをスケール・アウトできません。 1つ以上のIP予約のリクエストを発行する方法の詳細は、Database Exadata Cloud ServiceでJava Cloud Serviceをプロビジョニングするための認証されたIPをリクエストする方法(MOSノート2163568.1)というMy Oracle Supportのドキュメントを参照してください。
注意: cURLコマンドの例では、URL構造https://rest_server_url/resource-pathが使用されています。ここで、rest_server_urlはアイデンティティ・ドメインまたはテナント名を問い合せるためのOracle Public CloudまたはOracle Cloud MachineのRESTサーバーです。 Oracle Public CloudまたはOracle Cloud Machineに使用する適切なURL構造の詳細は、リクエストの送信を参照してください。
クラスタのスケーリング
インスタンスをスケーリングする前に、現在定義されている管理対象サーバーを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナントを識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
詳細は「すべての管理対象サーバーの表示」を参照してください。
JSON形式のレスポンス本文の例を次に示します。 この例では、1つの管理対象サーバーがあります。
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc3", "nodeType":"WLS", "isAdmin":true, "hostname":"123.456.789.123", "status":"Ready", "storageAllocated":74752, "creationDate":"Jun 7, 2016 9:22:43 PM" } ], "serverInProgress":[] }
サービス・インスタンスをスケール・アウトし、既存のクラスタExampleI_clusterにもう1つの管理対象サーバーを追加します。
curl -i -X POST -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers/ExampleI_cluster
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(POST)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
オプションで、新しいクラスタ名を指定し、createClusterIfMissing問合せパラメータをtrueに設定できます。 これにより、スケール・アウト操作中に新しいクラスタが作成され、新しいノードが新しいクラスタに追加されます。
Oracle Public Cloudの場合: Oracle Exadataデータベースを使用するサービス・インスタンスのクラスタをスケール・アウトしている場合は、リクエストに問合せパラメータipReservation=ip_reservation_nameを使用して、予約されたIPアドレスを新しいノードに割り当てる必要があります。 例:
curl -i -X POST -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers/ExampleI_cluster?ipReservation=ipres02
スケール・アウトの詳細は、「クラスタのスケール・アウト」を参照してください。
JSON形式で返されるレスポンス・ドキュメントの例を次に示します。
{ "status": "New", "details": { "message": "JAAS-SCALING-037: Scale out Job (ID: 866230) for service [ExampleInstance] in cluster [ExampleI_cluster] submitted", "jobId": "866230" } }
手順2のレスポンスで返されたジョブIDを使用して、スケーリング操作のステータスを確認します。 詳細は、「ジョブID別サーバー操作のステータスの表示」を参照してください。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers/history/job/866230
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
次の例では、レスポンス本文のコンテンツを示しています。 ステータスはRUNNINGであり、スケール・アウト操作がまだ進行中であることを意味します。
{ "canonicalUri":null, "actLog": { "activityLogId":484143, "serviceId":25421, "operation": { "operationId":25421, "operationType":"SCALE_OUT" }, "status":"RUNNING", "startDate":"Jul 27, 2016 9:17:03 PM", "endDate":null, "identityDomain":"ExampleIdentityDomain", "serviceName":"ExampleInstance", "serviceType":"jaas", "hostName":"exampleinstance-wls-2", "serverName":null, "serverType":"WLS", "jobId":866230, "summaryMessage":"ExampleI_server_2", "authDomain":"ExampleIdentityDomain", "authUser":"username", "initiatedBy":"USER", "messages":[ { "activityMessageId":776201, "activityDate":"Jul 27, 2016 9:17:03 PM", "stepName":"NEW", "message":"Activity Submitted" }, { "activityMessageId":776202, "activityDate":"Jul 27, 2016 9:17:08 PM", "stepName":"RUNNING", "message":"Activity Started" }, { "activityMessageId":776203, "activityDate":"Jul 27, 2016 9:17:12 PM", "stepName":"RUNNING", "message":"Scaling job for service [ExampleInstance] in cluster [ExampleI_cluster] with factor [1] is prepared." }, ... ... { "activityMessageId":776227, "activityDate":"Jul 27, 2016 9:27:40 PM", "stepName":"RUNNING", "message":"Orchestration is in ready state, new VM is up for server [ExampleI_server_2]" }, { "activityMessageId":776226, "activityDate":"Jul 27, 2016 9:27:40 PM", "stepName":"RUNNING", "message":"Started the required compute resources for WebLogic Server managed server [ExampleI_server_2]..." }, { "activityMessageId":776228, "activityDate":"Jul 27, 2016 9:27:40 PM", "stepName":"RUNNING", "message":"Completed submitting child job for checking managed server configuration " } ], "resourceType":"VM", "resourceId":22719, "resourceName":"exampleinstance-wls-2", "payload":null }, "messages":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}] }
スケール・アウトが成功すると、ステータスがSUCCEEDに変更されます。 スケーリング操作の完了後、管理対象サーバーのリストを参照して、新しい管理対象サーバーがクラスタに追加されたことを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers
ExampleI_server_2をリストに追加した、JSON形式のレスポンス本文の例を次に示します。
注意: デフォルトでは、管理対象サーバーの名前はドメイン名("domainName")の最初の8文字から生成され、次の形式になります。first8charsOfDomainName_server_n。nは1から始まり、管理対象サーバーを追加するたびにそれぞれが一意の名前になるように1ずつ増分されます。
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc3", "nodeType":"WLS", "isAdmin":true, "hostname":"123.456.789.123", "status":"Ready", "storageAllocated":74752, "creationDate":"Jun 7, 2016 9:22:43 PM" }, { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_2", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-2", "status":"Ready", "reservedIp":"", "jobId":"866230", "storageAllocated":54272, "creationDate":"Jul 27, 2016 9:19:21 PM" } ], "serverInProgress":[] }
Oracle Public Cloudの場合: Oracle Exadataデータベースを使用するサービス・インスタンスをスケール・アウトする場合は、IP予約名およびアドレスもクラスタ内の各管理対象サーバーに返されます。 例:
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc3", "nodeType":"WLS", "isAdmin":true, "hostname":"123.45.6.78", "status":"Ready", "reservedIpName":"ipres01", "reservedIpAddress":"10.222.333.17", "storageAllocated":47000, "creationDate":"May 11, 2016 3:58:40 PM" }, { "clusterName":"ExampleI_cluster"", "name":"ExampleI_server_2", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-2", "status":"Ready", "reservedIpName":"ipres02", "reservedIpAddress":"10.222.343.121", "storageAllocated":27000, "creationDate":"May 11, 2016 3:58:43 PM" } ], "serverInProgress:[] }
ステップ2で追加した管理対象サーバー、ExampleI_server_2を削除してサービス・インスタンスをスケール・インします。
curl -i -X DELETE -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers/ExampleI_server_2
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(DELETE)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
スケール・インの詳細は、「クラスタのスケール・イン」を参照してください。
Oracle Public Cloudの場合: Oracle Exadataデータベースを使用するサービス・インスタンスでスケーリングしている場合、管理対象サーバー・ノードが削除されると、ノードに関連付けられているIP予約が解放されますが削除されません。
JSON形式で返されるレスポンス・ドキュメントの例を次に示します。
{ "status": "New", "details": { "message": "JAAS-SCALING-044: Scaling in Job (ID: 20) server name [ExampleI_server_2] submitted for service [ExampleInstance]", "jobId": "20" } }
スケーリング操作の完了後、管理対象サーバーのリストを参照して、管理対象サーバーが削除されたことを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers
JSON形式のレスポンス本文の例を次に示します。 この例では、1つの管理対象サーバーがあり、ExampleI_server_2は削除されています。
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc3", "nodeType":"WLS", "isAdmin":true, "hostname":"123.456.789.123", "status":"Ready", "storageAllocated":74752, "creationDate":"Jun 7, 2016 9:22:43 PM" } ], "serverInProgress":[] }
ノードのスケーリング
ノードをスケーリングする前に、現在定義されている管理対象サーバーを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
詳細は「すべての管理対象サーバーの表示」を参照してください。
JSON形式のレスポンス本文の例を次に示します。 この例では、現在3つの管理対象サーバーが定義されています。
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc3", "nodeType":"WLS", "isAdmin":true, "hostname":"123.45.6.78", "status":"Ready", "storageAllocated":47000, "creationDate":"Jun 3, 2014 8:19:08 AM" }, { "clusterName":"ExampleI_cluster"", "name":"ExampleI_server_2", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-2", "status":"Ready", "storageAllocated":27000, "creationDate":"Jun 3, 2014 8:19:30 AM" }, { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_3", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-3", "status":"Ready", "jobId":"17", "storageAllocated":27000, "creationDate":"Jun 3, 2014 8:19:30 AM" }], "serverInProgress":[] }
手順1で返された出力で、ExampleI_server_1の計算処理シェイプとストレージ割当てが次のようになっていることを確認します。
計算処理シェイプ: OC3
ストレージ: 47000MB
計算処理シェイプ: OC4
ストレージ: バックアップ・ストレージ・ボリュームに1GBのストレージを追加します
注意: ストレージを追加できるのは、管理サーバー・ノードのバックアップ・ストレージ・ボリュームのみです。 この例では、ExampleI_server_1が管理サーバーのホストです。
最初に、スケール・アップ操作の詳細を定義するscale.jsonという名前のJSONドキュメントを作成する必要があります。
{ "additionalStorage" : "1", "scalingVolume" : "backup", "shape" : "oc4" }
リクエスト属性の詳細は、「ノードのスケーリング」を参照してください。
手順3で定義したJSONドキュメントを渡して、管理対象サーバーExampleI_server_1をスケール・アップします。
curl -i -X PUT -u username:userPassword1! -d @scale.json -H "Content-Type:application/json" -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/ExampleI_server_1
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(PUT)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
- コンテンツ・タイプをapplication/jsonとして識別し、アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
詳細は、「ノードのスケーリング」を参照してください。
JSON形式で返されるレスポンス・ドキュメントの例を次に示します。
{ "status": "New", "details": { "message": "scaleup.job.submitted", "jobId": "22" } }
手順3のレスポンスで返されたジョブIDを使用して、スケーリング操作のステータスを確認します。 詳細は、「ジョブID別サーバー操作のステータスの表示」を参照してください。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers/history/job/22
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。
{ "actLog": { "activityLogId":2021, "serviceId":109, "operation":{ "operationId":109, "operationType":"SCALE_UP" }, "status":"RUNNING", "startDate":"Jul 30, 2015 8:48:04 PM", "endDate":null, "identityDomain":"ExampleIdentityDomain", "serviceName":"ExampleInstance", "hostName":null, "serverName":null, "serverType":null, "jobId":12301, "summaryMessage":"SCALE_UP", "messages":[ { "activityMessageId":2350, "activityDate":"Jul 30, 2015 8:48:04 PM", "stepName":"NEW", "message":"Activity Submitted" }, { "activityMessageId":2351, "activityDate":"Jul 30, 2015 8:48:13 PM", "stepName":"RUNNING", "message":"Activity Started" }, { "activityMessageId":2352, "activityDate":"Jul 30, 2015 8:48:31 PM", "stepName":"RUNNING", "message":"Stopping service member [\ExampleI_server_1] of service [ExampleInstance]..." }] }, "messages":[{},{},{}] }
スケール・アップ操作の完了後、管理対象サーバーのリストを参照して、ExampleI_server_1がスケール・アップされたことを確認します。
curl -i -X GET -u username:userPassword1! -H "X-ID-TENANT-NAME:ExampleIdentityDomain" https://rest_server_url/paas/service/jcs/api/v1.1/instances/ExampleIdentityDomain/ExampleInstance/servers
cURLコマンドラインで次のオプションを指定します。
出力にHTTPヘッダーを含める-iオプション。 このオプションは省略可能です。
リクエストのタイプ(GET)を指定する-Xオプション。
認証のためのOracle Java Cloud Serviceアカウントのユーザー名とパスワードを指定する-uオプション。
アイデンティティ・ドメインIDまたはテナント名を識別するカスタム・ヘッダーX-ID-TENANT-NAMEを定義する-H。
JSON形式のレスポンス本文の例を次に示します。 この例では、ExampleI_server_1がスケール・アップされています。
{ "servers":[ { "clusterName":"ExampleI_cluster", "name":"ExampleI_server_1", "shape":"oc4", "nodeType":"WLS", "isAdmin":true, "hostname":"123.45.6.78", "status":"Ready", "storageAllocated":48024, "creationDate":"Jun 3, 2014 8:19:08 AM" }, { "clusterName":"ExampleI_cluster"", "name":"ExampleI_server_2", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-2", "status":"Ready", "storageAllocated":27000, "creationDate":"Jun 3, 2014 8:19:30 AM" }, { "clusterName":"ExampleI_cluster"", "name":"ExampleI_server_3", "shape":"oc3", "nodeType":"WLS", "isAdmin":false, "hostname":"exampleinstance-wls-3", "status":"Ready", "storageAllocated":27000, "creationDate":"Jun 3, 2014 8:19:30 AM" }], "serverInProgress":[] }
手順4から6までを繰り返して、クラスタ内の他のノードをスケール・アップし、それらがすべて同等であることを確認します。