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

Resource Orchestration Service:リソースシナリオからのテンプレート生成

最終更新日:Jun 11, 2026

Resource Orchestration Service (ROS) のリソースインポートシナリオで、既存のリソースからテンプレートを生成し、バッチデプロイメント用に変更します。

ユースケース

Web アプリケーションをデプロイするには、関連するすべてのリソースに app:web のタグを付けて、リソースインポート時にフィルターできるようにします。テンプレートを生成したら、再利用できるようにパラメーターを追加し、スタックを作成して次のリソースを一括でデプロイします。

  • VPC × 1

  • vSwitch × 1

  • セキュリティグループ × 1

  • ECS インスタンス × 2

  • SLB インスタンス × 1

Batch deployment

ステップ 1:リソースの作成とタグの追加

各コンソールで必要なリソースを作成し、タグ app:web (タグキー app、タグ値 web)を追加します。タグとは何ですか?

説明

既存のリソースには、タグを追加するだけです。

  1. VPC コンソールで VPC と vSwitch を作成し、それらにタグ app:web を追加します。

    VPC の作成VPC へのタグの追加

    説明

    vSwitch にタグを追加する場合も、VPC と同様の手順です。対象の vSwitch の Tags 列で Tag アイコンをクリックします。

  2. ECS コンソールで VPC 用のセキュリティグループを作成し、[Network]手順1 で作成した VPC に設定して、タグ app:web を追加します。

  3. ECS インスタンスを 2 つ作成し、タグ app:web を追加します。

    1. 手順1 の VPC と vSwitch を選択します。

    2. 手順2 のセキュリティグループを選択します。

    3. ECS インスタンスのその他のパラメーターを設定します。

    4. ECS インスタンスにタグ app:web を追加します。

  4. SLB コンソールで SLB インスタンス (この例では Application Load Balancer インスタンス)を作成し、タグ app:web を追加します。

    1. SLB インスタンスを作成し、手順1 で作成した VPC を選択します。

    2. バックエンドサーバーグループを作成し、手順3 の ECS インスタンス 2 つを追加します。

    3. リスナーを設定し、必要に応じて DNS 名前解決を設定します。

    4. SLB インスタンスにタグ app:web を追加します。

ステップ 2: リソースインポートシナリオの作成

リソースインポートシナリオを作成し、ステップ 1: リソースの作成とタグの追加で作成したリソースをフィルタリングします。

  1. ROSコンソール にログインします。

  2. 左側のナビゲーションペインで、[シナリオ] をクリックします。

  3. 上部メニューのリージョンのドロップダウンリストから、リソースシナリオのリージョンを選択します。

  4. [シナリオ] ページで、[シナリオの作成] をクリックします。

  5. [シナリオの作成] ダイアログボックスで、[説明] パラメーターを指定し、[シナリオタイプの選択] で [リソース管理] を選択します。

  6. リソースの範囲を定義します。

    1. 選択方法 セクションで、ソースラベル を選択します。

    2. ソースラベル セクションで、ラベルキーapp に、ラベル値web に設定します。

    [Description] フィールドに web-app を入力します。[Generate Scenario] をクリックします。

  7. リソースシナリオの リソース削除ポリシー[保持] に設定します。

    説明

    スタックを削除する際に既存のリソースを保持するには、[Retain] を選択します。

  8. [作成] をクリックします。

    リソースシナリオが作成されると、[シナリオ] ページの [ステータス] 列に [作成済み] と表示されます。

ステップ 3:テンプレートの生成

  1. [シナリオ] ページで、リソースシナリオの ID をクリックします。

  2. リソースシナリオ管理ページで、右上隅のテンプレートの生成をクリックします。

テンプレートは JSON 形式と YAML 形式をサポートしています。次の例では YAML を使用します。

テンプレートの全内容

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  ECSInstance_001:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::Instance
    Properties:
      DeletionProtection: false
      VSwitchId:
        Ref: ECSVSwitch_001
      VpcId:
        Ref: ECSVPC_001
      Tags:
        - Value: web
          Key: app
      SystemDiskSize: 40
      HostName: iZbp11ut2d6rr7gg78a****
      SystemDiskCategory: cloud_essd
      ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
      SpotStrategy: NoSpot
      AllocatePublicIP: false
      InstanceChargeType: PostPaid
      IoOptimized: optimized
      SecurityGroupIds:
        - Ref: ECSSecurityGroup_001
      InternetChargeType: PayByTraffic
      ZoneId: cn-hangzhou-i
      InstanceName: launch-advisor-2022****
      InstanceType: ecs.g7.large
      SystemDiskPerformanceLevel: PL0
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001
  ECSInstance_002:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::Instance
    Properties:
      DeletionProtection: false
      VSwitchId:
        Ref: ECSVSwitch_001
      VpcId:
        Ref: ECSVPC_001
      Tags:
        - Value: web
          Key: app
      SystemDiskSize: 40
      HostName: iZbp11ut2d6rr7gg78a****
      SystemDiskCategory: cloud_essd
      ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
      SpotStrategy: NoSpot
      AllocatePublicIP: false
      InstanceChargeType: PostPaid
      IoOptimized: optimized
      SecurityGroupIds:
        - Ref: ECSSecurityGroup_001
      InternetChargeType: PayByTraffic
      ZoneId: cn-hangzhou-i
      InstanceName: launch-advisor-2022****
      InstanceType: ecs.g7.large
      SystemDiskPerformanceLevel: PL0
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001
  ECSSecurityGroup_001:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: ECSVPC_001
      Description: web-sg
      SecurityGroupName: web-sg
      Tags:
        - Value: web
          Key: app
      SecurityGroupIngress:
        - PortRange: 1/65535
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 80/80
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 443/443
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 22/22
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 3389/3389
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: '-1/-1'
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: icmp
          SourcePortRange: '-1/-1'
      SecurityGroupType: normal
    DependsOn:
      - ECSVPC_001
  ECSVPC_001:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 172.16.0.0/12
      VpcName: web-vpc
      EnableIpv6: false
      Description: web-vpc
      Tags:
        - Value: web
          Key: app
  ECSVSwitch_001:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName: web-vsw
      VpcId:
        Ref: ECSVPC_001
      Description: web-vsw
      Tags:
        - Value: web
          Key: app
      ZoneId: cn-hangzhou-i
      CidrBlock: 172.16.0.0/24
    DependsOn:
      - ECSVPC_001
  SLBBackendServerAttachment_001:
    DeletionPolicy: Retain
    Type: ALIYUN::SLB::BackendServerAttachment
    Properties:
      BackendServers:
        - ServerId:
            Ref: ECSInstance_002
          Type: ecs
          Weight: 100
        - ServerId:
            Ref: ECSInstance_001
          Type: ecs
          Weight: 100
      LoadBalancerId:
        Ref: SLBLoadBalancer_001
    DependsOn:
      - SLBLoadBalancer_001
      - ECSInstance_001
      - ECSInstance_002
  SLBLoadBalancer_001:
    DeletionPolicy: Retain
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      DeletionProtection: false
      VpcId:
        Ref: ECSVPC_001
      AddressIPVersion: ipv4
      Tags:
        - Value: web
          Key: app
      SupportPrivateLink: true
      PayType: PayOnDemand
      SlaveZoneId: cn-hangzhou-h
      AddressType: intranet
      VSwitchId:
        Ref: ECSVSwitch_001
      LoadBalancerName: web-app-slb
      InternetChargeType: paybytraffic
      LoadBalancerSpec: slb.s1.small
      MasterZoneId: cn-hangzhou-i
    DependsOn:
      - ECSVPC_001
      - ECSVSwitch_001

テンプレートの説明

テンプレートの基本構造は次のとおりです:

ROSTemplateFormatVersion: '2015-09-01' # テンプレート構文のバージョン。
Resources: {} # リソースのリスト。
  • ROSTemplateFormatVersion:テンプレート構文のバージョンです。値は 2015-09-01 に固定されています。

  • Resources:リソースのリストです。リソースのプロパティと依存関係が含まれます。このリストには、ステップ 1:リソースの作成とタグの追加 のリソースが含まれます:

    • VPC × 1:ECSVPC_001。

    • vSwitch × 1:ECSVSwitch_001。

    • セキュリティグループ × 1:ECSSecurityGroup_001。

    • ECS インスタンス × 2:ECSInstance_001 と ECSInstance_002。これらをまとめて ECSInstance_00X と呼びます。

    • SLB ロードバランサー × 1:SLBLoadBalancer_001。

    次の図は、リソースアーキテクチャを示しています。

    Architecture diagram

ステップ 4:テンプレートの再利用

生成されたテンプレートでは、「ステップ 1:リソースの作成とタグの追加」 のリソースプロパティ値がハードコーディングされています。テンプレートを再利用可能にするには、アベイラビリティーゾーンやインスタンスタイプなどのハードコーディングされた値をパラメーターに置き換え、出力を追加します。

変更前

ROSTemplateFormatVersion: '2015-09-01' # テンプレート構文のバージョン。
Resources: {} # リソースのリスト。

変更後

ROSTemplateFormatVersion: '2015-09-01' # テンプレート構文のバージョン。
Description: {} # テンプレートのユースケースとアーキテクチャを記述します。
Parameters: {} # ハードコーディングされた値から抽出されたカスタマイズパラメーター。
Resources: {} # リソースのリスト。
Outputs: {} # リソースプロパティなどの情報を返します。コンソールから、または API を呼び出して、出力内容を取得できます。
説明

テンプレート構文」をご参照ください。

リソースプロパティとパラメーターのマッピング

リソース名

パラメーター化するプロパティ

追加する出力

VPC: ECSVPC_001

VPC CIDR ブロック (VpcCidrBlock)

なし

vSwitch: ECSVSwitch_001

アベイラビリティーゾーン ID (ZoneId)

なし

vSwitch CIDR ブロック (VSwitchCidrBlock)

セキュリティグループ: ECSSecurityGroup_001

なし

なし

ECS インスタンス: ECSInstance_00X

アベイラビリティーゾーン ID (ZoneId)

ECS インスタンス ID (InstanceId)

ECS インスタンスタイプ (ECSInstanceType)

ECS システムディスクのカテゴリ (SystemDiskCategory)

SLB インスタンス: SLBLoadBalancer_001

プライマリアベイラビリティーゾーン ID (MasterZoneId)

SLB インスタンスの IP アドレス (IpAddress)

バックアップアベイラビリティーゾーン ID (SlaveZoneId)

SLB インスタンス仕様 (LoadBalancerSpec)

テンプレートの変更

VPC: ECSVPC_001

  • VPC CIDR ブロック (VpcCidrBlock) をParameters に抽出します。

  • Ref を使用して、CidrBlockParameters セクションの VpcCidrBlock の値に設定します。

変更前

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  ECSVPC_001:
    DeletionPolicy: Retain
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 172.16.0.0/12

変更後

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcCidrBlock:
    Type: String
    Label: VPC IPv4 CIDR ブロック
    Description: VPC の IPv4 アドレス範囲。
    Default: 172.16.0.0/12
Resources:
  ECSVPC_001:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock:
        Ref: VpcCidrBlock
      VpcName: web-vpc
      EnableIpv6: false
      Description: web-vpc
      Tags:
        - Value: web
          Key: app
説明

ECSVPC_001 の他のプロパティについては、「ALIYUN::ECS::VPC」をご参照ください。

vSwitch: ECSVSwitch_001

  • アベイラビリティーゾーン ID (ZoneId) と vSwitch CIDR ブロック (VSwitchCidrBlock) をParameters に抽出します。

  • Ref を使用してパラメーター ZoneId を定義し、Parameters セクションの ZoneId パラメーターの値を参照します。

  • Ref を使用してパラメーター CidrBlock を定義し、ParametersVSwitchCidrBlock の値を参照します。

変更前

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  ECSVSwitch_001:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VpcId:
        Ref: ECSVPC_001
      ZoneId: cn-hangzhou-i
      CidrBlock: 172.16.0.0/24
    DependsOn:
      - ECSVPC_001

変更後

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::ZoneId
    Description: アベイラビリティーゾーンの ID。
    Label: アベイラビリティーゾーン
  VSwitchCidrBlock:
    Type: String
    Label: vSwitch CIDR ブロック
    Description: VPC のサブネットである必要があります。
    Default: 172.16.0.0/24
Resources:
  ECSVPC_001: ''
  ECSVSwitch_001:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      CidrBlock:
        Ref: VSwitchCidrBlock
      VpcId:
        Ref: ECSVPC_001
      ZoneId:
        Ref: ZoneId
    DependsOn:
      - ECSVPC_001
説明
  • AssociationProperty は、選択されたリージョンで利用可能なリソースを動的に取得します。AssociationPropertyMetadata は、動的パラメーター設定のためのフィルター条件を追加します。ZoneIdAssociationPropertyALIYUN::ECS::ZoneId に設定すると、アベイラビリティーゾーンのドロップダウンリストが表示されます。「AssociationPropertyMetadata」をご参照ください。

  • DependsOn は、リソースがその依存関係の後にのみ作成されることを保証します。たとえば、ECSVSwitch_001 は ECSVPC_001 の後に作成されます。

  • ECSVSwitch_001 の他のプロパティについては、「ALIYUN::ECS::VSwitch」をご参照ください。

ECS インスタンス: ECSInstance_00X

  • Parameters セクションにアベイラビリティーゾーン ID (ZoneId)、ECS インスタンスタイプ (ECSInstanceType)、および ECS システムディスクのカテゴリ (SystemDiskCategory) を抽出して、パラメーターとして渡します。

  • Ref を使用してパラメーター ZoneId を定義し、Parameters セクションの ZoneId の値を参照します。

  • Ref を使用してパラメーター InstanceType を定義し、ParametersECSInstanceType の値を参照します。

  • Ref を使用してパラメーター SystemDiskCategory を定義し、ParametersSystemDiskCategory の値を参照します。

変更前

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  ECSVSwitch_001: ''
  ECSVPC_001: ''
  ECSSecurityGroup_001: ''
  ECSInstance_001:
    Type: ALIYUN::ECS::Instance
    Properties:
      ZoneId: cn-hangzhou-i
      InstanceType: ecs.g7.large
      SystemDiskCategory: cloud_essd
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001

変更後

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneId: ''
  ECSInstanceType:
    Type: String
    Description: 選択されたアベイラビリティーゾーンで利用可能なインスタンスタイプを指定します。
    Label: インスタンスタイプ
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ZoneId
  SystemDiskCategory:
    Type: String
    Description: システムディスクのカテゴリ。
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ZoneId
      InstanceType: ECSInstanceType
    Label: システムディスクのカテゴリ
Resources:
  ECSInstance_001:
    Type: ALIYUN::ECS::Instance
    Properties:
      SystemDiskCategory:
        Ref: SystemDiskCategory
      InstanceType:
        Ref: ECSInstanceType
      ZoneId:
        Ref: ZoneId
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001
説明
  • ECSInstanceTypeAssociationPropertyALIYUN::ECS::Instance::InstanceType に設定すると、現在のリージョンにおける ECS インスタンスタイプのドロップダウンリストが表示されます。

  • AssociationPropertyMetadata は結果をフィルターします。ここでは、ZoneId は、指定されたゾーンで利用可能なインスタンスタイプに結果を制限します。

  • SystemDiskCategoryAssociationPropertyALIYUN::ECS::Disk::SystemDiskCategory に設定すると、利用可能なシステムディスクタイプがリスト表示されます。AssociationPropertyMetadataZoneId でフィルターします。

  • ECSInstance_00X の他のプロパティについては、「ALIYUN::ECS::Instance」をご参照ください。

SLB インスタンス: SLBLoadBalancer_001

  • Parameters セクションにプライマリアベイラビリティーゾーン ID (MasterZoneId)、バックアップアベイラビリティーゾーン ID (SlaveZoneId)、および SLB インスタンス仕様 (LoadBalancerSpec) を抽出して、パラメーターとして渡します。

  • Ref を使用してパラメーター MasterZoneId を定義し、ParametersZoneId の値を参照します。

  • Ref を使用してパラメーター SlaveZoneId を定義し、Parameters から SlaveZoneId の値を参照します。

  • Ref を使用してパラメーター LoadBalancerSpec を定義し、ParametersLoadBalancerSpec の値を参照します。

変更前

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  ECSVPC_001: ''
  ECSVSwitch_001: ''
  SLBLoadBalancer_001:
    DeletionPolicy: Retain
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      MasterZoneId: cn-hangzhou-i
      SlaveZoneId: cn-hangzhou-h
      LoadBalancerSpec: slb.s1.small
    DependsOn:
      - ECSVPC_001
      - ECSVSwitch_001

変更後

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneId: ''
  SlaveZoneId:
    Type: String
    Description: バックアップアベイラビリティーゾーンの ID。
    Label: SLB バックアップゾーン
  LoadBalancerSpec:
    Type: String
    AssociationProperty: ALIYUN::SLB::Instance::InstanceType
    Description: SLB インスタンスの仕様。
    Label: SLB 仕様
    AssociationPropertyMetadata:
      ZoneId: ZoneId
Resources:
  ECSVPC_001: ''
  ECSVSwitch_001: ''
  SLBLoadBalancer_001:
    DeletionPolicy: Retain
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      LoadBalancerName: web-app-slb
      LoadBalancerSpec:
        Ref: LoadBalancerSpec
      SlaveZoneId:
        Ref: SlaveZoneId
      MasterZoneId:
        Ref: ZoneId
    DependsOn:
      - ECSVPC_001
      - ECSVSwitch_001
説明
  • AssociationProperty は、選択されたリージョンで利用可能なリソースを動的に取得します。AssociationPropertyMetadata は、動的パラメーター設定のためのフィルター条件を追加します。

  • ZoneIdAssociationPropertyALIYUN::ECS::ZoneId に設定すると、アベイラビリティーゾーンのドロップダウンリストが表示されます。

  • LoadBalancerSpecAssociationPropertyALIYUN::SLB::Instance::InstanceType に設定すると、SLB 仕様のドロップダウンリストが表示されます。「AssociationPropertyMetadata」をご参照ください。

  • SLBLoadBalancer_001 の他のプロパティについては、「ALIYUN::SLB::LoadBalancer」をご参照ください。

出力: SLB インスタンスの IP アドレス

その他の戻り値については、「ALIYUN::SLB::LoadBalancer」をご参照ください。

Outputs:
  SLBListenerIpAddress:
    Description: ロードバランサーの IP アドレス。
    Value:
      Fn::GetAtt:
        - SLBLoadBalancer_001
        - IpAddress

出力: ECS インスタンス ID

その他の戻り値については、「ALIYUN::ECS::Instance」をご参照ください。

Outputs:
  ECSInstance_001:
    Description: 作成された ECS インスタンスのインスタンス ID。
    Value:
      Fn::GetAtt:
        - ECSInstance_001
        - InstanceId
  ECSInstance_002:
    Description: 作成された ECS インスタンスのインスタンス ID。
    Value:
      Fn::GetAtt:
        - ECSInstance_002
        - InstanceId

再利用可能なテンプレート

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::ZoneId
    Description: アベイラビリティーゾーンの ID。
    Label: アベイラビリティーゾーン
  SlaveZoneId:
    Type: String
    Description: バックアップアベイラビリティーゾーンの ID。
    Label: SLB バックアップゾーン
  VpcCidrBlock:
    Type: String
    Label: VPC IPv4 CIDR ブロック
    Description: VPC の IPv4 アドレス範囲。
    Default: 172.16.0.0/12
  VSwitchCidrBlock:
    Type: String
    Label: vSwitch CIDR ブロック
    Description: VPC のサブネットである必要があります。
    Default: 172.16.0.0/24
  ECSInstanceType:
    Type: String
    Description: ECS インスタンスのインスタンスタイプ。
    Label: インスタンスタイプ
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ZoneId
  SystemDiskCategory:
    Type: String
    Description: システムディスクのカテゴリ。
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ZoneId
      InstanceType: ECSInstanceType
    Label: システムディスクのカテゴリ
  LoadBalancerSpec:
    Type: String
    AssociationProperty: ALIYUN::SLB::Instance::InstanceType
    Description: SLB インスタンスの仕様。
    Label: SLB 仕様
    AssociationPropertyMetadata:
      ZoneId: ZoneId
    Default: slb.s1.small
Resources:
  ECSVPC_001:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock:
        Ref: VpcCidrBlock
      VpcName: web-vpc
      EnableIpv6: false
      Description: web-vpc
      Tags:
        - Value: web
          Key: app
  ECSVSwitch_001:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName: web-vsw
      VpcId:
        Ref: ECSVPC_001
      Description: web-vsw
      Tags:
        - Value: web
          Key: app
      ZoneId:
        Ref: ZoneId
      CidrBlock:
        Ref: VSwitchCidrBlock
    DependsOn:
      - ECSVPC_001
  ECSSecurityGroup_001:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: ECSVPC_001
      Description: web-sg
      SecurityGroupName: web-sg
      Tags:
        - Value: web
          Key: app
      SecurityGroupIngress:
        - PortRange: 80/80
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 443/443
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
        - PortRange: 22/22
          NicType: intranet
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          Policy: accept
          IpProtocol: tcp
      SecurityGroupType: normal
    DependsOn:
      - ECSVPC_001
  ECSInstance_001:
    Type: ALIYUN::ECS::Instance
    Properties:
      DeletionProtection: true
      SystemDiskCategory:
        Ref: SystemDiskCategory
      VpcId:
        Ref: ECSVPC_001
      Description: web-ecs
      Tags:
        - Value: web
          Key: app
      VSwitchId:
        Ref: ECSVSwitch_001
      SystemDiskSize: 40
      ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
      SpotStrategy: NoSpot
      AllocatePublicIP: false
      InstanceChargeType: PostPaid
      IoOptimized: optimized
      SecurityGroupIds:
        - Ref: ECSSecurityGroup_001
      InternetChargeType: PayByTraffic
      ZoneId:
        Ref: ZoneId
      InstanceName: web-ecs001
      InstanceType:
        Ref: ECSInstanceType
      SystemDiskPerformanceLevel: PL0
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001
  ECSInstance_002:
    Type: ALIYUN::ECS::Instance
    Properties:
      DeletionProtection: true
      SystemDiskCategory:
        Ref: SystemDiskCategory
      VpcId:
        Ref: ECSVPC_001
      Description: web-ecs
      Tags:
        - Value: web
          Key: app
      VSwitchId:
        Ref: ECSVSwitch_001
      SystemDiskSize: 40
      ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
      SpotStrategy: NoSpot
      AllocatePublicIP: false
      InstanceChargeType: PostPaid
      IoOptimized: optimized
      SecurityGroupIds:
        - Ref: ECSSecurityGroup_001
      InternetChargeType: PayByTraffic
      ZoneId:
        Ref: ZoneId
      InstanceName: web-ecs002
      InstanceType:
        Ref: ECSInstanceType
      SystemDiskPerformanceLevel: PL0
    DependsOn:
      - ECSSecurityGroup_001
      - ECSVSwitch_001
      - ECSVPC_001
  SLBListener_001:
    Type: ALIYUN::SLB::Listener
    Properties:
      AclStatus: 'off'
      Protocol: tcp
      Description: tcp_80
      HealthCheck:
        Interval: 2
        HealthyThreshold: 3
        Switch: 'on'
        UnhealthyThreshold: 3
        HealthCheckType: tcp
      LoadBalancerId:
        Ref: SLBLoadBalancer_001
      ListenerPort: 80
      Bandwidth: -1
      BackendServerPort: 80
      Scheduler: tch
      StartListener: true
      Persistence:
        PersistenceTimeout: 0
    DependsOn:
      - SLBLoadBalancer_001
  SLBLoadBalancer_001:
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      DeletionProtection: false
      VpcId:
        Ref: ECSVPC_001
      AddressIPVersion: ipv4
      Tags:
        - Value: web
          Key: app
      SupportPrivateLink: true
      PayType: PayOnDemand
      AddressType: intranet
      VSwitchId:
        Ref: ECSVSwitch_001
      LoadBalancerName: web-slb
      InternetChargeType: paybytraffic
      LoadBalancerSpec:
        Ref: LoadBalancerSpec
      MasterZoneId:
        Ref: ZoneId
      SlaveZoneId:
        Ref: SlaveZoneId
    DependsOn:
      - ECSVPC_001
      - ECSVSwitch_001
  SLBBackendServerAttachment_001:
    Type: ALIYUN::SLB::BackendServerAttachment
    Properties:
      BackendServers:
        - ServerId:
            Ref: ECSInstance_001
          Type: ecs
          Weight: 100
        - ServerId:
            Ref: ECSInstance_002
          Type: ecs
          Weight: 100
      LoadBalancerId:
        Ref: SLBLoadBalancer_001
    DependsOn:
      - SLBLoadBalancer_001
      - ECSInstance_001
      - ECSInstance_002
Outputs:
  ECSInstance_001:
    Description: 作成された ECS インスタンスのインスタンス ID。
    Value:
      Fn::GetAtt:
        - ECSInstance_001
        - InstanceId
  ECSInstance_002:
    Description: 作成された ECS インスタンスのインスタンス ID。
    Value:
      Fn::GetAtt:
        - ECSInstance_002
        - InstanceId
  SLBListenerIpAddress:
    Description: ロードバランサーの IP アドレス。
    Value:
      Fn::GetAtt:
        - SLBLoadBalancer_001
        - IpAddress

(オプション) ステップ 5: リソースの一括デプロイ

再利用可能なテンプレートを使用してスタックを作成し、リソースを一括デプロイします。

  1. ROS コンソールで、ステップ 4: テンプレートを再利用可能にするで作成した、再利用可能なテンプレートを使用してスタックを作成します。[Configure Template Parameters] ページで、[Availability Zone] (例:中国 (杭州) ゾーン I)、[SLB Backup Zone]、[VPC IPv4 CIDR Block] (例:172.16.0.0/12)、[vSwitch CIDR Block] などのパラメーターを設定します。次に、[Instance Type] として、ecs.c7.large (2 vCPU と 4 GiB のメモリを搭載した c7 コンピューティング最適化インスタンス) などを選択します。

    詳細については、「スタックの作成」をご参照ください。

  2. 「スタックの詳細」ページで、パラメーター タブをクリックすると、デプロイされたリソースの詳細を表示できます。