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

Resource Orchestration Service:ALIYUN::ECS::InstanceGroup

最終更新日:Jan 16, 2025

ALIYUN::ECS::InstanceGroup は、同じ構成を持つ Elastic Compute Service (ECS) インスタンスを作成するために使用されます。

構文

{
  "Type": "ALIYUN::ECS::InstanceGroup",
  "Properties": {
    "DedicatedHostId": String,
    "ResourceGroupId": String,
    "SystemDiskDescription": String,
    "InstanceChargeType": String,
    "RamRoleName": String,
    "SystemDiskPerformanceLevel": String,
    "ImageId": String,
    "SystemDiskDiskName": String,
    "Tags": List,
    "HostName": String,
    "LaunchTemplateName": String,
    "VSwitchId": String,
    "Period": Number,
    "ZoneIds": List,
    "LaunchTemplateId": String,
    "DeletionProtection": Boolean,
    "SecurityGroupIds": List,
    "SecurityEnhancementStrategy": String,
    "InternetChargeType": String,
    "InstanceName": String,
    "DeploymentSetId": String,
    "InternetMaxBandwidthOut": Integer,
    "VpcId": String,
    "LaunchTemplateVersion": String,
    "PeriodUnit": String,
    "AutoReleaseTime": String,
    "PrivateIpAddress": String,
    "Description": String,
    "DiskMappings": List,
    "SystemDiskSize": Number,
    "UserData": String,
    "AutoRenew": String,
    "Ipv6Addresses": List,
    "MaxAmount": Integer,
    "SystemDiskAutoSnapshotPolicyId": String,
    "Ipv6AddressCount": Integer,
    "NetworkType": String,
    "SpotPriceLimit": String,
    "InstanceType": String,
    "AllocatePublicIP": Boolean,
    "SpotStrategy": String,
    "Password": String,
    "PasswordInherit": Boolean,
    "AutoRenewPeriod": Number,
    "KeyPairName": String,
    "IoOptimized": String,
    "ZoneId": String,
    "HpcClusterId": String,
    "SecurityGroupId": String,
    "SystemDiskCategory": String,
    "EniMappings": List,
    "SystemDiskProvisionedIops": Integer,
    "SystemDiskBurstingEnabled": Boolean,
    "SpotInterruptionBehavior": String,
    "SpotDuration": Integer,
    "UpdatePolicy": String,
    "SystemDiskEncrypted": String,
    "SystemDiskEncryptAlgorithm": String,
    "SystemDiskStorageClusterId": String,
    "SystemDiskKMSKeyId": String,
    "CreditSpecification": String,
    "PrivatePoolOptions": Map,
    "StorageSetId": String,
    "HttpTokens": String,
    "HttpEndpoint": String,
    "Tenancy": String,
    "StorageSetPartitionNumber": Integer,
    "DeploymentSetGroupNo": Integer,
    "Affinity": String,
    "UseAdditionalService": Boolean,
    "ImageFamily": String,
    "DeletionForce": Boolean,
    "UniqueSuffix": Boolean,
    "NetworkOptions": Map,
    "CpuOptions": Map,
    "NetworkInterfaceQueueNumber": Integer,
    "HostNames": List,
    "ImageOptions": Map,
    "SecurityOptions": Map,
    "SchedulerOptions": Map
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ResourceGroupId

String

いいえ

はい

ECS インスタンスが属するリソースグループの ID です。

なし。

SpotInterruptionBehavior

String

いいえ

いいえ

プリエンティブルインスタンスの割り込みモードです。

値を Terminate に設定します。これは、システムがプリエンティブルインスタンスを直接解放することを指定します。デフォルト値:Terminate。

SpotDuration

Integer

いいえ

いいえ

プリエンティブルインスタンスの保護期間です。

有効な値:0 ~ 6。

単位:時間。

有効な値:

  • 0:このプロパティを 0 に設定すると、プリエンティブルインスタンスには保護期間がありません。

  • 2 ~ 6:これらの保護期間は招待制プレビュー中です。このプロパティをいずれかの値に設定する場合は、チケットを送信してください。

  • 1(デフォルト)。

HpcClusterId

String

いいえ

はい

ECS インスタンスが属する Elastic High Performance Computing (E-HPC) クラスタの ID です。

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

MaxAmount

Integer

はい

はい

一度に作成できる ECS インスタンスの数です。

有効な値:1 ~ 1000。

説明

プロパティを参照するスタックを更新するときに MaxAmount の値を増減すると、ECS インスタンスの数は新しい値に基づいて増減します。たとえば、MaxAmount の値を 2 から 5 に変更すると、3 つの ECS インスタンスが追加されます。

Description

String

いいえ

はい

説明です。

説明は最大 256 文字まで入力できます。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

InstanceType

String

はい

はい

ECS インスタンスタイプです。

詳細については、「インスタンスファミリの概要」をご参照ください。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

ImageId

String

いいえ

はい

ECS インスタンスの起動に使用するイメージの ID です。パブリックイメージ、カスタムイメージ、または Alibaba Cloud Marketplace イメージを使用できます。

パブリックイメージを指定するには、完全なイメージ ID の代わりに部分的なイメージ ID を入力できます。パブリックイメージはあいまい一致をサポートしています。例:

  • Ubuntu を指定すると、システムはそれを次のイメージ ID と照合します:ubuntu_16_0402_64_20G_alibase_20170818.vhd。

  • ubuntu1432 を指定すると、システムはそれを次のイメージ ID と照合します:ubuntu_14_0405_32_40G_alibase_20170711.vhd。

詳細については、「リクエストパラメータ」をご参照ください。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

SecurityGroupId

String

いいえ

いいえ

ECS インスタンスが属するセキュリティグループの ID です。同じセキュリティグループ内のインスタンスは相互に通信できます。

SecurityGroupId と SecurityGroupIds の両方を指定することはできません。

SecurityGroupIds

List

いいえ

いいえ

ECS インスタンスが属するセキュリティグループの ID です。

SecurityGroupId と SecurityGroupIds の両方を指定することはできません。

詳細については、「セキュリティグループの制限」をご参照ください。

SecurityEnhancementStrategy

String

いいえ

いいえ

セキュリティ強化を有効にするかどうかを指定します。

有効な値:

  • Active:セキュリティ強化を有効にします。この値は、パブリックイメージに対してのみ有効です。

  • Deactive:セキュリティ強化を無効にします。この値は、すべてのタイプのイメージに対して有効です。

InstanceName

String

いいえ

いいえ

ECS インスタンスの名前です。

名前は最大 128 文字までで、文字、数字、アンダースコア(_)、ピリオド(.)、およびハイフン(-)を含めることができます。

名前は、name_prefix[begin_number,bits]name_suffix 形式である必要があります。各 ECS インスタンスの名前は一意である必要があります。詳細については、「リクエストパラメータ」をご参照ください。

Password

String

いいえ

はい

ECS インスタンスにログオンするために使用するパスワードです。

パスワードは 8 ~ 30 文字の長さでなければなりません。大文字、小文字、数字、特殊文字のうち少なくとも 3 つの文字タイプを含める必要があります。次の特殊文字がサポートされています:: ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? /

Password を指定する場合は、パスワードの漏洩を防ぐために、HTTPS を使用して Resource Orchestration Service (ROS) API を呼び出すことをお勧めします。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

PasswordInherit

Boolean

いいえ

いいえ

イメージのプリセットパスワードを使用するかどうかを指定します。

有効な値:

  • true

  • false

説明

このプロパティを true に設定する場合は、Password を空のままにして、選択したイメージにプリセットパスワードが設定されていることを確認する必要があります。

ZoneIds

List

いいえ

いいえ

ゾーンです。

なし。

HostName

String

いいえ

いいえ

ホスト名です。

ホスト名は少なくとも 2 文字の長さでなければなりません。ピリオド(.)またはハイフン(-)で開始または終了することはできません。連続したピリオド(.)または連続したハイフン(-)を含めることはできません。

詳細については、「リクエストパラメータ」をご参照ください。

AllocatePublicIP

Boolean

いいえ

いいえ

パブリック IP アドレスを割り当てるかどうかを指定します。

InternetMaxBandwidthOut を 0 に設定すると、システムはパブリック IP アドレスを割り当てません。

有効な値:

  • true (デフォルト)

  • false

AutoReleaseTime

String

いいえ

いいえ

システムが ECS インスタンスを自動的に解放する時刻です。

ISO 8601 標準の yyyy-MM-ddTHH:mm:ssZ 形式で時刻を指定します。時刻は、ECS インスタンスが作成されてから 3 年以内である必要があります。

PrivateIpAddress

String

いいえ

いいえ

ECS インスタンスのプライベート IP アドレスです。

仮想プライベートクラウド (VPC) 内の ECS インスタンスにプライベート IP アドレスを指定する場合は、vSwitch の CIDR ブロックからアイドル IP アドレスを選択する必要があります。

説明

PrivateIpAddress を指定する場合は、MaxAmount を 1 に設定する必要があります。

DiskMappings

List

いいえ

はい

ECS インスタンスに作成するデータディスクです。

最大 16 個のデータディスクを作成できます。

このプロパティの値を変更しても、既存の ECS インスタンスは影響を受けません。新しい値は、新しく追加された ECS インスタンスに対して有効です。

詳細については、「DiskMappings プロパティ」をご参照ください。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

InternetChargeType

String

いいえ

はい

インターネット使用量の計測方法です。

有効な値:

  • PayByBandwidth:帯域幅課金

  • PayByTraffic (デフォルト):データ転送課金

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

InternetMaxBandwidthOut

Integer

いいえ

はい

最大アウトバウンドパブリック帯域幅です。

有効な値:0 ~ 100。

単位:Mbit/s。

デフォルト値:0。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

SystemDiskProvisionedIops

Integer

いいえ

はい

システムディスクのプロビジョンド IOPS です。

なし。

SystemDiskBurstingEnabled

Boolean

いいえ

はい

システムディスクのバーストモードを有効にするかどうかを指定します。

有効な値:

  • true

  • false (デフォルト)

IoOptimized

String

いいえ

いいえ

I/O 最適化インスタンスを作成するかどうかを指定します。

有効な値:

  • none:I/O 最適化インスタンスを作成しません。

  • optimized (デフォルト):I/O 最適化インスタンスを作成します。

SystemDiskCategory

String

いいえ

はい

システムディスクのカテゴリです。

有効な値:

  • cloud:ベーシックディスク

  • cloud_efficiency:ウルトラディスク

  • cloud_ssd:標準 SSD

  • cloud_essd:エンタープライズ SSD (ESSD)

  • ephemeral_ssd:ローカル SSD

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

SystemDiskDescription

String

いいえ

はい

システムディスクの説明です。

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

SystemDiskDiskName

String

いいえ

はい

システムディスクの名前です。

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

SystemDiskSize

Number

いいえ

はい

システムディスクのサイズです。

有効な値:40 ~ 500。

単位:GB。

カスタムイメージを使用してシステムディスクを作成する場合は、システムディスクのサイズがカスタムイメージのサイズよりも大きいことを確認する必要があります。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

Tags

List

いいえ

はい

ECS インスタンスに追加するカスタムタグです。

次の形式で最大 20 個のタグを追加できます:[{"Key":"tagKey","Value":"tagValue"},{"Key":"tagKey2","Value":"tagValue2"}]

詳細については、「Tags プロパティ」をご参照ください。

UserData

String

いいえ

はい

ECS インスタンスの作成時に指定するユーザーデータです。

ユーザーデータのサイズは最大 16 KB です。データを Base64 エンコード文字列に変換する必要はありません。データに特殊文字が含まれている場合は、各特殊文字の前にエスケープ文字(\)を追加する必要があります。

説明

このプロパティの更新は、UpdatePolicy が ForAllInstances に設定されている場合にのみ、既存のインスタンスに対して有効になります。それ以外の場合、このプロパティの更新は、新しく追加されたインスタンスに対してのみ有効になります。

ZoneId

String

いいえ

いいえ

ゾーン ID です。

なし。

VpcId

String

いいえ

いいえ

VPC ID です。

なし。

VSwitchId

String

いいえ

いいえ

vSwitch ID です。

なし。

KeyPairName

String

いいえ

はい

ECS インスタンスへの接続に使用するキーペアの名前です。

ECS Windows インスタンスの場合、KeyPairName は無視できます。デフォルトでは、このプロパティは空です。

KeyPairName を指定した場合でも、ECS インスタンスには Password の値が使用されます。ただし、ECS Linux インスタンスでは、パスワードベースのログオンは無効になっています。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

RamRoleName

String

いいえ

はい

ECS インスタンスの Resource Access Management (RAM) ロールの名前です。

ListRoles オペレーションを呼び出して、RAM ロールの名前をクエリできます。

SpotPriceLimit

String

いいえ

いいえ

ECS インスタンスの 1 時間あたりの最大価格です。

このプロパティの値には、小数点以下 3 桁まで含めることができます。このプロパティは、SpotStrategy が SpotWithPriceLimit に設定されている場合に有効になります。

SpotStrategy

String

いいえ

はい

従量課金制インスタンスの入札ポリシーです。

このプロパティは、InstanceChargeType が PostPaid に設定されている場合に有効になります。

有効な値:

  • NoSpot (デフォルト):インスタンスは通常の従量課金制インスタンスとして作成されます。

  • SpotWithPriceLimit:インスタンスは、ユーザー定義の 1 時間あたりの最大価格を持つプリエンティブルインスタンスとして作成されます。

  • SpotAsPriceGo:インスタンスは、購入時の市場価格に基づいて入札価格が決定されるプリエンティブルインスタンスとして作成されます。市場価格は、従量課金制価格まで上がることがあります。

DedicatedHostId

String

いいえ

いいえ

専用ホストの ID です。

なし。

LaunchTemplateName

String

いいえ

はい

起動テンプレートの名前です。

なし。

PeriodUnit

String

いいえ

はい

ECS インスタンスの課金サイクルの単位です。

有効な値:

  • Week

  • Month (デフォルト)

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

AutoRenewPeriod

Number

いいえ

はい

自動更新期間です。

AutoRenew を True に設定する場合は、このプロパティを指定する必要があります。

有効な値:

  • 1 (デフォルト)

  • 2

  • 3

  • 6

  • 12

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

AutoRenew

String

いいえ

はい

自動更新を有効にするかどうかを指定します。

このプロパティは、InstanceChargeType が PrePaid に設定されている場合に有効になります。

有効な値:

  • True

  • False (デフォルト)

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

InstanceChargeType

String

いいえ

はい

ECS インスタンスの課金方法です。

有効な値:

  • PrePaid:サブスクリプション

    説明

    このプロパティを PrePaid に設定する場合は、アカウントが残高払いまたはクレジット払い方法をサポートしていることを確認する必要があります。アカウントがいずれかの支払い方法をサポートしていない場合は、InvalidPayMethod エラーが返されます。

  • PostPaid (デフォルト):従量課金制

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

EniMappings

List

いいえ

はい

ECS インスタンスにアタッチする Elastic Network Interface (ENI) です。

インスタンスには最大 1 つの ENI をアタッチできます。

詳細については、「EniMappings プロパティ」をご参照ください。

LaunchTemplateId

String

いいえ

はい

起動テンプレートの ID です。

なし。

LaunchTemplateVersion

String

いいえ

はい

起動テンプレートのバージョンです。

バージョンを指定しない場合は、デフォルトバージョンが使用されます。

Period

Number

いいえ

はい

ECS インスタンスのサブスクリプション期間です。

InstanceChargeType を PrePaid に設定する場合は、このプロパティを指定する必要があります。

DedicatedHostId を指定する場合は、Period の値は専用ホストのサブスクリプション期間内である必要があります。

  • PeriodUnit が Week に設定されている場合の Period の有効な値:1 ~ 4。

  • PeriodUnit が Month に設定されている場合の Period の有効な値:1、2、3、4、5、6、7、8、9、12、24、36、48、および 60。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

NetworkType

String

いいえ

いいえ

ECS インスタンスのネットワークタイプです。

有効な値:

  • vpc

  • classic (デフォルト)

DeletionProtection

Boolean

いいえ

はい

ECS インスタンスの削除保護プロパティです。このプロパティを使用して、ECS コンソールまたは DeleteInstance オペレーションを使用して ECS インスタンスを削除できるかどうかを指定できます。

有効な値:

  • true

  • false

DeploymentSetId

String

いいえ

はい

デプロイメントセットの ID です。

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

Ipv6AddressCount

Integer

いいえ

はい

ENI に対してランダムに生成する IPv6 アドレスの数です。

Ipv6Addresses と Ipv6AddressCount の両方を指定することはできません。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

Ipv6Addresses

List

いいえ

はい

ENI に割り当てる IPv6 アドレスです。

最大 1 つの IPv6 アドレスを指定できます。このプロパティの値を変更しても、既存の ECS インスタンスは影響を受けません。Ipv6Addresses と Ipv6AddressCount の両方を指定することはできません。

説明

このプロパティの更新は、新しく追加された ECS インスタンスに対してのみ有効になります。

SystemDiskAutoSnapshotPolicyId

String

いいえ

はい

システムディスクに使用する自動スナップショットポリシーの ID です。

なし。

SystemDiskPerformanceLevel

String

いいえ

はい

システムディスクとして使用する ESSD のパフォーマンスレベル (PL) です。

有効な値:

  • PL0:ESSD は最大 10,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL1 (デフォルト):ESSD は最大 50,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL2:ESSD は最大 100,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL3:ESSD は最大 1,000,000 ランダム読み取り/書き込み IOPS を提供できます。

ESSD の PL の選択方法の詳細については、「ESSD」をご参照ください。

UpdatePolicy

String

いいえ

はい

ECS インスタンスに使用する更新ポリシーです。

有効な値:

  • ForNewInstance (デフォルト):更新ポリシーは、新しく追加された ECS インスタンスに対して有効になります。

  • ForAllInstances:更新ポリシーは、すべての ECS インスタンスに対して有効になります。

SystemDiskEncrypted

String

いいえ

はい

システムディスクを暗号化するかどうかを指定します。

有効な値:

  • true

  • false

SystemDiskEncryptAlgorithm

String

いいえ

はい

システムディスクに使用する暗号化アルゴリズムです。

有効な値:

  • AES-256

  • SM4-128

SystemDiskStorageClusterId

String

いいえ

はい

システムディスクが存在する専用ブロックストレージクラスタの ID です。

なし。

SystemDiskKMSKeyId

String

いいえ

はい

システムディスクに使用する Key Management Service (KMS) キーの ID です。

なし。

CreditSpecification

String

いいえ

はい

バースト可能インスタンスのパフォーマンスモードです。

有効な値:

  • Standard:標準モード。詳細については、「概要」トピックの「標準モード」セクションをご参照ください。

  • Unlimited:無制限モード。詳細については、「概要」トピックの「無制限モード」セクションをご参照ください。

PrivatePoolOptions

Map

いいえ

いいえ

ECS インスタンスの起動に使用するプライベートプールのオプションです。

詳細については、「PrivatePoolOptions プロパティ」をご参照ください。

StorageSetId

String

いいえ

いいえ

ストレージセットの ID です。

なし。

HttpTokens

String

いいえ

はい

インスタンスメタデータへのアクセスにセキュリティ強化モード (IMDSv2) を強制的に使用するかどうかを指定します。

有効な値:

  • optional (デフォルト):インスタンスメタデータへのアクセスにセキュリティ強化モード (IMDSv2) を強制的に使用しません。

  • required:インスタンスメタデータへのアクセスにセキュリティ強化モード (IMDSv2) を強制的に使用します。このプロパティを required に設定した後、通常モードでインスタンスメタデータにアクセスすることはできません。

説明

インスタンスメタデータのアクセスモードの詳細については、「インスタンスメタデータの取得」をご参照ください。

HttpEndpoint

String

いいえ

はい

インスタンスメタデータのアクセスチャネルを有効にするかどうかを指定します。

有効な値:

  • enabled (デフォルト)

  • disabled

説明

インスタンスメタデータのアクセスモードの詳細については、「インスタンスメタデータの取得」をご参照ください。

Tenancy

String

いいえ

いいえ

専用ホストにインスタンスを作成するかどうかを指定します。

有効な値:

  • default (デフォルト):専用ホストにインスタンスを作成しません。

  • host:専用ホストにインスタンスを作成します。DedicatedHostId を指定しない場合、Alibaba Cloud はインスタンスの専用ホストを自動的に選択します。

StorageSetPartitionNumber

Integer

いいえ

いいえ

ストレージセットの最大パーティション数です。

このプロパティは、2 以上の値に設定する必要があります。

DeploymentSetGroupNo

Integer

いいえ

いいえ

インスタンスをデプロイするデプロイメントセットグループのグループ番号です。DeploymentSetId で指定されたデプロイメントセットが高可用性グループ戦略 (AvailabilityGroup) を使用している場合は、DeploymentSetGroupNo を使用してデプロイメントセット内のデプロイメントセットグループを指定できます。

有効な値:1 ~ 7。

Affinity

String

いいえ

いいえ

専用ホスト上のインスタンスを専用ホストに関連付けるかどうかを指定します。

有効な値:

  • default:専用ホスト上のインスタンスを専用ホストに関連付けません。節約モードで停止されたインスタンスを再起動し、インスタンスの元の専用ホストに十分なリソースがない場合、インスタンスは自動デプロイメントリソースプール内の別の専用ホストに自動的にデプロイされます。

  • host:専用ホスト上のインスタンスを専用ホストに関連付けます。節約モードで停止されたインスタンスを再起動すると、インスタンスは元の専用ホスト上に残ります。元の専用ホストに十分なリソースがない場合、インスタンスを再起動することはできません。

UseAdditionalService

Boolean

いいえ

いいえ

仮想マシンのシステム構成を使用するかどうかを指定します。Alibaba Cloud は、Windows 用の Network Time Protocol (NTP) および KMS システム構成と、Linux 用の NTP および Yellowdog Updater, Modified (YUM) システム構成を提供しています。

有効な値:

  • true

  • false

ImageFamily

String

いいえ

いいえ

イメージファミリの名前です。

このプロパティを指定して、指定したイメージファミリに属する最新の利用可能なイメージをクエリし、そのイメージを使用してインスタンスを作成できます。

  • ImageId を指定する場合は、ImageFamily を指定できません。

  • ImageId を指定せずに、LaunchTemplateId または LaunchTemplateName を使用して ImageId が定義されている起動テンプレートを指定する場合は、ImageFamily を指定できません。

  • ImageId を指定せずに、LaunchTemplateId または LaunchTemplateName を使用して ImageId が定義されていない起動テンプレートを指定する場合は、ImageFamily を指定できます。

  • ImageId を指定せず、LaunchTemplateId または LaunchTemplateName を指定しない場合は、ImageFamily を指定できます。

説明

Alibaba Cloud 公式イメージに関連付けられているイメージファミリの詳細については、「概要」をご参照ください。

DeletionForce

Boolean

いいえ

いいえ

インスタンスを強制的に削除するかどうかを指定します。

デフォルト値:false。

UniqueSuffix

Boolean

いいえ

いいえ

複数のインスタンスを作成するときに、HostNameInstanceName の値に連番の接尾辞を自動的に追加するかどうかを指定します。

連番の接尾辞の範囲は 001 から 999 です。有効な値:

  • true

  • false (デフォルト)

name_suffix で指定された接尾辞を含まない name_prefix[begin_number,bits] 形式で HostName または InstanceName の値を指定すると、UniqueSuffix は有効になりません。名前は、指定された順序でのみソートされます。

詳細については、「複数のインスタンスに連番の名前またはホスト名をバッチ構成する」をご参照ください。

NetworkOptions

Map

いいえ

いいえ

ネットワークオプションです。

詳細については、「NetworkOptions プロパティ」をご参照ください。

CpuOptions

Map

いいえ

いいえ

CPU オプションです。

詳細については、「CpuOptions プロパティ」をご参照ください。

NetworkInterfaceQueueNumber

Integer

いいえ

いいえ

プライマリ ENI でサポートされているキューの数です。

次の点に注意してください。

  • このプロパティの値は、インスタンスタイプで許可されている ENI あたりの最大キュー数を超えることはできません。

  • インスタンス上のすべての ENI のキューの総数は、インスタンスタイプのキュークォータを超えることはできません。インスタンスタイプの ENI あたりの最大キュー数とインスタンスタイプのキュークォータを照会するには、DescribeInstanceTypes オペレーションを呼び出し、MaximumQueueNumberPerEniTotalEniQueueQuantity の値を確認します。

  • NetworkInterface.N.InstanceTypePrimary に設定されている場合、NetworkInterfaceQueueNumber を指定することはできませんが、NetworkInterface.N.QueueNumber は指定できます。

HostNames

List

いいえ

いいえ

複数のインスタンスに使用するホスト名です。

なし。

ImageOptions

Map

いいえ

いいえ

イメージオプションです。

詳細については、「ImageOptions プロパティ」をご参照ください。

SecurityOptions

Map

いいえ

いいえ

信頼できるシステムオプションです。

詳細については、「SecurityOptions プロパティ」をご参照ください。

SchedulerOptions

Map

いいえ

いいえ

スケジューリングオプションです。

詳細については、「SchedulerOptions プロパティ」をご参照ください。

DiskMappings 構文

"DiskMappings": [
  {
    "Category": String,
    "DiskName": String,
    "Description": String,
    "Device": String,
    "SnapshotId": String,
    "Size": String,
    "Encrypted": String,
    "KMSKeyId": String,
    "PerformanceLevel": String,
    "AutoSnapshotPolicyId": String,
    "ProvisionedIops": Integer,
    "BurstingEnabled": Boolean,
    "StorageClusterId": String
  }
]

DiskMappings プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Size

String

はい

いいえ

データディスクのサイズです。

単位:GB。

Category

String

いいえ

いいえ

データディスクのカテゴリです。

有効な値:

  • cloud:ベーシックディスク

  • cloud_efficiency:ウルトラディスク

  • cloud_ssd:標準 SSD

  • cloud_essd:ESSD

  • ephemeral_ssd:ローカル SSD

I/O 最適化インスタンスのデフォルト値は cloud_efficiency です。

I/O 最適化されていないインスタンスのデフォルト値は cloud です。

DiskName

String

いいえ

いいえ

データディスクの名前です。

名前は 2 ~ 128 文字の長さでなければなりません。文字で始まり、http:// または https:// で始めることはできません。文字、数字、アンダースコア(_)、コロン(:)、およびハイフン(-)を含めることができます。

Description

String

いいえ

いいえ

データディスクの説明です。

説明は 2 ~ 256 文字の長さでなければなりません。http:// または https:// で始めることはできません。

Device

String

いいえ

いいえ

マウントターゲットです。

説明

このプロパティは将来削除されます。互換性を向上させるために、他のプロパティを使用することをお勧めします。

SnapshotId

String

いいえ

いいえ

スナップショット ID です。

なし。

Encrypted

String

いいえ

いいえ

データディスクを暗号化するかどうかを指定します。

有効な値:

  • true

  • false (デフォルト)

KMSKeyId

String

いいえ

いいえ

データディスクに使用する KMS キーの ID です。

なし。

AutoSnapshotPolicyId

String

いいえ

いいえ

自動スナップショットポリシーの ID です。

なし。

PerformanceLevel

String

いいえ

いいえ

データディスクとして使用する ESSD の PL です。

有効な値:

  • PL0:ESSD は最大 10,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL1 (デフォルト):ESSD は最大 50,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL2:ESSD は最大 100,000 ランダム読み取り/書き込み IOPS を提供できます。

  • PL3:ESSD は最大 1,000,000 ランダム読み取り/書き込み IOPS を提供できます。

ESSD の PL の選択方法の詳細については、「ESSD」をご参照ください。

ProvisionedIops

Integer

いいえ

いいえ

プロビジョンド IOPS です。

なし。

BurstingEnabled

Boolean

いいえ

いいえ

バーストモードを有効にするかどうかを指定します。

有効な値:

  • true

  • false (デフォルト)

StorageClusterId

String

いいえ

いいえ

専用ブロックストレージクラスタの ID です。

なし。

Tags 構文

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Key

String

はい

いいえ

タグキーです。

タグキーは 1 ~ 128 文字の長さでなければならず、http:// または https:// を含めることはできません。aliyun または acs: で始めることはできません。

Value

String

いいえ

いいえ

タグ値です。

タグ値は最大 128 文字の長さで、http:// または https:// を含めることはできません。aliyun または acs: で始めることはできません。

EniMappings 構文

"EniMappings": [
  {
    "SecurityGroupId": String,
    "VSwitchId": String,
    "Description": String,
    "NetworkInterfaceName": String,
    "PrimaryIpAddress": String,
    "InstanceType": String,
    "Ipv6AddressCount": Integer,
    "NetworkInterfaceTrafficMode": String,
    "Ipv6Addresses": List,
    "QueueNumber": Integer,
    "SecurityGroupIds": List,
    "NetworkInterfaceId": String,
    "DeleteOnRelease": Boolean,
    "NetworkCardIndex": Integer,
    "QueuePairNumber": Integer
  }
]

EniMappings プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

SecurityGroupId

String

いいえ

はい

ENI が属するセキュリティグループの ID です。

セキュリティグループと ECS インスタンスは、同じ VPC 内に存在する必要があります。

VSwitchId

String

いいえ

いいえ

vSwitch ID です。

なし。

Description

String

いいえ

はい

ENI の説明です。

説明は 2 ~ 256 文字の長さでなければならず、http:// または https:// で始めることはできません。

NetworkInterfaceName

String

いいえ

はい

ENI 名です。

名前は 2 ~ 128 文字の長さでなければなりません。文字で始まり、http:// または https:// で始めることはできません。文字、数字、コロン(:)、アンダースコア(_)、およびハイフン(-)を含めることができます。

PrimaryIpAddress

String

いいえ

いいえ

ENI のプライマリプライベート IP アドレスです。

IP アドレスは、vSwitch の CIDR ブロック内のアイドル IP アドレスである必要があります。

このプロパティを空のままにすると、vSwitch の CIDR ブロックからアイドル IP アドレスがランダムに割り当てられます。

InstanceType

String

いいえ

いいえ

ENI タイプです。

最大 2 つの ENI をアタッチできます。1 つの ENI のみをアタッチする場合は、プライマリまたはセカンダリ ENI を構成できます。2 つの ENI をアタッチする場合は、プライマリ ENI とセカンダリ ENI を構成する必要があります。

有効な値:

  • Primary

  • Secondary (デフォルト)

Ipv6AddressCount

Integer

いいえ

いいえ

プライマリ ENI に対してランダムに生成する IPv6 アドレスの数です。

有効な値:1 ~ 10。

次の点に注意してください。

  • このプロパティは、NetworkInterface.InstanceTypePrimary に設定されている場合にのみ有効になります。NetworkInterface.InstanceTypeSecondary に設定されているか、空のままになっている場合は、NetworkInterface.Ipv6AddressCount を指定できません。

  • NetworkInterface.Ipv6AddressCount を指定した後、Ipv6AddressCountIpv6Address、または NetworkInterface.Ipv6Address を指定することはできません。

NetworkInterfaceTrafficMode

String

いいえ

いいえ

ENI の通信モードです。

有効な値:

  • Standard (デフォルト):TCP 通信モードを使用します。

  • HighPerformance:Elastic RDMA Interface (ERI) 機能が有効になっているリモートダイレクトメモリアクセス (RDMA) 通信モードを使用します。

説明

インスタンスにアタッチできる RDMA モードの ENI の数は、インスタンスファミリがサポートする ENI の最大数を超えることはできません。詳細については、「インスタンスファミリの概要」をご参照ください。

Ipv6Addresses

List

いいえ

いいえ

プライマリ ENI に割り当てる 1 つ以上の IPv6 アドレスです。

最大 10 個の IPv6 アドレスを指定できます。

次の点に注意してください。

  • このプロパティは、NetworkInterface.InstanceTypePrimary に設定されている場合にのみ有効になります。NetworkInterface.InstanceTypeSecondary に設定されているか、空のままになっている場合は、NetworkInterface.Ipv6Addresses を指定できません。

  • NetworkInterface.Ipv6Addresses を指定する場合は、Amount を 1 に設定する必要があり、Ipv6AddressCountIpv6Address.N、または NetworkInterface.N.Ipv6AddressCount を指定することはできません。

QueueNumber

Integer

いいえ

いいえ

ENI でサポートされているキューの数です。

次の点に注意してください。

  • 有効な値:1 と 2。1 つの ENI のみをアタッチする場合は、プライマリまたはセカンダリ ENI を構成できます。2 つの ENI をアタッチする場合は、プライマリ ENI とセカンダリ ENI を構成する必要があります。

  • このプロパティの値は、インスタンスタイプで許可されている ENI あたりの最大キュー数を超えることはできません。

  • インスタンス上のすべての ENI のキューの合計数は、インスタンスタイプのキュークォータを超えることはできません。インスタンスタイプの ENI あたりの最大キュー数とインスタンスタイプのキュークォータをクエリするには、DescribeInstanceTypes オペレーションを呼び出し、MaximumQueueNumberPerEniTotalEniQueueQuantity の値を確認できます。

  • NetworkInterface.InstanceTypePrimary に設定され、QueueNumber が指定されている場合は、NetworkInterfaceQueueNumber を指定できません。

SecurityGroupIds

List

いいえ

いいえ

ENI が属する 1 つ以上のセキュリティグループの ID です。

次の点に注意してください。

  • NetworkInterface.N.InstanceTypePrimary に設定されている場合は、NetworkInterface.SecurityGroupIds または NetworkInterface.SecurityGroupId を指定する必要があります。この場合、NetworkInterface.SecurityGroupIds は SecurityGroupIds と同じ効果があります。また、SecurityGroupIdSecurityGroupIds、または NetworkInterface.SecurityGroupId を指定することはできません。

  • NetworkInterface.N.InstanceTypeSecondary に設定されているか、空のままになっている場合は、NetworkInterface.SecurityGroupIds はオプションです。デフォルト値は、ECS インスタンスが属する 1 つ以上のセキュリティグループの ID です。

NetworkInterfaceId

String

いいえ

いいえ

インスタンスにアタッチする ENI の ID です。

このプロパティは、セカンダリ ENI に対してのみ有効になります。このプロパティを使用して既存のセカンダリ ENI を指定した後、ENI を作成するために使用される他のプロパティを構成することはできません。

DeleteOnRelease

Boolean

いいえ

いいえ

関連付けられているインスタンスが解放されたときに ENI を保持するかどうかを指定します。

有効な値:

  • true

  • false

NetworkCardIndex

Integer

いいえ

いいえ

ENI に指定するネットワークカードインデックスです。

  • ネットワークカードインデックスは、特定のインスタンスタイプのインスタンスに対してのみ指定できます。

  • NetworkInterface.N.InstanceType が Primary に設定されている場合は、ネットワークカードをサポートするインスタンスタイプに対して NetworkCardIndex を 0 に設定する必要があります。

  • NetworkInterface.N.InstanceType が Secondary に設定されているか、空のままになっている場合は、ネットワークカードをサポートするインスタンスタイプに基づいて NetworkCardIndex を指定できます。詳細については、「インスタンスファミリの概要」をご参照ください。

QueuePairNumber

Integer

いいえ

いいえ

RDMA モードで ENI によってサポートされるキューの数です。

QueuePairNumber は Long データ型です。シリアル化またはデシリアル化プロセス中に、プロパティ値の精度が失われる可能性があります。値が 9007199254740991 を超えないことを確認する必要があります。

PrivatePoolOptions 構文

"PrivatePoolOptions": [
  {
    "Id": String,
    "MatchCriteria": String
  }
]

PrivatePoolOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Id

String

いいえ

いいえ

プライベートプールの ID です。プライベートプールの ID は、プライベートプールが生成される弾力性保証または容量予約の ID と同じです。

なし。

MatchCriteria

String

いいえ

いいえ

インスタンスの起動に使用するプライベートプールのタイプです。プライベートプールは、弾力性保証または容量予約が有効になった後に生成されます。

有効な値:

  • Open:オープン プライベートプール。システムは、一致するオープン プライベートプールの容量を使用します。一致するオープン プライベートプールが存在しない場合、システムはパブリックプールの容量を使用します。このプロパティを Open に設定すると、PrivatePoolOptions.Id を指定する必要はありません。

  • Target:指定されたプライベートプール。システムは、指定されたプライベートプールの容量を使用します。指定されたプライベートプールに容量がない場合、インスタンスは起動に失敗します。このプロパティを Target に設定すると、PrivatePoolOptions.Id を指定する必要があります。

  • None (デフォルト):プライベートプールなし。システムは、プライベートプールの容量を使用しません。

次のシナリオでは、PrivatePoolOptions.MatchCriteria を None に設定するか、空のままにする必要があります。

  • プリエンティブルインスタンスを作成します。

  • クラシックネットワークに ECS インスタンスを作成します。

  • 専用ホストに ECS インスタンスを作成します。

NetworkOptions 構文

"NetworkOptions": {
  "EnableJumboFrame": Boolean
}

NetworkOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

EnableJumboFrame

Boolean

いいえ

いいえ

インスタンスのジャンボフレーム機能を有効にするかどうかを指定します。

有効な値:

  • false:インスタンスのジャンボフレーム機能を有効にしません。インスタンス上のすべての ENI の最大伝送単位 (MTU) 値は 1500 に設定されます。

  • true:インスタンスのジャンボフレーム機能を有効にします。インスタンス上のすべての ENI の MTU 値は 8500 に設定されます。

デフォルト値:true。

説明

ジャンボフレーム機能は、第 8 世代以降の特定のインスタンスタイプでのみサポートされています。詳細については、「ジャンボフレーム」をご参照ください。

CpuOptions 構文

"CpuOptions": {
  "ThreadsPerCore": Integer,
  "Core": Integer
}

CpuOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ThreadsPerCore

Integer

いいえ

いいえ

コアあたりのスレッド数です。

ECS インスタンスの vCPU の数は、次の式に基づいて計算されます。vCPU の数 = CpuOptions.Core の値 × CpuOptions.ThreadsPerCore の値。

Core

Integer

いいえ

いいえ

物理 CPU コアの数です。

このプロパティにカスタム値を指定することはできません。このプロパティをデフォルト値のいずれかに設定する必要があります。

デフォルト値の詳細については、「CPU オプションを指定して表示する」をご参照ください。

ImageOptions 構文

"ImageOptions": {
  "LoginAsNonRoot": Boolean
}

ImageOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

LoginAsNonRoot

Boolean

いいえ

いいえ

イメージを使用するインスタンスが ecs-user ユーザーのログオンをサポートするかどうかを指定します。

有効な値:

  • true

  • false

SecurityOptions 構文

"SecurityOptions": {
  "TrustedSystemMode": String
}

SecurityOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

TrustedSystemMode

String

いいえ

いいえ

信頼できるシステムモードです。

値を vTPM に設定します。信頼できるシステムモードは、g7、c7、および r7 インスタンスファミリと、g7t、c7t、および r7t セキュリティ強化インスタンスファミリをサポートしています。上記のインスタンスファミリの ECS インスタンスを作成するときは、このプロパティを指定する必要があります。次の情報に注意してください。Alibaba Cloud Trusted System を使用する場合は、このプロパティを vTPM に設定する必要があります。その後、Alibaba Cloud Trusted System は、インスタンスが起動されたときに信頼検証を実行します。Alibaba Cloud Trusted System を使用しない場合は、このプロパティを空のままにすることができます。この場合、SecurityOptions.ConfidentialComputingMode を Enclave に設定して ECS インスタンスにエンクレーブベースの機密コンピューティング環境を使用すると、インスタンスに対して Alibaba Cloud Trusted System が有効になることに注意してください。Alibaba Cloud Trusted System を使用する ECS インスタンスを作成するために API オペレーションを呼び出す場合は、RunInstances オペレーションのみを呼び出して SecurityOptions.TrustedSystemMode を指定できます。CreateInstance オペレーションは SecurityOptions.TrustedSystemMode をサポートしていません。

説明

インスタンスの作成時にインスタンスを信頼できるインスタンスとして構成する場合は、Alibaba Cloud Trusted System をサポートするイメージのみを使用してインスタンスのシステムディスクを置き換えることができます。

信頼できるシステムの詳細については、「概要」をご参照ください。

SchedulerOptions 構文

"SchedulerOptions": {
  "ManagedPrivateSpaceId": String,
  "DedicatedHostClusterId": String
}

SchedulerOptions プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

DedicatedHostClusterId

String

いいえ

いいえ

ECS インスタンスを作成する専用ホストクラスタの ID です。システムは、指定されたクラスタから専用ホストを自動的に選択してインスタンスを作成します。

説明

このプロパティは、Tenancyhost に設定されている場合にのみ有効になります。

DedicatedHostIdSchedulerOptions.DedicatedHostClusterId の両方を指定する場合は、次の点に注意してください。

  • 指定された専用ホストが指定された専用ホストクラスタに属している場合、インスタンスは優先的に指定された専用ホストにデプロイされます。

  • 指定された専用ホストが指定された専用ホストクラスタに属していない場合、インスタンスの作成に失敗します。

DescribeDedicatedHostClusters オペレーションを呼び出して、専用ホストクラスタの ID をクエリできます。

ManagedPrivateSpaceId

String

いいえ

いいえ

マネージドプライベートプールの ID です。

なし。

戻り値

Fn::GetAtt

  • InstanceIds:ECS インスタンスの ID です。インスタンス ID は、システムがインスタンスに対して生成する GUID です。

  • PrivateIps:VPC 内の ECS インスタンスのプライベート IP アドレスです。このプロパティは、NetworkType が vpc に設定されている場合に有効になります。値は、コンマ(,)で区切られた最大 100 個の IP アドレスを含むことができる JSON 配列です。例:["172.16.XX.XX", "172.16.XX.XX", … "172.16.XX.XX"]

  • InnerIps:クラシックネットワーク内の ECS インスタンスのプライベート IP アドレスです。このプロパティは、NetworkType が classic に設定されている場合に有効になります。値は、コンマ(,)で区切られた最大 100 個の IP アドレスを含むことができる JSON 配列です。例:["10.1.XX.XX", "10.1.XX.XX", …, "10.1.XX.XX"]

  • PublicIps:クラシックネットワーク内の ECS インスタンスのパブリック IP アドレスです。このプロパティは、NetworkType が classic に設定されている場合に有効になります。値は、コンマ(,)で区切られた最大 100 個の IP アドレスを含むことができる JSON 配列です。例:["42.1.XX.XX", "42.1.XX.XX", … "42.1.XX.XX"]

  • HostNames:ECS インスタンスのホスト名です。

  • OrderId:ECS インスタンスの注文 ID です。

  • ZoneIds:ゾーン ID です。

  • Ipv6AddressIds:ECS インスタンスの IPv6 アドレス ID です。

    説明

    IPv6 アドレス ID は、2 レベルのネストを持つリストで返されます。ECS インスタンスに IPv6 アドレスがない場合、リスト内の関連する位置の要素は空になります。すべての ECS インスタンスに IP アドレスがない場合は、null が返されます。

  • Ipv6Addresses:ECS インスタンスの IPv6 アドレスです。

    説明

    IPv6 アドレスは、2 レベルのネストを持つリストで返されます。ECS インスタンスに IPv6 アドレスがない場合、リスト内の関連する位置の要素は空になります。すべての ECS インスタンスに IP アドレスがない場合は、null が返されます。

次のサンプルコードは、OpsEcsInstance および ProdEcsInstance ECS インスタンスを作成し、ProdEcsInstance インスタンスの OpsEcsInstance インスタンスのパスワードなしログオンを構成する方法の例を示しています。

ECS インスタンスのユーザーデータスクリプトの実行結果のシグナルを送信する場合は、ALIYUN::ROS::WaitCondition を構成できます。詳細については、「ALIYUN::ROS::WaitCondition」をご参照ください。

YAML 形式

ROSTemplateFormatVersion: '2015-09-01'
Description: VPC ECS インスタンスを作成します
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      ja: コンソール - Virtual Private Cloud から (vpc-xxx) で始まる ID を検索してください
       
    Label:
      ja: VPC ID
       
  VSwitchZoneId:
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Type: String
    Description:
       
      ja: vSwitch アベイラビリティーゾーン
    Label:
       
      ja: vSwitch アベイラビリティーゾーン
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${VSwitchZoneId}
    Type: String
    Description:
      ja: 既存のビジネスネットワークスイッチのインスタンス ID、コンソール - Virtual Private Cloud - vSwitch でクエリ
       
    Label:
      ja: vSwitch ID
       
  SecurityGroupId:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
    Description:
      ja: コンソール - ECS - ネットワークとセキュリティから (sg-xxx) で始まるビジネスセキュリティグループ ID を検索してください
       
    Label:
      ja: ビジネスセキュリティグループ ID
       
  InstanceType:
    Type: String
    Description:
       
      ja: vSwitch アベイラビリティーゾーンで使用できる仕様を入力します。
    Label:
       
      ja: インスタンスタイプ
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${VSwitchZoneId}
  SystemDiskCategory:
    Type: String
    Label:
      ja: システムディスクタイプ
       
    Description:
      ja: システムディスクタイプ
       
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${VSwitchZoneId}
      InstanceType: ${InstanceType}
Resources:
  OpsEcsInstance:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      MaxAmount: 1
      HostName: OpsEcsInstance
      UserData:
        Fn::Sub:
          - |
            #!/bin/bash
            # rootパスワード
            RootPassword=${RootPassword}
            # 本番環境IP
            ProdIP=${ProdIP}
            # SSH接続設定
            SSHConfig() {
            echo '[ !  -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh
            echo 'while read line;do' >> /tmp/auto_ssh.sh
            echo '        ip=`echo $line | cut -d " " -f1`' >> /tmp/auto_ssh.sh
            echo '        user_name=`echo $line | cut -d " " -f2`' >> /tmp/auto_ssh.sh
            echo '        pass_word=`echo $line | cut -d " " -f3`' >> /tmp/auto_ssh.sh
            echo 'expect <<EOF' >> /tmp/auto_ssh.sh
            echo '        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh
            echo '        expect {' >> /tmp/auto_ssh.sh
            echo '                  "yes/no" { send "yes\n";exp_continue}' >> /tmp/auto_ssh.sh
            echo '                  "password" { send "$pass_word\n"}' >> /tmp/auto_ssh.sh
            echo '        }' >> /tmp/auto_ssh.sh
            echo '        expect eof' >> /tmp/auto_ssh.sh
            echo 'EOF' >> /tmp/auto_ssh.sh
            echo 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh
            }
            # ホスト設定
            SetHostsConfig() {
            echo "`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}" >> /tmp/host_ip.txt
            echo "${ProdIP} root ${RootPassword}" >> /tmp/host_ip.txt
            sh /tmp/auto_ssh.sh
            }
            # メイン関数
            main() {
            yum install -y expect
            SSHConfig
            SetHostsConfig
            rm -rf /tmp/host_ip.txt
            }
            main
          - ProdIP:
              Fn::Select:
                - '0'
                - Fn::GetAtt:
                    - ProdEcsInstance
                    - PrivateIps
            RootPassword: Admin@123!
      VpcId:
        Ref: VpcId
      SecurityGroupId:
        Ref: SecurityGroupId
      VSwitchId:
        Ref: VSwitchId
      ImageId: centos_7
      AllocatePublicIP: false
      InstanceType:
        Ref: InstanceType
      SystemDiskSize: 40
      SystemDiskCategory:
        Ref: SystemDiskCategory
      Password: Admin@123!
  ProdEcsInstance:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      MaxAmount: 1
      HostName: ProdEcsInstance
      SystemDiskCategory:
        Ref: SystemDiskCategory
      VpcId:
        Ref: VpcId
      SecurityGroupId:
        Ref: SecurityGroupId
      SystemDiskSize: 40
      ImageId: centos_7
      VSwitchId:
        Ref: VSwitchId
      Password: Admin@123!
      InstanceType:
        Ref: InstanceType
      AllocatePublicIP: false
Outputs: {}                  

JSON 形式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "VPC ECS インスタンスを作成します",
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "ja": "コンソール - Virtual Private Cloud から (vpc-xxx) で始まる ID を検索してください",
         
      },
      "Label": {
        "ja": "VPC ID",
         
      }
    },
    "VSwitchZoneId": {
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Type": "String",
      "Description": {
         
        "ja": "vSwitch アベイラビリティーゾーン"
      },
      "Label": {
         
        "ja": "vSwitch アベイラビリティーゾーン"
      }
    },
    "VSwitchId": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${VSwitchZoneId}"
      },
      "Type": "String",
      "Description": {
        "ja": "既存のビジネスネットワークスイッチのインスタンス ID、コンソール - Virtual Private Cloud - vSwitch でクエリ",
         
      },
      "Label": {
        "ja": "vSwitch ID",
         
      }
    },
    "SecurityGroupId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}"
      },
      "Description": {
        "ja": "コンソール - ECS - ネットワークとセキュリティから (sg-xxx) で始まるビジネスセキュリティグループ ID を検索してください",
         
      },
      "Label": {
        "ja": "ビジネスセキュリティグループ ID",
         
      }
    },
    "InstanceType": {
      "Type": "String",
      "Description": {
         
        "ja": "vSwitch アベイラビリティーゾーンで使用できる仕様を入力します。"
      },
      "Label": {
         
        "ja": "インスタンスタイプ"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "${VSwitchZoneId}"
      }
    },
    "SystemDiskCategory": {
      "Type": "String",
      "Label": {
        "ja": "システムディスクタイプ",
         
      },
      "Description": {
        "ja": "システムディスクタイプ",
         
      },
      "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
      "AssociationPropertyMetadata": {
        "ZoneId": "${VSwitchZoneId}",
        "InstanceType": "${InstanceType}"
      }
    }
  },
  "Resources": {
    "OpsEcsInstance": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "MaxAmount": 1,
        "HostName": "OpsEcsInstance",
        "UserData": {
          "Fn::Sub": [
            "#!/bin/bash\nRootPassword=${RootPassword}\nProdIP=${ProdIP}\nSSHConfig() {\necho '[ !  -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh\necho 'while read line;do' >> /tmp/auto_ssh.sh\necho '        ip=`echo $line | cut -d \" \" -f1`' >> /tmp/auto_ssh.sh\necho '        user_name=`echo $line | cut -d \" \" -f2`' >> /tmp/auto_ssh.sh\necho '        pass_word=`echo $line | cut -d \" \" -f3`' >> /tmp/auto_ssh.sh\necho 'expect <<EOF' >> /tmp/auto_ssh.sh\necho '        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh\necho '        expect {' >> /tmp/auto_ssh.sh\necho '                  \"yes/no\" { send \"yes\\n\";exp_continue}' >> /tmp/auto_ssh.sh\necho '                  \"password\" { send \"$pass_word\\n\"}' >> /tmp/auto_ssh.sh\necho '        }' >> /tmp/auto_ssh.sh\necho '        expect eof' >> /tmp/auto_ssh.sh\necho 'EOF' >> /tmp/auto_ssh.sh\necho 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh\n}\nSetHostsConfig() {\necho \"`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}\" >> /tmp/host_ip.txt\necho \"${ProdIP} root ${RootPassword}\" >> /tmp/host_ip.txt\nsh /tmp/auto_ssh.sh\n}\nmain() {\nyum install -y expect\nSSHConfig\nSetHostsConfig\nrm -rf /tmp/host_ip.txt\n}\nmain\n",
            {
              "ProdIP": {
                "Fn::Select": [
                  "0",
                  {
                    "Fn::GetAtt": [
                      "ProdEcsInstance",
                      "PrivateIps"
                    ]
                  }
                ]
              },
              "RootPassword": "Admin@123!"
            }
          ]
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "ImageId": "centos_7",
        "AllocatePublicIP": false,
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SystemDiskSize": 40,
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "Password": "Admin@123!"
      }
    },
    "ProdEcsInstance": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "MaxAmount": 1,
        "HostName": "ProdEcsInstance",
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        },
        "SystemDiskSize": 40,
        "ImageId": "centos_7",
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "Password": "Admin@123!",
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "AllocatePublicIP": false
      }
    }
  },
  "Outputs": {
  }
}                    

UpdatePolicy の概要

ALIYUN::ECS::InstanceGroup を使用して ECS インスタンスのコレクションを作成した後、UpdatePolicy プロパティを使用して ECS インスタンスの構成をバッチで更新できます。次のセクションでは、UpdatePolicy のプロパティと構文について説明します。

UpdatePolicy 構文

"UpdatePolicy": {
  "RollingUpdateForOrigInstances": Map
}

UpdatePolicy プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

RollingUpdateForOrigInstances

Map

いいえ

はい

既存の ECS インスタンスの更新ポリシーです。

このポリシーは、新しく追加された ECS インスタンスには有効になりません。

詳細については、「RollingUpdateForOrigInstances プロパティ」をご参照ください。

RollingUpdateForOrigInstances 構文

"RollingUpdateForOrigInstances": {
  "MaxBatchSize": Integer,
  "PauseTime": Integer
}

RollingUpdateForOrigInstances プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

MaxBatchSize

Integer

はい

はい

各バッチで更新する ECS インスタンスの数です。

有効な値:1 ~ 1000。

PauseTime

Integer

いいえ

はい

2 つのバッチ更新の間隔です。デフォルト値:0。単位:秒。

有効な値:0 ~ 3600。

更新前後のテンプレート

次のテンプレートを使用して、同じ構成を持つ 5 つの ECS インスタンスを作成できます。

{
    "ROSTemplateFormatVersion": "2015-09-01",
    "Resources": {
        "Instance": {
            "Type": "ALIYUN::ECS::InstanceGroup",
            "Properties": {
                "MaxAmount": 5,
                "InstanceType": "xxxx",
                "ImageId": "centos",
                "VpcId": "vpc-2xxxx",
                "VSwitchId": "vsw-xxxx",
                "SecurityGroupId": "sg-xxxxx",
                "Password": "Ros1gregrge2345",
                "InstanceChargeType": "PostPaid",
                "NetworkType": "vpc",
                "SystemDiskCategory": "xxx",
                "SystemDiskSize": 100,
                "InternetMaxBandwidthOut": 5,
                "AllocatePublicIP": true
            }
        }
    }
}

ECS インスタンスを含むスタックが作成された後、テンプレートに UpdatePolicy プロパティを追加して ECS インスタンスの構成を更新できます。

{
    "ROSTemplateFormatVersion": "2015-09-01",
    "Resources": {
        "Instance": {
            "Type": "ALIYUN::ECS::InstanceGroup",
            "UpdatePolicy": {
                "RollingUpdateForOrigInstances": {
                    "MaxBatchSize": 2,
                    "PauseTime": 0
                }
            },
            "Properties": {
                "MaxAmount": 10,
                "InstanceType": "xxxx",
                "ImageId": "centos",
                "VpcId": "vpc-2xxxx",
                "VSwitchId": "vsw-xxxx",
                "SecurityGroupId": "sg-xxxxx",
                "Password": "Ros1gregrge2345",
                "InstanceChargeType": "PostPaid",
                "NetworkType": "vpc",
                "SystemDiskCategory": "xxx",
                "SystemDiskSize": 100,
                "InternetMaxBandwidthOut": 5,
                "AllocatePublicIP": true
            }
        }
    }
}

上記のサンプルコードでは、MaxBatchSize は 2 に設定されています。MaxAmount の値は 5 から 10 に更新されます。スタックの更新プロセス中に、元の 5 つの ECS インスタンスの構成は 3 つのバッチで更新され、各バッチにはそれぞれ 2 つ、2 つ、1 つのインスタンスが含まれます。新しい 5 つの ECS インスタンスは一度に作成されます。