すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:自動プロビジョニンググループ API を使用した ECS インスタンスの一括作成

最終更新日:Apr 28, 2026

CreateAutoProvisioningGroup を呼び出して、ゾーン、インスタンスタイプ、支払い方法をまたいで従量課金の ECS インスタンスを一括作成します。

背景情報

RunInstances は、従量課金の ECS インスタンスを作成する際に最も一般的に使用される API オペレーションです。単一の RunInstances 呼び出しでは最大 100 台のインスタンスを作成できますが、本番環境で 100 台を超えるインスタンスを RunInstances を使用して作成するとボトルネックが発生する可能性があります。RunInstances を使用したインスタンス作成時の問題点をご参照ください。

説明

すでに RunInstances を使用した一括作成におけるボトルネックを理解している場合は、「RunInstances を使用したインスタンス作成時の問題点」セクションをスキップしてください。

Alibaba Cloud では、大規模なインスタンス作成に対応するため、自動プロビジョニンググループを提供しています。単一の操作で、支払い方法、ゾーン、インスタンスタイプをまたいだインスタンスクラスターをデプロイするために、CreateAutoProvisioningGroup を呼び出してください。RunInstances と比較して、CreateAutoProvisioningGroup は多数の ECS インスタンスが必要なシナリオにより適しています。RunInstances と CreateAutoProvisioningGroup の比較および自動プロビジョニンググループのメリットをご参照ください。

RunInstances と CreateAutoProvisioningGroup の比較

以下の表では、RunInstances および CreateAutoProvisioningGroup API オペレーションを比較し、適切な方法を選択できるようにしています。

項目

RunInstances

CreateAutoProvisioningGroup

1 回のバッチで作成可能な最大インスタンス数

100

1,000 (最大 10,000 vCPU)

容量配信方式

インスタンス数

インスタンス数、vCPU コア数、インスタンスタイプの重みなど。

マルチゾーン対応

いいえ

はい

複数のインスタンスタイプ対応

いいえ

はい

複数のディスクタイプ対応

いいえ

はい

インスタンス作成ポリシー

いいえ

はい。以下のポリシーが提供されています。

  • 従量課金インスタンス

    • コスト最適化:指定されたタイプの中で最も低コストのインスタンスを作成します。

    • 優先度ベース:指定されたインスタンスタイプの優先度に基づいてインスタンスを作成します。

  • スポットインスタンス

    • コスト最適化:指定されたタイプの中で最も低コストのインスタンスを作成します。

    • バランス型ディストリビューション:指定されたゾーンにインスタンスを均等に分散します。

    • キャパシティ最適化ディストリビューション:スポットインスタンスの在庫状況に基づき、最適なタイプおよびゾーンからインスタンスを作成します。

配信安定性

リソース在庫の影響を強く受ける

複数のゾーンおよびインスタンスタイプにより在庫の影響を軽減

API 応答形式

同期

同期

RunInstances から CreateAutoProvisioningGroup への移行シナリオ例:

  • 単一ゾーンで単一のタイプのインスタンスを RunInstances を使用して作成していた場合、CreateAutoProvisioningGroup に切り替えて、複数のインスタンスタイプおよびゾーンの組み合わせを設定してください。

  • RunInstances を使用して手動でデプロイメント計画を構築していた場合、CreateAutoProvisioningGroup に切り替えて、ゾーン、インスタンスタイプ、ディスク構成をまたいだワンクリックデプロイメントを実現してください。内蔵の作成ポリシーを利用できます。

    たとえば、以前は RunInstances を使用して複数のインスタンスタイプおよびゾーンをトラバースすることで作成成功率を向上させていた場合、CreateAutoProvisioningGroup がこの処理を自動的に行います。組み合わせを設定し、ポリシーを選択すれば、グループがインスタンスを作成します。

重要

自動プロビジョニンググループは、一度に最大 1,000 台のインスタンスを作成できます。インスタンスタイプに対して WeightedCapacity を指定した場合、1 回の作成あたりの最大合計加重容量は 10,000 です。

RunInstances を使用した一括作成時の問題点

RunInstances オペレーションには、多数のインスタンスを作成する際に以下の制限があります。

問題点

説明

解決策

バッチ容量の制限

単一の RunInstances 呼び出しでは最大 100 台のインスタンスしか作成できません。

ループまたは同時実行で複数回オペレーションを呼び出します。

バッチ安定性の不足

RunInstances は単一ゾーンおよび単一のインスタンスタイプのみをサポートするため、以下の理由でバッチ作成が失敗する可能性があります。

  • 指定されたインスタンスタイプの在庫が不足している。

  • インスタンスタイプが廃止されている。

  • インスタンスタイプが特定のゾーンでのみ利用可能である。

  • インスタンスタイプが特定のディスクタイプを必要としている。

  • 在庫不足がバッチ作成失敗の主な原因です。DescribeAvailableResource を呼び出して、特定のインスタンスタイプおよびゾーンの在庫をクエリします。十分な在庫がある複数のゾーン・インスタンスタイプの組み合わせを確認した後、インスタンスを一括作成してください。このアプローチにより、配信安定性が向上します。

    例:複数の有効な組み合わせを確認した後、作成戦略を構築します。たとえば、組み合わせごとに 100 台のインスタンスを順次作成します。最初の組み合わせで 50 台しか作成できない場合は、残りの 50 台を 2 番目の組み合わせで作成します。

  • インスタンスタイプには使用量の制限があります。DescribeAvailableResource を呼び出して制限をクエリし、フォールトトレランス計画を作成します。

    説明

    インスタンスファミリーでもインスタンスタイプの制限を確認できます。

    例:ecs.g6e.large は ESSD ディスクのみをサポートしますが、cn-beijing-x ゾーンは ESSD をサポートしていません。

作成ポリシーが過度に単純

RunInstances は単一ゾーンおよび単一のインスタンスタイプのみをサポートします。マルチゾーンのディザスタリカバリや最低コストでの作成を実現するには、独自にデプロイメント計画を構築する必要がありますが、これには以下の問題があります。

  • 開発コストが高い。在庫不足やスケールアウト時のスポットインスタンスのコスト最適化などに対応する必要があります。

  • 安定性が低い。Alibaba Cloud リソース向けの専門的なデプロイメント計画を自前で構築・テストすると、本番環境でリスクが生じます。

ご自身で問題を解決するか、Alibaba Cloud までお問い合わせください。

自動プロビジョニンググループのメリット

自動プロビジョニンググループは、支払い方法、ゾーン、インスタンスタイプをまたいだワンクリックデプロイメントをサポートすることで、RunInstances の制限を解消します。安定したコンピューティング能力を提供し、スポットインスタンスの再取得リスクを軽減し、繰り返しの手動作成を不要にします。

メリット

説明

より高いバッチ上限

1 回のバッチで最大 1,000 台のインスタンスを作成できます。

複数のゾーン、インスタンスタイプ、ディスクタイプ

高可用性の一括作成のために、最大 10 種類のインスタンスタイプまたはゾーンの組み合わせと、最大 5 種類のディスクタイプを設定できます。

例:

バランス型ディストリビューションポリシーを使用すると、インスタンスがゾーン間で均等に分散されます。あるゾーンで作成が失敗した場合、グループは他の利用可能なゾーンで保留中のインスタンスを作成します。

複数のディスクタイプを指定すると、グループはそれらを優先順位に従って使用します。いずれかのタイプが利用できない場合、自動的に次のタイプに切り替えます。

説明

指定されたすべてのディスクタイプが利用できない場合、グループは別の作成方法に切り替えます。

複数の作成ポリシー

利用可能な作成ポリシー:

  • 従量課金インスタンス

    • コスト最適化:指定されたタイプの中で最も低コストのインスタンスを作成します。

    • 優先度ベース:指定されたインスタンスタイプの優先度に基づいてインスタンスを作成します。

  • スポットインスタンス

    • コスト最適化:指定されたタイプの中で最も低コストのインスタンスを作成します。

    • バランス型ディストリビューション:指定されたゾーンにインスタンスを均等に分散します。

    • キャパシティ最適化ディストリビューション:スポットインスタンスの在庫状況に基づき、最適なタイプおよびゾーンからインスタンスを作成します。

スポットインスタンスの可用性向上

スポットインスタンスは低価格ですが、価格変動や再取得の影響を受けます。自動プロビジョニンググループはコストを抑えながらスポットインスタンスの可用性を向上させます。

  • デフォルトのコスト最適化ポリシーでは、価格の昇順でインスタンスを作成します。

  • 異なるスポットインスタンスタイプおよびゾーンの組み合わせの在庫は分離されています。複数の組み合わせにより、在庫が完全に枯渇する確率を低減できます。

  • 複数の代替ディスクタイプを設定すると、グループが作成時に適切なタイプを自動的に選択します。

  • SpotInstancePoolsToUseCount を設定して、スポットインスタンスを複数の最低価格プールに分散させ、1 つのタイプが再取得された場合でもコンピューティング能力の損失を防ぎます。

CreateAutoProvisioningGroup のベストプラクティス

以下の Java コードサンプルは、CreateAutoProvisioningGroup を呼び出す方法を示しています。

  1. ECS SDK for Java および Alibaba Cloud コアライブラリをインストールします。

    SDK 概要をご参照ください。

  2. Java で CreateAutoProvisioningGroup を呼び出します。

    コードサンプル:

    import com.aliyun.ecs20140526.Client;
    import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupRequest;
    import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupResponse;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    import com.google.gson.Gson;
    
    public class Test {
        public static void main(String[] args_) throws Exception {
            Config config = new Config()
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    .setEndpoint("ecs.cn-heyuan.aliyuncs.com");
            Client client = new Client(config);
    
            CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig launchTemplateConfig = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig()
                    .setVSwitchId("vsw-f8zadqudz*********")
                    .setInstanceType("ecs.s6-c1m1.small")
                    .setWeightedCapacity(1.0);
    
            CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration launchConfiguration = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration()
                    .setSecurityGroupId("sg-f8zf6vg51*********")
                    .setImageId("aliyun_3_x64_20G_alibase_20250629.vhd")
                    .setSystemDiskCategory("cloud_ssd")
                    .setSystemDiskSize(40);
            CreateAutoProvisioningGroupRequest createAutoProvisioningGroupRequest = new CreateAutoProvisioningGroupRequest()
                    .setAutoProvisioningGroupType("instant")
                    .setRegionId("cn-heyuan")
                    // スポットインスタンスの作成ポリシーを設定します。
                    .setSpotAllocationStrategy("lowest-price")
                    // 従量課金インスタンスの作成ポリシーを設定します。
                    .setPayAsYouGoAllocationStrategy("prioritized")
                    .setTotalTargetCapacity("5")
                    .setPayAsYouGoTargetCapacity("3")
                    .setSpotTargetCapacity("2")
                    .setLaunchConfiguration(launchConfiguration)
                    .setLaunchTemplateConfig(java.util.Arrays.asList(
                            launchTemplateConfig
                    ))
                    .setClientToken("0c593ea1-3bea******************");
            RuntimeOptions runtime = new RuntimeOptions();
            CreateAutoProvisioningGroupResponse response = client.createAutoProvisioningGroupWithOptions(createAutoProvisioningGroupRequest, runtime);
            System.out.println(new Gson().toJson(response.getBody()));
        }
    }

    JSON 応答サンプル:

    {
        "autoProvisioningGroupId": "apg-**************",
        "launchResults": {
            "launchResult": [
                {
                    "amount": 0,
                    "errorCode": "NoInstanceStock",
                    "errorMsg": "The instanceTypes are out of usage",
                    "instanceType": "ecs.s6-c1m1.small",
                    "spotStrategy": "NoSpot",
                    "zoneId": "cn-heyuan-b"
                },
                {
                    "amount": 2,
                    "instanceIds": {
                        "instanceId": [
                            "i-f8z8**************icn5",
                            "i-f8z8**************icn6"
                        ]
                    },
                    "instanceType": "ecs.s6-c1m1.small",
                    "spotStrategy": "SpotAsPriceGo",
                    "zoneId": "cn-heyuan-b"
                }
            ]
        },
        "requestId": "CDA21119-7CFD-5B40-A2D0-******8"
    }

    CreateAutoProvisioningGroup を使用すると、バッチ作成パラメーターを設定するだけで、グループがベストエフォートで作成プロセスを処理します。

    説明

    ベストエフォート配信とは、一部のリソース組み合わせでインスタンスを作成できない場合、グループが自動的に他の利用可能な組み合わせに切り替えることを意味します。このプロセスには時間がかかり、実際の結果が指定されたポリシーとわずかに異なる可能性があります。