インスタンス・プールの操作
インスタンス・プールにより、コンピュート・インスタンスの管理が簡略化されます。 インスタンス・プールは、グループとして管理されるコンピュート・インスタンスのセットを定義します。 インスタンスをグループとして管理すると、インスタンスを効率的にプロビジョニングし、インスタンスの状態を管理できます。
インスタンス・プールを手動で更新することで、インスタンスのプロビジョニングまたは削除、インスタンスの停止または起動に加えて、スケジュールに従って自動的にスケーリングされるようにプールを構成できます。 「スケジュール・ベースの自動スケーリングの使用」を参照してください。
インスタンス・プールの作成
インスタンス・プールは、同じリージョン内のコンピュート・インスタンスのグループです。
プール・オブジェクトに対してリセットや終了などの操作を実行すると、プールのメンバーであるすべてのインスタンスでその操作が実行されます。 プールのメンバーである個々のインスタンスでこれらの操作を実行しても、他のメンバー・インスタンスには影響しません。
インスタンス・プールを作成するには、インスタンス構成と配置構成が必要です。 プール更新でプールに追加されるインスタンスは、異なるインスタンスおよび配置構成で作成できます。
プール内のインスタンスの場合、インスタンス構成のdisplayName
プロパティの値は無視されます。 プール内のインスタンスの名前はinst-aaaaa-pool_name
で、aaaaa
は5つのランダムな英数字です。
配置構成
インスタンス構成に加えて、プールの作成には配置構成が必要です。 配置構成に指定された値は、インスタンス構成で指定された値をオーバーライドします。
配置構成では、フォルト・ドメイン、プライマリ・サブネットおよびセカンダリVNICサブネットを指定できます。
フォルト・ドメイン
インスタンス構成または配置構成でフォルト・ドメインを指定しない場合、プール・インスタンスに最適なフォルト・ドメインが自動的に選択されます。 単一のフォルト・ドメインのみを指定した場合、すべてのインスタンスは、そのフォルト・ドメインにのみ配置されます。 複数のフォルト・ドメインを指定した場合、プール・インスタンスはそれらのフォルト・ドメインに均等に配置され、プールに対してより優れた高可用性が提供されます。 1つのフォルト・ドメインで追加のインスタンスに対応できない場合、インスタンスの作成は停止します。 システムは、別のフォルト・ドメインより多くのインスタンスを1つのフォルト・ドメインに配置しません。
リソースの制約のために一部のインスタンスを起動できない場合、それらのインスタンスはプロビジョニング状態のままであり、プールはスケーリング状態のままです。 size
インスタンスが起動されると、プールは実行中状態に遷移できます。 プールがスケーリング中状態にある間は、実行中状態のプール・インスタンスを使用できます。
リソース制約のため、プール・インスタンスの起動に失敗した場合に実行できるアクションの例を次に示します:
-
プールを更新し、「インスタンス数」または
size
値を減らします。 -
プールを更新し、「コンピュートWeb UI」または新しいインスタンスまたは配置構成でフォルト・ドメインの指定を変更します。
-
プールを更新して、必要なリソースを少なくするインスタンスを作成する新しいインスタンス構成を指定します。
-
リソース制約のためにプール・インスタンスの起動に失敗しているのと同じフォルト・ドメイン内のプールのメンバーではないインスタンスを停止します。
-
リソース制約のため、プール・インスタンスの起動に失敗した同じフォルト・ドメイン内のプールのメンバーではないインスタンスを終了します。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、Computeをクリックし、Instance Configurationsをクリックします。
-
このプールの作成に使用するインスタンス構成がリストされていない場合、インスタンス構成リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、正しいコンパートメントを選択します。
-
このプール内のインスタンスに使用するインスタンス構成をクリックします。
-
インスタンス構成の詳細ページの「リソース」ボックスで、「アタッチされたインスタンス・プール」をクリックします。 インスタンス・プール・リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、他のコンパートメント内のプールをリストします。
Create Instance Poolボタンをクリックします。
-
インスタンス・プールを
instance_configuration_name
にアタッチ・ダイアログで、次の情報を入力します:-
名前: インスタンス・プールの名前を入力します。 この名前は一意である必要はありません。 この名前は、作成されたインスタンスの名前で使用されます。 プールの名前を指定しない場合、インスタンス・プールのデフォルト名は
instancepoolYYYYMMDDhhmmss
です。ここで、YYYYMMDDhhmmss
は作成日時です。 -
コンパートメントに作成: このインスタンス・プール定義のコンパートメントを選択します。 プール内のインスタンスは、インスタンス構成で指定されたコンパートメントに作成されます。
-
インスタンス数: このインスタンス・プール内に作成するインスタンスの数を指定します。
-
プール配置: このインスタンス・プール内のインスタンスのフォルト・ドメイン、VCNおよびサブネットを選択します。 VCNおよびサブネットを選択する別のコンパートメントを選択できます。 このセクションの冒頭にある配置構成およびフォルト・ドメインの説明を参照してください。
-
ロード・バランサ: 「ロード・バランサのアタッチ」ボックスをクリックして、このプールのロード・バランシングを指定します。 ロード・バランシングの詳細は、「Load Balancer as a Service」を参照してください。 次の情報を指定します:
-
このプールにアタッチするロード・バランサを選択します。
-
これらのプール・インスタンスを追加するバックエンド・セットを選択します。
-
ロード・バランサがトラフィックを転送する必要があるインスタンスのポート番号を入力します。
-
インスタンスをバックエンド・セットに追加するときに使用するVNICを選択します。 プライベートIPアドレスが使用されます。
別のロード・バランサをアタッチするには、「ロード・バランサの追加」ボタンをクリックします。 インスタンス・プールの作成後にロード・バランサをアタッチするには、「インスタンス・プールのロード・バランサ・アタッチメントの管理」を参照してください。
-
-
タグ付け: (オプション) リソース作成時のタグの追加の説明に従って、このインスタンス・プールの定義済タグまたはフリー・フォーム・タグを追加します。 タグは後で適用することもできます。
これらのタグは、メンバー・インスタンスではなく、プール定義に適用されます。
-
-
ダイアログで「インスタンス・プールの作成」ボタンをクリックします。
新しいプールの詳細ページが表示されます。 リクエストされたインスタンスは、作成時に「リソース」セクションの「アタッチされたインスタンス」表にリストされます。 新しいインスタンスの名前は
inst-aaaaa-pool_name
で、aaaaa
は5つのランダムな英数字です。 プールの名前を変更してから、新しいインスタンスをプールに追加すると、新しいインスタンスには新しい名前が付けられます。リソース・ボックスの作業リクエストをクリックして、インスタンス・プール作成のステータスを確認します。
OCI CLIの使用
-
次の情報を取得します:
-
インスタンス・プール定義を作成するコンパートメントのOCID:
oci iam compartment list
プール内のインスタンスは、インスタンス構成で指定されたコンパートメントに作成されます。
-
使用するインスタンス構成のOCID:
oci compute-management instance-configuration list
-
インスタンス・プールのサイズ。 これは、インスタンス・プール内のコンピュート・インスタンスの数です。
-
このプールのロード・バランシングが必要な場合は、次の情報を取得します:
-
このプールにアタッチするロード・バランサのOCIDと、これらのプール・インスタンスを追加するバックエンド・セットの名前:
oci lb load-balancer list
-
バックエンド・セットの作成時に使用するポート値。
-
ロード・バランサに関連付けるVNIC。 値は、
PrimaryVnic
、またはインスタンス・プールに関連付けられているインスタンス構成上のセカンダリVNICのいずれかの表示名です。
-
-
-
--placement-configurations
オプションの引数を作成します。このセクションの冒頭にある配置構成およびフォルト・ドメインの説明を参照してください。
配置構成引数の内容を表示するには、次のコマンドを使用します:
$ oci compute-management instance-pool create \ --generate-param-json-input placement-configurations
-
このプールのロード・バランシングを行う場合は、
--load-balancers
オプションの引数を構成します。ロード・バランサ引数の内容を表示するには、次のコマンドを使用します:
$ oci compute-management instance-pool create \ --generate-param-json-input load-balancers
インスタンス・プールの作成後にロード・バランサをアタッチするには、「インスタンス・プールのロード・バランサ・アタッチメントの管理」を参照してください。
-
インスタンス・プールcreateコマンドを実行します。
構文:
oci compute-management instance-pool create -c compartment_OCID \ --instance-configuration-id instance_configuration_OCID \ --placement-configurations file://placement_configuration.json \ --size number_of_instances
例:
$ oci compute-management instance-pool create \ --compartment-id ocid1.compartment.unique_ID \ --display-name support-pool \ --instance-configuration-id ocid1.instanceConfiguration.unique_ID \ --placement-configurations file://./placement_configurations.json \ --load-balancers file://./load_balancers.json --size 10
--display-name
オプションの値はプールの名前です。 プール名は一意である必要はありません。--display-name
オプションに値を指定しない場合、インスタンス・プールのデフォルト名はinstancepoolYYYYMMDDhhmmss
で、YYYYMMDDhhmmss
は作成日時です。プール名はインスタンスの名前で使用されます。 プール内のインスタンスは
inst-aaaaa-pool_name
という名前で、aaaaa
は5文字のランダムな英数字です。 プールの名前を変更してから、新しいインスタンスをプールに追加すると、新しいインスタンスには新しい名前が付けられます。このコマンドの出力は、
instance-pool get
コマンドの出力と同じです。 プール内のインスタンスのリストは表示されません。このプールに属するインスタンスをリストするには、次のコマンドを使用します:
$ oci compute-management instance-pool list-instances -c compartment_OCID \ --instance-pool-id instance_pool_OCID
各インスタンスの出力は、
instance get
コマンドの出力と比較して省略されます。次のコマンドは、指定されたインスタンスについてのみ、同じ省略された出力を表示します:
$ oci compute-management instance-pool-instance get --instance-id ocid1.instance.unique_ID \ --instance-pool-id ocid1.instancePool.unique_ID
スケジュール・ベースの自動スケーリングの使用
インスタンス・プールの自動スケーリングを使用すると、インスタンス・リソースの使用を効果的に管理できます。
インスタンス・プールには、スケジュールに従って次の方法でインスタンス・プールをスケーリングする自動スケーリング構成およびポリシーを設定できます:
-
スケール・アウト: インスタンスの追加
-
スケール・イン: インスタンスの削除
-
ライフサイクルまたはパワー・アクション: インスタンスの停止、起動または再起動
インスタンス・プールのスケール・アウトまたはスケール・イン時には、「インスタンス・プールの更新」の説明に従ってインスタンスが作成または終了します。
ポリシーでは、自動スケーリングのスケジュールと実行する特定のアクションを定義します。 自動スケーリング構成には、最大50のスケジュール・ベースの自動スケーリング・ポリシーがあり、それぞれに異なるスケジュールとターゲット・プール・サイズまたはライフサイクル・アクションがあります。 1つのインスタンス・プールの自動スケーリング構成は1つのみです。
「インスタンス・プールの更新」および「インスタンス・プール内のインスタンスの停止および起動」の説明に従ってプール・サイズまたはライフサイクル状態を手動で変更した場合、自動スケーリングによって、プール・サイズまたはライフサイクル状態が、スケジュールされた自動スケーリング・ポリシーが次回実行されたときにポリシーで設定された値にリセットされます。
ノート:
自動スケーリングを使用するには、OCI CLI 3.15.1以降およびOracle Cloud Infrastructure Python SDK 2.80.0以降がインストールされていることを確認してください。
複数のスケジュール管理
自動スケーリング構成を作成して有効にすると、自動スケーリング・サービスによって、構成内のポリシーのスケジュール・ルールが評価されます。
同じ構成の複数のポリシーが同時に実行される場合、ライフサイクル状態ポリシーは1つのみで、プール・サイズ・ポリシーは1つのみ実行されます。 ライフサイクル状態ポリシーが最初に実行されます。
同じ構成の複数のライフサイクル状態ポリシーが同時に実行されると、優先度が最も高いアクションのポリシーが実行されます。 次のリストでは、アクションの優先度が最高から最低の順に表示されます:
-
強制再起動
-
再起動します。
-
起動
-
強制停止
同じ構成の複数のプール・サイズ・ポリシーが同時に実行されると、最大のプール・サイズを指定するポリシーが実行されます。
自動スケーリング構成の作成
自動スケーリング構成には、指定されたプール内のインスタンスの追加または削除、プール内のすべてのインスタンスの停止、起動または再起動をスケジュールするポリシーが含まれます。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
「自動スケーリング構成の作成」ボタンをクリックします。
-
「自動スケーリング構成の作成」ダイアログで、次の情報を入力します:
-
名前: 自動スケーリング構成の名前を入力します。
-
コンパートメントに作成: 自動スケーリング構成を作成するコンパートメントを選択します。
-
インスタンス・プール: この自動スケーリング構成でスケーリングするインスタンス・プールを選択します。
-
自動スケーリング・ポリシー: ポリシーごとに、次の情報を指定します:
-
実行する処理: 「Lifecycle Stateの変更」または「スケール・プール・サイズ」を選択します。
-
ポリシー名: ポリシーの名前を入力します。
-
ライフサイクル処理: 「実行するアクション」に「Lifecycle Stateの変更」を選択した場合は、このポリシーの実行時にプールのすべてのインスタンスを遷移する次の状態のいずれかを選択: 開始、停止、ソフト・リセット、リセット。
-
インスタンス・プール制限: 「実行するアクション」に「スケール・プール・サイズ」を選択した場合は、プール・サイズの値を入力します。
-
スケジュールの有効化: デフォルトでは、「スケジュール有効」ボックスが選択されており、次回スケジュールされた時間にポリシーを実行できるようになります。 このポリシーを無効にするには、ボックスの選択を解除します。
-
ポリシー・スケジュール: 「分」、「時間」、「日付」、「月」、「曜日」および「年」の値を入力します。 すべてのスケジュール時間をUTCで指定します。 詳細は、「スケジュール・ベースの自動スケーリング・ポリシーの作成」を参照してください。
別のポリシーを追加するには、「ポリシーの追加」ボタンをクリックします。 また、「スケジュール・ベースの自動スケーリング・ポリシーの作成」で説明するように、自動スケーリング構成の作成後にポリシーを追加することもできます。
ポリシーを削除するには、そのポリシーのごみ箱アイコンをクリックします。
-
-
タグ付け: (オプション) リソース作成時のタグの追加の説明に従って、このインスタンスの定義済タグまたはフリー・フォーム・タグを追加します。 タグは後で適用することもできます。
-
「送信」をクリックします。
新しい自動スケーリング構成の詳細ページが表示されます。
詳細ページで、クール・ダウン期間の値を無視します。 クール・ダウン期間は、スケジュール・ベースの自動スケーリング構成には適用されません。
新しい自動スケーリング構成はデフォルトで有効になっています。 構成を無効にするには、「自動スケーリング構成の更新」を参照してください。
-
OCI CLIの使用
-
次の情報を取得します:
-
この自動スケーリング構成を作成するコンパートメントのOCID:
oci iam compartment list
-
この自動スケーリング構成で管理されるインスタンス・プールのOCID:
oci compute-management instance-pool list
-
-
コマンドのすべての入力を含むファイルを作成します。
コマンド入力の内容と形式を表示するには、次のコマンドを使用します:
$ oci autoscaling configuration create \ --generate-full-command-json-input > autoscalingCfgCreate.json
resource
プロパティは必須であり、この自動スケーリング構成で管理されるインスタンス・プールのOCIDです。 このリソースのtype
は、instancePool
である必要があります。自動スケーリング構成を作成するには、少なくとも1つのポリシーが必要です。 自動スケーリング構成の作成後にポリシーを追加するには、「スケジュール・ベースの自動スケーリング・ポリシーの作成」を参照してください。
オプションの表示名は1-255文字であり、一意である必要はなく、更新できます。
-displayName
に値を指定しない場合、自動スケーリング構成のデフォルト名はautoscalingConfigurationYYYYMMDDhhmmss
で、instanceconfigurationYYYYMMDDhhmmss
は作成日時です。自動スケーリング構成は、デフォルトで有効になっています。 構成を無効にするには、
isEnabled
をfalse
に設定します。ノート:
coolDownInSeconds
、capacity
min
またはmax
には値を指定しないでください。 これらのプロパティは、スケジュール・ベースの自動スケーリング構成には適用されません。cool-down-in-seconds
、capacity
min
およびmax
のデフォルト値は、作成された自動スケーリング構成に表示されますが、スケジュール・ベースの自動スケーリングには使用されません。次に、1つのポリシーを持つ自動スケーリング構成作成入力ファイルの例を示します:
{ "compartmentId": "ocid1.compartment.unique_ID", "displayName": "salesPoolCfg", "policies": { "displayName": "reboot policy", "executionSchedule": { "expression": "0 0 2 ? * 1#1 *", "timezone": "UTC", "type": "cron" }, "policyType": "scheduled", "resourceAction": { "actionType": "power", "action": "SOFTRESET" } }, "resource": { "id": "ocid1.instancePool.unique_ID", "type": "instancePool" } }
-
コマンドを実行して、自動スケーリング構成を作成します。
構文:
oci autoscaling configuration create --compartment-id compartment_OCID \ --from-json file://input_file.json
例:
$ oci autoscaling configuration create --c ocid1.compartment.unique_ID \ --from-json file://./salesPoolCfg.json { "data": { "compartment-id": "ocid1.compartment.unique_ID", "cool-down-in-seconds": 300, "defined-tags": {}, "display-name": "salesPoolCfg", "freeform-tags": {}, "id": "ocid1.autoScalingConfiguration.unique_ID", "is-enabled": true, "max-resource-count": null, "min-resource-count": null, "policies": { "capacity": null, "displayName": "reboot policy", "executionSchedule": { "expression": "0 0 2 ? * 1#1 *", "timezone": "UTC", "type": "cron" }, }, "id": "unique_ID", "is-enabled": true, "policy-type": "scheduled", "resourceAction": { "actionType": "power", "action": "SOFTRESET" }, "time-created": "2023-01-25T21:28:56.131801+00:00" }, "resource": { "id": "ocid1.instancePool.unique_ID", "type": "instancePool" }, "time-created": "2023-01-25T21:28:56.140747+00:00" }, "etag": "7c70532a-1d41-4861-a40f-bf840136a9c5" }
work-requests work-request get
コマンドを使用して、自動スケーリング構成の作成のステータスを確認します。
スケジュール・ベースの自動スケーリング・ポリシーの作成
自動スケーリング・ポリシーは、自動スケーリング構成の一部です。 スケジュール・ベースの自動スケーリング構成の各ポリシーには、スケジュールと、ターゲット・プール・サイズまたはライフサイクル・アクションがあります。
この項の手順では、自動スケーリング構成の作成とは別にポリシーを作成する方法について説明します。
ポリシーの設計
この項では、ポリシーの設計およびトラブルシューティングのヒントについて説明します。
プールのスケール・インとスケール・アウト、または停止と実行の間のプールの状態を変更する2つの個別のポリシーを作成します。
-
スケールの例: 1つのポリシーは高需要期間の開始時にプールに対して大きいサイズを指定し、2番目のポリシーは高需要期間の終了時に小さいプール・サイズを指定します。
-
状態の例: 1つのポリシーは、通常のコンピュート・ノード・メンテナンス期間の開始時にプール内のすべてのインスタンスを停止し、2番目のポリシーは、メンテナンス期間の終了時にプールを起動します。
ポリシー・スケジュールを次のように設計します:
-
cron
式を使用します。 自動スケーリングでは、「Quartz cronの実装」のようなcron実装を使用します。 すべてのフィールドに値が必要です。 日付や曜日などのフィールドが競合する場合は、一方に特定の値を使用し、もう一方に疑問符を使用します。 -
すべてのスケジュール時間をUTCで指定します。
-
「Cron式ジェネレータ &説明 - クォーツ」などのオンラインの
cron
式ジェネレータを使用して、スケジュール式を確認します。 -
ポリシー・スケジュールが競合しないようにします。 スケジュールの競合時に実行されるポリシーの説明は、「複数のスケジュール管理」を参照してください。
ポリシーの実行に失敗した場合、または実行に失敗した場合、次のステップを実行します:
-
自動スケーリング構成と自動スケーリング・ポリシーの両方が有効化されていることを確認します。
-
スケジュール式を確認します。 ポリシーは、実行しようとしたときに実行されるよう設定されていますか。 すべての式時間はUTCで指定する必要があることに注意してください。
-
ポリシーは、すでに実行されていたインスタンスを起動するように設定されていますか。それともすでに停止していたインスタンスを停止するように設定されていますか。
ポリシーの競合に加えて、任意の自動スケーリング・ポリシーとは別のプールで電源アクションが実行されている可能性があります。 この個別のパワー・アクションによって、ポリシー・アクションが成功するのを防ぐことができます。 ポリシー・パワー・アクションは再試行されません。
-
ポリシーはスケール・アウトするように設定されましたが、十分なリソースを使用できませんでしたか。
スケール・ポリシーによってプール・サイズが設定され、リソースが使用可能になると、プールは引き続きそのサイズに到達しようとします。
-
ポリシーで指定された操作は実行中か、実行を待機していますか。
-
プールの状態が「スケーリング中」、「開始中」、「停止中」または「再起動中」かどうかを確認します。これは、ポリシー操作がまだ実行中であることを示します。
-
状態変更操作が同じプールですでに実行されている間に状態変更操作を実行しようとすると、2番目の操作は実行に失敗します。
-
制限された数のプールが同時に状態を変更する場合があります。 すでに状態を変更しているプールが多すぎる場合、プールは状態の変更を開始するまで待機する必要があります。 インスタンスがシリアルに起動、停止または再起動されてから、より多くのインスタンスが関与する場合は、状態を変更する時間が長くなります。
-
制限された数のプールは、同時にサイズを変更できます。 他のプールがすでにサイズを変更している場合は、プールがスケーリングの開始を待機する必要がある場合があります。 インスタンスがシリアルに終了または作成されたため、より多くのインスタンスが関与する場合、スケーリングの時間が長くなります。 インスタンスの終了と作成は、どちらもバックグラウンド操作であり、プール・サイズがポリシーによって更新された後に開始するのに時間がかかります。
-
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
ポリシーを追加する構成がリストされていない場合は、自動スケーリング構成リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
ポリシーを追加する自動スケーリング構成の名前をクリックします。
-
自動スケーリング構成の詳細ページで、「リソース」セクションまでスクロールし、「自動スケーリング・ポリシー」をクリックして、「スケジュール済ポリシーの作成」ボタンをクリックします。
-
「ポリシーの作成」ダイアログで、次の情報を入力します:
-
名前: 新しい自動スケーリング・ポリシーの名前を入力します。
-
実行する処理: 「プール・サイズのスケール」または「すべてのインスタンスのライフサイクル状態の変更」を選択します。
-
プール・サイズのスケーリング: スケジュールされた時間にプールをスケーリングするインスタンスの数を入力します。
-
すべてのインスタンスのライフサイクル状態の変更: プール内のすべてのインスタンスをスケジュールされた時間に遷移させる状態を選択します。
-
スケジュールの有効化: デフォルトでは、「スケジュール有効」ボックスが選択されており、次回スケジュールされた時間にポリシーを実行できるようになります。 このポリシーを無効にするには、ボックスの選択を解除します。
-
-
実行スケジュール: この自動スケーリング・ポリシーを実装するスケジュールを定義します。 「ポリシーの設計」を参照してください。
-
-
「送信」ボタンをクリックします。
OCI CLIの使用
-
この自動スケーリング・ポリシーを追加する自動スケーリング構成のOCIDを取得:
oci autoscaling configuration list
-
ポリシー定義を含むファイルを作成します。
ファイルの内容と形式を表示するには、次のコマンドを使用します:
$ oci autoscaling policy create \ --generate-full-command-json-input > autoscalingPolicyCreate.json
ノート:
capacity
min
またはmax
には値を指定しないでください。 これらのプロパティは、スケジュール・ベースの自動スケーリング構成には適用されません。capacity
min
およびmax
のデフォルト値は、作成された自動スケーリング・ポリシーに表示されますが、スケジュール・ベースの自動スケーリングには使用されません。表示名は1-255文字であり、一意である必要はなく、更新できます。
ポリシー実行スケジュールの設定については、「ポリシーの設計」の参照を参照してください。
timezone
はUTC
で、type
はcron
である必要があります。ポリシーはデフォルトで有効になっています。
ポリシー・タイプは
scheduled
である必要があります。リソース・アクション・タイプは
power
で、アクションはSTOP
,START
,SOFTRESET
,RESET
のいずれかである必要があります。次に、自動スケーリング・ポリシーによる入力ファイルの作成の例を示します:
{ [ { "capacity": { "initial": 10 }, "displayName": "size 10", "executionSchedule": { "expression": "0 0 10 ? 1 2#2 *", "timezone": "UTC", "type": "cron" }, "isEnabled": true, "policyType": "scheduled" }, "capacity": { "initial": 30 }, "displayName": "size 30", "executionSchedule": { "expression": "0 0 7 ? 11 5#1 *", "timezone": "UTC", "type": "cron" }, "isEnabled": true, "policyType": "scheduled" }, { "displayName": "stop policy", "executionSchedule": { "expression": "0 0 7 ? JAN,APR,JUL,OCT 4#3 *", "timezone": "UTC", "type": "cron" }, "isEnabled": true, "policyType": "scheduled", "resourceAction": { "actionType": "power", "action": "STOP" } }, { "displayName": "start policy", "executionSchedule": { "expression": "0 0 13 ? JAN,APR,JUL,OCT 4#3 *", "timezone": "UTC", "type": "cron" }, "isEnabled": true, "policyType": "scheduled", "resourceAction": { "actionType": "power", "action": "START" } } ] }
-
コマンドを実行して、指定した自動スケーリング構成の新しいポリシーを作成します。
構文:
oci autoscaling policy create \ --auto-scaling-configuration-id autoscaling_configuration_OCID \ --from-json file://policy_definitions.json --policy-type scheduled
例:
$ oci autoscaling policy create \ --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID \ --from-json file://./salesPoolPolicies.json --policy-type scheduled
work-requests work-request get
コマンドを使用して、自動スケーリング・ポリシー作成コマンドのステータスを確認します。
自動スケーリング構成の更新
自動スケーリング構成の表示名、タグ、および自動スケーリング構成が有効かどうかを変更できます。
ポリシーを自動スケーリング構成に追加したり、既存のポリシーを更新するには、「スケジュール・ベースの自動スケーリング・ポリシーの作成」および「スケジュール・ベースの自動スケーリング・ポリシーの更新」を参照してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
更新する自動スケーリング構成がリストされていない場合は、自動スケーリング構成リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
更新する自動スケーリング構成に対して、「アクション」メニューをクリックし、「編集」をクリックします。
-
「自動スケーリング構成の更新」ダイアログで、変更を行います。 クール・ダウン期間の値を無視します。
-
「送信」ボタンをクリックします。
OCI CLIの使用
-
更新する自動スケーリング構成のOCIDを取得:
oci autoscaling configuration list
-
updateコマンドを実行します。
例:
$ oci autoscaling configuration update \ --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID \ --is-enabled false
work-requests work-request get
コマンドを使用して、更新操作のステータスを確認します。
スケジュール・ベースの自動スケーリング・ポリシーの更新
これらの手順では、指定された自動スケーリング構成で、指定された自動スケーリング・ポリシーを更新する方法について説明します。 ポリシー表示名、ターゲット・プール・サイズまたはライフサイクル・アクションのいずれか、および実行スケジュールを更新できます。 ポリシーを有効または無効にできます。
「コンピュートWeb UI」を使用すると、ポリシーを削除したり、新しいポリシーを追加できます。 OCI CLIを使用してポリシーを追加または削除するには、「スケジュール・ベースの自動スケーリング・ポリシーの作成」および「自動スケーリング・ポリシーの削除」を参照してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
ポリシーを更新する構成がリストされていない場合は、自動スケーリング構成リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
ポリシーを更新する自動スケーリング構成の名前をクリックします。
-
自動スケーリング構成の詳細ページで、「リソース」セクションまでスクロールし、「自動スケーリング・ポリシー」をクリックします。
-
更新するポリシーに対して、「Actions」メニューをクリックし、「Edit」をクリックします。
-
「ポリシーの更新」ダイアログで、ポリシー情報を変更します。
-
「送信」ボタンをクリックします。
OCI CLIの使用
-
次の情報を取得します:
-
この自動スケーリング・ポリシーを削除する自動スケーリング構成のOCID:
oci autoscaling configuration list
-
その自動スケーリング構成内の自動スケーリング・ポリシーのID:
oci autoscaling configuration get
-
-
更新されたポリシー定義を含むファイルを作成します。
ファイルの内容と形式を表示するには、次のコマンドを使用します:
$ oci autoscaling policy update \ --generate-full-command-json-input > autoscalingPolicyUpdate.json
ポリシー・プロパティの詳細は、「スケジュール・ベースの自動スケーリング・ポリシーの作成」を参照してください。
-
自動スケーリング・ポリシー更新コマンドを実行します。
構文:
oci autoscaling policy update \ --auto-scaling-configuration-id autoscaling_configuration_OCID \ --auto-scaling-policy-id autoscaling_policy_ID \ --from-json file://policy_definition.json --policy-type scheduled
例:
$ oci autoscaling policy update \ --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID \ --auto-scaling-policy-id ID \ --from-json file://./stop_policy.json --policy-type scheduled
work-requests work-request get
コマンドを使用して、ポリシー更新操作のステータスを確認します。
自動スケーリング構成の削除
これらの手順では、指定された自動スケーリング構成を削除する方法について説明します。
または、「自動スケーリング構成の更新」の説明に従って構成を無効にすることもできます。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
削除する自動スケーリング構成がリストされていない場合は、自動スケーリング構成リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
削除する自動スケーリング構成について、「アクション」メニューをクリックし、「削除」をクリックします。
OCI CLIの使用
-
削除する自動スケーリング構成のOCIDを取得:
oci autoscaling configuration list
-
自動スケーリング構成の削除コマンドを実行します。
例:
$ oci autoscaling configuration delete \ --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID --force
work-requests work-request get
コマンドを使用して、削除操作のステータスを確認します。
自動スケーリング・ポリシーの削除
これらの手順では、指定された自動スケーリング構成で、指定された自動スケーリング・ポリシーを削除する方法について説明します。
または、「スケジュール・ベースの自動スケーリング・ポリシーの更新」の説明に従って、構成内のポリシーを無効にすることもできます。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、「コンピュート」をクリックし、「自動スケーリング構成」をクリックします。
-
ポリシーを削除する自動スケーリング構成がリストされていない場合は、自動スケーリング構成リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
ポリシーを削除する自動スケーリング構成の名前をクリックします。
-
自動スケーリング構成の詳細ページで、「リソース」セクションまでスクロールし、「自動スケーリング・ポリシー」をクリックします。
-
削除するポリシーについて、「アクション」メニューをクリックし、「削除」をクリックします。
OCI CLIの使用
-
次の情報を取得します:
-
この自動スケーリング・ポリシーを削除する自動スケーリング構成のOCID:
oci autoscaling configuration list
-
その自動スケーリング構成内の自動スケーリング・ポリシーのID:
oci autoscaling configuration get
-
-
自動スケーリング・ポリシーの削除コマンドを実行します。
構文:
$ oci autoscaling policy delete \ --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID \ --auto-scaling-policy-id unique_ID --force
work-requests work-request get
コマンドを使用して、ポリシー削除操作のステータスを確認します。
インスタンス・プールの更新
インスタンス・プールを更新するときに、プールの名前、プールのサイズ、新しいインスタンスの作成に使用されるインスタンス構成、フォルト・ドメイン、VCNおよびサブネットを変更できます。
インスタンスをアタッチまたはデタッチするには、「インスタンス・プールへのインスタンスのアタッチ」および「インスタンス・プールからのインスタンスのデタッチ」を参照してください。
ロード・バランサをアタッチしたり、ロード・バランサ・アタッチメントをデタッチするには、「インスタンス・プールのロード・バランサ・アタッチメントの管理」を参照してください。
構成変更は既存のインスタンスには影響せず、構成変更は新規インスタンスにのみ影響します。 新しいインスタンスは、新しいインスタンス構成および配置構成を使用してプロビジョニングされます。
プールのサイズを増やすと、新しいインスタンスがプロビジョニングされます。 新しいインスタンスは、インスタンス構成または配置構成で指定されたフォルト・ドメイン全体で均等に起動されます。
プールのサイズを小さくすると、インスタンス構成または配置構成で指定されたフォルト・ドメイン全体でインスタンスが均等に終了されます。 各フォルト・ドメインでは、インスタンスは作成日順に最も古いものから順に終了します。
プールのサイズを小さくするときに終了するインスタンスを選択することはできません。 プールのメンバーである個々のインスタンスを終了する場合は、「インスタンスの終了」の説明に従って新しいインスタンスが自動的にプロビジョニングされ、プールが指定のプール・サイズに保持されます。
プールのサイズを増やし、リソース制約のために新しいインスタンスの一部をプロビジョニングできない場合、それらのインスタンスはプロビジョニング状態のままであり、すべてのインスタンスがプロビジョニングされるまでプールはスケーリング状態のままです。 「インスタンス・プールの作成」の推奨処置を参照してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、Computeをクリックし、Instance Poolsをクリックします。
-
更新するインスタンス・プールがリストに表示されない場合は、インスタンス・プール・リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、正しいコンパートメントを選択します。
-
更新するインスタンス・プールについて、「アクション」メニューをクリックし、「編集」オプションをクリックします。
-
「インスタンス・プールの更新」ダイアログで、変更を行います。
-
編集が終了したら、ダイアログの「インスタンス・プールの更新」ボタンをクリックします。
OCI CLIの使用
-
更新するインスタンス・プールのOCIDを取得:
oci compute-management instance-pool list
-
インスタンス・プールの更新コマンドを実行します。
構文:
oci compute-management instance-pool update \ --instance-pool-id instance_pool_OCID \ options_with_values_to_update
例:
$ oci compute-management instance-pool update \ --instance-pool-id ocid1.instancePool.unique_ID \ --instance-configuration-id new_instance_configuration_OCID --size 20
このコマンドの出力は、
instance-pool get
コマンドの出力と同じです。
インスタンス・プールへのインスタンスのアタッチ
インスタンスをインスタンス・プールにアタッチすると、プール・サイズが大きくなります。
重要:
自動スケーリング構成がインスタンス・プールに関連付けられている場合は、自動スケーリング・ポリシーで、拡張プールに十分な大きさのターゲット・プール・サイズが定義されていることを確認してください。 スケジュールされた自動スケーリング・ポリシーの次回実行時に、ターゲット・プール・サイズはポリシーで設定された値にリセットされます。ポリシー・サイズが現在のサイズより小さい場合、インスタンスは削除されます。
ロード・バランサがプールにアタッチされている場合、インスタンスはロード・バランサにも追加されます。
インスタンスをインスタンス・プールにアタッチする前に、次の条件を確認してください:
-
アタッチするプールとインスタンスの両方が実行されています。
-
インスタンスが別のプールにアタッチされていない。
-
インスタンスは、プールと同じフォルト・ドメインにあります。
-
インスタンスのプライマリVNICは、プールと同じVCNおよびサブネットにあります。
-
セカンダリVNICが定義されている場合、インスタンスのセカンダリVNICは、プール内の他のインスタンスによって使用されるセカンダリVNICと同じVCNおよびサブネット内にあります。
プール・インスタンス構成に含まれていない、またはプール・インスタンス構成で指定されていないVCNおよびサブネットを使用しているフォルト・ドメイン内のインスタンスをアタッチするには、最初にインスタンス構成を更新してから、インスタンスをアタッチします。
OCI CLIの使用
-
コマンドの実行に必要な情報を取得します。
-
更新するインスタンス・プールのOCID:
oci compute-management instance-pool list
-
アタッチするインスタンスのOCID:
oci compute instance list
-
-
インスタンス・プールのattach instanceコマンドを実行します。
$ oci compute-management instance-pool-instance attach \ --instance-pool-id ocid1.instancePool.unique_ID \ --instance-id ocid1.instance.unique_ID
このコマンドの出力は、
instance get
コマンドの出力と同じです。instance-pool get
コマンドを実行すると、size
プロパティが増分されます。
インスタンス・プールからのインスタンスのデタッチ
インスタンスをプールからデタッチするときに、インスタンスを削除するか、プールとは別にインスタンスを保持するかを選択できます。 プールに新しいインスタンスを作成して、デタッチされたインスタンスを置換するかどうかを選択することもできます。 デタッチされたインスタンスを置換しない場合、プール・サイズは減少します。
ロード・バランサがプールにアタッチされている場合、インスタンスはロード・バランサから削除されます。
OCI CLIの使用
-
コマンドの実行に必要な情報を取得します。
-
更新するインスタンス・プールのOCID:
oci compute-management instance-pool list
-
デタッチするインスタンスのOCID:
oci compute-management instance-pool list-instances
-
-
インスタンス・プールのデタッチ・インスタンス・コマンドを実行します。
構文:
oci compute-management instance-pool-instance detach \ --instance-pool-id instance_pool_OCID --instance-id instance_OCID \ --is-auto-terminate [true|false] --is-decrement-size [true|false]
デフォルトの動作が不要な場合は、次のオプションを指定します:
-
--is-auto-terminate
-
true
の場合、インスタンスがインスタンス・プールからデタッチされたときに、インスタンスとそのアタッチされたブート・ボリュームを完全に終了(削除)します。 デフォルト値はfalse
です。 -
--is-decrement-size
-
true
の場合、インスタンスがインスタンス・プールからデタッチされると、プールsize
が減少します。 これはデフォルトです。false
の場合、既存のインスタンスがインスタンス・プールからデタッチされた後に、プールのインスタンス構成を使用して、新しい置換インスタンスをプロビジョニングします。 プール・サイズは、このデタッチ操作を実行する前と同じままです。
例:
次の例では、指定されたインスタンスがプールからデタッチされて終了し、プールに新しいインスタンスがプロビジョニングされます。
$ oci compute-management instance-pool-instance detach \ --instance-pool-id ocid1.instancePool.unique_ID \ --instance-id ocid1.instance.unique_ID \ --is-auto-terminate true --is-decrement-size false
このコマンドの出力は、
instance-pool get
コマンドの出力と同じです。 -
インスタンス・プールのロード・バランサ・アタッチメントの管理
次の手順では、ロード・バランサをインスタンス・プールにアタッチする方法、またはロード・バランサのアタッチメントをインスタンス・プールからデタッチする方法について説明します。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、Computeをクリックし、Instance Poolsをクリックします。
-
ロード・バランサ・アタッチメントを管理するインスタンス・プールがリストされていない場合は、インスタンス・プール・リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、正しいコンパートメントを選択します。
-
管理するプールの名前をクリックします。
-
インスタンス・プールの詳細ページで、「リソース」セクションまでスクロールし、「ロード・バランサ」をクリックします。
-
ロード・バランサをアタッチするには、「ロード・バランサのアタッチ」ボタンをクリックします。
「ロード・バランサのアタッチ」ダイアログで、「インスタンス・プールの作成」の説明に従ってロード・バランサ、バックエンド・セット、ポート番号およびVNICを指定し、「ロード・バランサのアタッチ」ボタンをクリックします。
-
ロード・バランサ・アタッチメントを削除するには、削除するロード・バランサ・アタッチメントの「アクション」メニューをクリックし、「デタッチ」をクリックします。
ロード・バランサ・アタッチメントは、少なくとも24時間(最大24.5時間)、「デタッチ済」状態のロード・バランサ・リストに引き続き表示されます。 ロード・バランサ・アタッチメントをデタッチするためにこれ以上のアクションは必要ありません。
-
OCI CLIの使用
-
ロード・バランサをインスタンス・プールにアタッチするには:
-
次の情報を取得します:
-
ロード・バランサをアタッチするインスタンス・プールのOCID:
oci compute-management instance-pool list
-
ロード・バランサのOCIDとバックエンド・セットの名前:
oci lb load-balancer list
-
バックエンド・セットの作成時に使用するポート値。
-
ロード・バランサに関連付けるVNIC。 値は、
PrimaryVnic
、またはインスタンス・プールに関連付けられているインスタンス構成上のセカンダリVNICのいずれかの表示名です。
-
-
インスタンス・プールのアタッチ・ロード・バランサ・コマンドを実行します。
例:
$ oci compute-management instance-pool attach-lb \ --instance-pool-id ocid1.instancePool.unique_ID \ --load-balancer-id ocid1.loadbalancer.unique_ID \ --backend-set-name BES1 --port 80 --vnic-selection PrimaryVnic
-
-
ロード・バランサをインスタンス・プールから削除またはデタッチするには:
-
次の情報を取得します:
-
インスタンス・プールのOCID
-
ロード・バランサのOCID
-
バックエンド・セット名
-
-
インスタンス・プールのデタッチ・ロード・バランサ・コマンドを実行します。
例:
$ oci compute-management instance-pool detach-lb \ --instance-pool-id ocid1.instancePool.unique_ID \ --load-balancer-id ocid1.loadbalancer.unique_ID \ --backend-set-name BES1
インスタンス・プールを
get
またはlist
にすると、ロード・バランサのアタッチメントは、少なくとも24時間、最大24.5時間、状態DETACHED
で表示されます。 ロード・バランサ・アタッチメントをデタッチするためにこれ以上のアクションは必要ありません。
-
インスタンス・プール内のインスタンスの停止および起動
プール・オブジェクトに対するリセットや停止などの操作の実行によって、プールのメンバーであるすべてのインスタンスでその操作が実行されます。 プールのメンバーである個々のインスタンスでこれらの操作を実行しても、他のメンバー・インスタンスには影響しません。
インスタンスが停止されると、コンピュート・リソースが解放され、インスタンスは切断され、コンピュート・ノードから割当て解除されます。 インスタンスが起動されると、コンピュート・サービスは、インスタンスが停止されたときと同じフォルト・ドメイン内のインスタンスを再起動します。
インスタンスは停止中もプール・サイズにカウントされ続け、停止したプール・インスタンスの構成は保持されます。 フォルト・ドメインの変更などの構成変更は、再起動またはリセットされるプール・インスタンスには適用されません。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、Computeをクリックし、Instance Poolsをクリックします。
-
管理するインスタンス・プールがリストされていない場合は、インスタンス・プール・リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、正しいコンパートメントを選択します。
-
管理するインスタンス・プールについて、「アクション」メニューをクリックし、「開始」、「停止」または「再起動」オプションをクリックします。
デフォルトでは、「停止」をクリックすると「ソフト停止」が選択され、「再起動」をクリックすると「ソフト・リブート」が選択されます。 プール内のすべてのインスタンスをただちに停止または再起動するには、確認ダイアログで「強制」オプションをクリックします。
プール内のすべてのインスタンスが停止、起動または再起動されます。 インスタンスの停止を準備する方法は、「インスタンスの停止、起動およびリセット」を参照してください。 インスタンスの停止および起動には最大5分かかる場合があります。
-
確認ダイアログで、「Start Instance Pool」、「Stop Instance Pool」、または「Reboot Instance Pool」ボタンをクリックします。
プール詳細ページのリソース・セクションで、作業リクエストをクリックして、インスタンス・プールの停止、起動または再起動のステータスを確認します。 アタッチされたインスタンスをクリックして、インスタンスのステータスを表示します。
OCI CLIの使用
-
管理するインスタンス・プールのOCIDを取得:
oci compute-management instance-pool list
-
インスタンス・プールのstop、startまたはresetコマンドを実行します。
構文:
oci compute-management instance-pool {start | stop | softstop | reset | softreset} \ --instance-pool-id instance_pool_OCID
これらのコマンドの説明については、次のように入力します:
$ oci compute-management instance-pool -h
例:
$ oci compute-management instance-pool reset --instance-pool-id ocid1.instancePool.unique_ID
work-requests work-request get
コマンドを使用して、インスタンス・プール管理の変更のステータスを確認します。
インスタンス・プールの削除
インスタンス・プールを削除すると、プールによって作成されたリソース(関連付けられているインスタンス、アタッチされているブート・ボリュームおよびブロック・ボリュームを含む)が完全に削除されます。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、Computeをクリックし、Instance Poolsをクリックします。
-
削除するインスタンス・プールがリストに表示されない場合は、インスタンス・プール・リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、正しいコンパートメントを選択します。
-
削除するインスタンス・プールについて、「アクション」メニューをクリックし、「削除」オプションをクリックします。
-
確認ダイアログで、Confirmボタンをクリックします。
プール内のすべてのインスタンスが終了します。 終了したインスタンスはアタッチされていないため、プール詳細ページのリソース・ボックスのアタッチされたインスタンスにはリストされません。
リソース・ボックスの作業リクエストをクリックして、インスタンス・プールの削除のステータスを確認します。 このプールにアタッチされたインスタンスは、「インスタンスの終了」で説明されているように、少なくとも24時間(最大24.5時間)は終了状態のインスタンス・リストに引き続き表示されます。
OCI CLIの使用
-
終了するインスタンス・プールのOCIDを取得:
oci compute-management instance-pool list
-
インスタンス・プール終了コマンドを実行します。
例:
$ oci compute-management instance-pool terminate \ --instance-pool-id ocid1.instancePool.unique_ID Are you sure you want to delete this resource? [y/N]: y { "etag": "34153f54-0cc9-4e6b-bc02-328166efbb4a", "opc-work-request-id": "ocid1.workrequest.unique_ID" }
work-requests work-request get
コマンドを使用して、インスタンス・プールの終了ステータスを確認します。 このプールにアタッチされたインスタンスは、「インスタンスの終了」で説明されているように、lifecycle-state
TERMINATED
のインスタンスlist
またはget
で、少なくとも24時間(最大24.5時間)は表示されたままです。