全部產品
Search
文件中心

Resource Orchestration Service:多帳號多地區建立ECS執行個體

更新時間:Sep 21, 2026

通過ROS的資源棧組,您可以在多個阿里雲帳號下的多地區建立相同配置的ECS執行個體。

方案概述

本方案介紹如何使用ROS資源棧組(StackGroup)在多個阿里雲帳號的多個地區同時建立相同配置的ECS執行個體及其依賴的網路資源(VPC、交換器、安全性群組)。適用於集團企業多帳號統一部署、全球化業務多地區擴充、多環境(開發/測試/生產)標準化基礎設施等情境。

前提條件

根據選擇的許可權模式,需要完成不同的準備工作:

服務系統管理權限模式(推薦多帳號情境):

  1. 阿里雲帳號:擁有阿里雲帳號,且已開通ROS和ECS產品。

  2. 資來源目錄:已建立資來源目錄(Resource Directory),目標帳號已加入資來源目錄。

  3. 委派管理員帳號:已設定ROS的委派管理員帳號。詳情請參見設定委派管理員帳號。

自助系統管理權限模式:

  1. 阿里雲帳號:擁有阿里雲帳號,且已開通ROS和ECS產品。

  2. 管理員帳號和目標帳號:已建立管理員帳號和多個目標帳號。

  3. RAM角色和信任關係:在管理員帳號和每個目標帳號中手動建立RAM角色,建立雙向信任關係。詳情請參見授予自助系統管理權限。

操作教程

步驟一:準備ROS模板

以下模板通過DATASOURCE自動查詢推薦的執行個體規格,在目標地區建立完整的ECS環境(VPC + vSwitch + 安全性群組 + ECS 執行個體):

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 自動選擇執行個體規格,建立一台ECS執行個體及網路資源
  en: Creates one ECS instance with an auto-selected instance type

Resources:
  # 資料來源:查詢當前地區推薦的執行個體規格(2核8G + ESSD雲端硬碟)
  DS-InstanceTypes:
    Type: DATASOURCE::ECS::RecommendInstanceTypes
    Properties:
      Cores: 2
      Memory: 8
      SystemDiskCategory: cloud_essd

  # 建立VPC
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16

  # 建立交換器(可用性區域由DATASOURCE自動確定)
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VpcId:
        Ref: Vpc
      CidrBlock: 192.168.0.0/24
      ZoneId:
        Fn::Jq:
          - First
          - .[].ZoneId
          - Fn::GetAtt:
              - DS-InstanceTypes
              - InstanceTypes

  # 建立安全性群組
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: Vpc

  # 建立ECS執行個體(執行個體規格由DATASOURCE自動確定)
  Instance:
    Type: ALIYUN::ECS::Instance
    Properties:
      IoOptimized: optimized
      VpcId:
        Ref: Vpc
      SecurityGroupId:
        Ref: SecurityGroup
      VSwitchId:
        Ref: VSwitch
      ImageId: centos
      InstanceType:
        Fn::Jq:
          - First
          - .[].InstanceType
          - Fn::GetAtt:
              - DS-InstanceTypes
              - InstanceTypes
      SystemDiskCategory: cloud_essd

Outputs:
  VpcId:
    Label:
      zh-cn: VPC執行個體ID
    Value:
      Fn::GetAtt:
        - Vpc
        - VpcId
  InstanceId:
    Label:
      zh-cn: ECS執行個體ID
    Value:
      Fn::GetAtt:
        - Instance
        - InstanceId

關鍵文法解析

  1. DATASOURCE資料來源資源

    DS-InstanceTypes:
      Type: DATASOURCE::ECS::RecommendInstanceTypes    # DATASOURCE:: 首碼表示資料來源
      Properties:
        Cores: 2                    # vCPU核心數
        Memory: 8                   # 記憶體(GB)
        SystemDiskCategory: cloud_essd  # 系統硬碟類型

    DATASOURCE類型的資源不建立實際雲資源,而是查詢已有資源或推薦配置。返回結果通過Fn::GetAtt擷取。本例中返回的InstanceTypes屬性是一個數組:

    [
      {"InstanceType": "ecs.g7.large", "ZoneId": "cn-hangzhou-h", ...},
      {"InstanceType": "ecs.g6.large", "ZoneId": "cn-hangzhou-i", ...}
    ]
  2. Fn::Jq資料提取函數

    ZoneId:
      Fn::Jq:
        - First           # 模式:First=取第一個結果,All=取所有結果
        - .[].ZoneId      # JQ運算式:遍曆數組,提取每個元素的ZoneId
        - Fn::GetAtt:     # 資料來源:DATASOURCE查詢結果
            - DS-InstanceTypes
            - InstanceTypes

    Fn::Jq使用JQ文法從複雜JSON結構中提取資料。First模式取第一個匹配結果作為字串返回。

    Fn::Jq參數

    含義

    本例中的值

    第1個參數

    結果模式

    First(取第一個匹配值)

    第2個參數

    JQ過濾運算式

    .[].ZoneId(提取所有元素的ZoneId)

    第3個參數

    輸入資料

    DATASOURCE返回的InstanceTypes數組

步驟二:建立資源棧組

  1. 登入Resource Orchestration Service控制台。

  2. 在左側導覽列,單擊资源栈组。

  3. 在頂部功能表列選擇地區(此地區為資源棧組的管理地區,不影響實際部署地區)。

  4. 單擊创建资源栈组。

步驟三:配置資源棧組

  1. 在配置资源栈组頁面,設定权限。

  2. 若選擇自助管理權限,需按照頁面要求配置管理员角色和执行角色;若選擇服務管理權限,資源棧組將會自動建立所需角色,無需進行配置。完成配置後,請單擊下一步。

步驟四:配置模板和參數

  1. 在選擇模板頁面,點擊選擇已有模板,模板錄入方式為輸入模板,粘貼步驟一的YAML模板,然後單擊下一步。

  2. 在配置參數頁面,輸入资源栈组名称和资源栈组描述,然後單擊下一步。

    說明

    本模板無需配置額外參數(執行個體規格和可用性區域由DATASOURCE自動確定),直接單擊下一步即可。

步驟五:設定部署選項

  1. 在设置部署选项頁面,配置項會根據步驟三:配置資源棧組時選擇的权限模式發生變化。

    使用服務系統管理權限時:

    配置項

    操作

    部署目標

    在資來源目錄中選擇多個成員帳號或組織單元。

    自動部署

    啟用後,新增帳號時,自動部署資源棧到該帳號;刪除帳號時,具體行為由賬號刪除行為決定。禁用後則不再自動處理。

    賬號刪除行為

    自動部署啟用時生效,可設定帳號從資源夾中刪除時,是否刪除該帳號下的資源棧。

    使用自助系統管理權限時:

    配置項

    操作

    部署位置

    選擇在賬號中部署資源棧。

    帳號

    輸入多個目標帳號ID,以半形逗號分隔。

  2. 配置地區與部署選項。

    參數

    說明

    建議值

    地區

    選擇要部署ECS執行個體的目標地區(最多20個)。

    根據業務需要選擇。

    最大並發帳號數

    同時部署的帳號數量

    預設1(可提高以加速部署)

    容錯

    允許的最大失敗數,超過後停止

    根據部署規模設定

    地區並發

    地區間是否並行部署

    並行(加速部署)

    說明

    部署矩陣樣本(3個帳號 × 4個地區 = 12個資源棧執行個體):

                      華東1(杭州)  華北2(北京)  華南1(深圳)  中國香港
    帳號A(12345…)    執行個體1         執行個體2         執行個體3         執行個體4
    帳號B(67890…)    執行個體5         執行個體6         執行個體7         執行個體8
    帳號C(11111…)    執行個體9         執行個體10        執行個體11        執行個體12

    每個執行個體包含:VPC + VSwitch + SecurityGroup + ECS Instance(共4個資源)

  3. 單擊下一步,在檢查並確認頁面核對資訊,然後單擊建立資源棧組。

步驟六:查看部署結果

  1. 在左側導覽列,單擊資源棧組,然後單擊目標資源棧組名稱。

  2. 單擊實例頁簽,按帳號和地區查看資源棧執行個體。

    列

    說明

    資源棧實例所屬賬號

    資源棧執行個體所屬的目標帳號。

    資源棧實例地域

    資源棧執行個體所在的地區。

    資源棧ID

    各執行個體的獨立資源棧標識。

    实例状态

    最新:資源棧執行個體是最新的,即該執行個體沒有進行中中的或者失敗的操作。

    已到期:資源棧執行個體不是最新的,即該執行個體最新一次的操作未完成或失敗。例如:更新資源棧組及資源棧執行個體時,更新中的資源棧執行個體狀態為已到期。建立或更新資源棧執行個體時,角色扮演失敗,建立或更新資源棧未執行,資源棧執行個體狀態為已到期。建立或更新資源棧執行個體時,角色扮演成功,建立或更新資源棧失敗,資源棧執行個體狀態為已到期。

  3. 單擊某個資源棧ID,在資源頁簽查看該執行個體建立的所有資源(VPC、VSwitch、SecurityGroup、Instance)。

  4. 當所有執行個體的資源狀態為建立成功時,表示多帳號多地區ECS部署完成。

常見問題

DATASOURCE資源會產生費用嗎?

不會。DATASOURCE類型的資源只執行查詢操作,不建立實際雲資源,不產生任何費用。它類似於API查詢調用,在資源棧建立過程中自動執行。

如果某個地區沒有滿足條件的執行個體規格怎麼辦?

DATASOURCE查詢返回空結果時,後續依賴該結果的資源(VSwitch和Instance)會建立失敗。該地區的資源棧執行個體狀態變為失敗,但不影響其他地區的部署。

解決方案:

  • 調整DATASOURCE的查詢條件(如降低Cores和Memory要求)

  • 在部署選項中排除不支援的地區

多個地區的ECS執行個體使用相同的私網IP(192.168.0.1)會衝突嗎?

不會衝突。每個地區/帳號的資源棧執行個體建立的是獨立的VPC,私網IP在各自的VPC內有效。不同VPC之間的私網IP互相隔離,即使使用相同的網段和IP地址也不會衝突。

可以修改模板中的ECS配置(如vCPU核心數、記憶體大小)嗎?

可以。修改DATASOURCE中的Cores和Memory屬性即可。例如需要4核16G的執行個體:

DS-InstanceTypes:
  Type: DATASOURCE::ECS::RecommendInstanceTypes
  Properties:
    Cores: 4
    Memory: 16
    SystemDiskCategory: cloud_essd

DATASOURCE會自動查詢各地區滿足新條件的推薦規格,無需手動指定執行個體規格名稱。

想要瞭解更多資源部署問題,可以查詢常見問題。