インスタンス・プールの作成

インスタンス・プールは、同じリージョン内のコンピュート・インスタンスのグループです。

プール・オブジェクトに対してリセットや終了などの操作を実行すると、プールのメンバーであるすべてのインスタンスでその操作が実行されます。 プールのメンバーである個々のインスタンスでこれらの操作を実行しても、他のメンバー・インスタンスには影響しません。

インスタンス・プールを作成するには、インスタンス構成と配置構成が必要です。 プール更新でプールに追加されるインスタンスは、異なるインスタンスおよび配置構成で作成できます。

プール内のインスタンスの場合、インスタンス構成のdisplayNameプロパティの値は無視されます。 プール内のインスタンスの名前はinst-aaaaa-pool_nameで、aaaaaは5つのランダムな英数字です。

配置構成

インスタンス構成に加えて、プールの作成には配置構成が必要です。 配置構成に指定された値は、インスタンス構成で指定された値をオーバーライドします。

配置構成では、フォルト・ドメイン、プライマリ・サブネットおよびセカンダリVNICサブネットを指定できます。

フォルト・ドメイン

インスタンス構成または配置構成でフォルト・ドメインを指定しない場合、プール・インスタンスに最適なフォルト・ドメインが自動的に選択されます。 単一のフォルト・ドメインのみを指定した場合、すべてのインスタンスは、そのフォルト・ドメインにのみ配置されます。 複数のフォルト・ドメインを指定した場合、プール・インスタンスはそれらのフォルト・ドメインに均等に配置され、プールに対してより優れた高可用性が提供されます。 1つのフォルト・ドメインで追加のインスタンスに対応できない場合、インスタンスの作成は停止します。 システムは、別のフォルト・ドメインより多くのインスタンスを1つのフォルト・ドメインに配置しません。

リソースの制約のために一部のインスタンスを起動できない場合、それらのインスタンスはプロビジョニング状態のままであり、プールはスケーリング状態のままです。 sizeインスタンスが起動されると、プールは実行中状態に遷移できます。 プールがスケーリング中状態にある間は、実行中状態のプール・インスタンスを使用できます。

リソース制約のため、プール・インスタンスの起動に失敗した場合に実行できるアクションの例を次に示します:

  • プールを更新し、「インスタンス数」またはsize値を減らします。

  • プールを更新し、「コンピュートWeb UI」または新しいインスタンスまたは配置構成でフォルト・ドメインの指定を変更します。

  • プールを更新して、必要なリソースを少なくするインスタンスを作成する新しいインスタンス構成を指定します。

  • リソース制約のためにプール・インスタンスの起動に失敗しているのと同じフォルト・ドメイン内のプールのメンバーではないインスタンスを停止します。

  • リソース制約のため、プール・インスタンスの起動に失敗した同じフォルト・ドメイン内のプールのメンバーではないインスタンスを終了します。

「コンピュートWeb UI」の使用

  1. ナビゲーション・メニューで、Computeをクリックし、Instance Configurationsをクリックします。

  2. このプールの作成に使用するインスタンス構成がリストされていない場合、インスタンス構成リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、正しいコンパートメントを選択します。

  3. このプール内のインスタンスに使用するインスタンス構成をクリックします。

  4. インスタンス構成の詳細ページの「リソース」ボックスで、「アタッチされたインスタンス・プール」をクリックします。 インスタンス・プール・リストの上にある「コンパートメント」ドロップダウン・メニューを使用して、他のコンパートメント内のプールをリストします。

    Create Instance Poolボタンをクリックします。

  5. インスタンス・プールをinstance_configuration_nameにアタッチ・ダイアログで、次の情報を入力します:

    • 名前: インスタンス・プールの名前を入力します。 この名前は一意である必要はありません。 この名前は、作成されたインスタンスの名前で使用されます。 プールの名前を指定しない場合、インスタンス・プールのデフォルト名はinstancepoolYYYYMMDDhhmmssです。ここで、YYYYMMDDhhmmssは作成日時です。

    • コンパートメントに作成: このインスタンス・プール定義のコンパートメントを選択します。 プール内のインスタンスは、インスタンス構成で指定されたコンパートメントに作成されます。

    • インスタンス数: このインスタンス・プール内に作成するインスタンスの数を指定します。

    • プール配置: このインスタンス・プール内のインスタンスのフォルト・ドメイン、VCNおよびサブネットを選択します。 VCNおよびサブネットを選択する別のコンパートメントを選択できます。 このセクションの冒頭にある配置構成およびフォルト・ドメインの説明を参照してください。

    • ロード・バランサ: 「ロード・バランサのアタッチ」ボックスをクリックして、このプールのロード・バランシングを指定します。 ロード・バランシングの詳細は、「Load Balancer as a Service」を参照してください。 次の情報を指定します:

      • このプールにアタッチするロード・バランサを選択します。

      • これらのプール・インスタンスを追加するバックエンド・セットを選択します。

      • ロード・バランサがトラフィックを転送する必要があるインスタンスのポート番号を入力します。

      • インスタンスをバックエンド・セットに追加するときに使用するVNICを選択します。 プライベートIPアドレスが使用されます。

      別のロード・バランサをアタッチするには、「ロード・バランサの追加」ボタンをクリックします。 インスタンス・プールの作成後にロード・バランサをアタッチするには、「インスタンス・プールのロード・バランサ・アタッチメントの管理」を参照してください。

    • タグ付け: (オプション) リソース作成時のタグの追加の説明に従って、このインスタンス・プールの定義済タグまたはフリー・フォーム・タグを追加します。 タグは後で適用することもできます。

      これらのタグは、メンバー・インスタンスではなく、プール定義に適用されます。

  6. ダイアログで「インスタンス・プールの作成」ボタンをクリックします。

    新しいプールの詳細ページが表示されます。 リクエストされたインスタンスは、作成時に「リソース」セクションの「アタッチされたインスタンス」表にリストされます。 新しいインスタンスの名前はinst-aaaaa-pool_nameで、aaaaaは5つのランダムな英数字です。 プールの名前を変更してから、新しいインスタンスをプールに追加すると、新しいインスタンスには新しい名前が付けられます。

    リソース・ボックスの作業リクエストをクリックして、インスタンス・プール作成のステータスを確認します。

OCI CLIの使用

  1. 次の情報を取得します:

    • インスタンス・プール定義を作成するコンパートメントのOCID: oci iam compartment list

      プール内のインスタンスは、インスタンス構成で指定されたコンパートメントに作成されます。

    • 使用するインスタンス構成のOCID: oci compute-management instance-configuration list

    • インスタンス・プールのサイズ。 これは、インスタンス・プール内のコンピュート・インスタンスの数です。

    • このプールのロード・バランシングが必要な場合は、次の情報を取得します:

      • このプールにアタッチするロード・バランサのOCIDと、これらのプール・インスタンスを追加するバックエンド・セットの名前: oci lb load-balancer list

      • バックエンド・セットの作成時に使用するポート値。

      • ロード・バランサに関連付けるVNIC。 値は、PrimaryVnic、またはインスタンス・プールに関連付けられているインスタンス構成上のセカンダリVNICのいずれかの表示名です。

  2. --placement-configurationsオプションの引数を作成します。

    このセクションの冒頭にある配置構成およびフォルト・ドメインの説明を参照してください。

    配置構成引数の内容を表示するには、次のコマンドを使用します:

    $ oci compute-management instance-pool create \
    --generate-param-json-input placement-configurations
  3. このプールのロード・バランシングを行う場合は、--load-balancersオプションの引数を構成します。

    ロード・バランサ引数の内容を表示するには、次のコマンドを使用します:

    $ oci compute-management instance-pool create \
    --generate-param-json-input load-balancers

    インスタンス・プールの作成後にロード・バランサをアタッチするには、「インスタンス・プールのロード・バランサ・アタッチメントの管理」を参照してください。

  4. インスタンス・プール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