全部產品
Search
文件中心

Elastic Compute Service:建立搶佔式執行個體

更新時間:Jun 19, 2024

您可以通過ECS控制台、API或Terraform建立搶佔式執行個體。

使用須知

在使用搶佔式執行個體時,您需要考慮如下內容:

  • 選擇合理的出價。

    出價要充分考慮到市場價格的波動,合理的出價可以提升搶佔式執行個體建立成功的機率,而且建立後才不容易因為價格因素被釋放。另外,出價還必須符合您根據自身業務評估後的預期。

    說明

    如果您暫時不能決定出價,建議使用自動出價,即接受即時的市場價格作為執行個體規格的計費價格 。

  • 使用的鏡像必須包含所需軟體的配置,確保執行個體在建立完成後可以隨時啟動。您還能使用執行個體自訂資料在啟動時運行命令。詳情請參見執行個體自訂資料

  • 建議您使用不受搶佔式執行個體釋放影響的儲存介質來儲存您的重要資料。

    例如,您可以使用獨立建立的雲端硬碟(不能設定為隨執行個體一起釋放)、OSS、RDS等儲存資料。

  • 將工作拆分為小的任務(使用網格、Hadoop或基於隊列的架構)或者使用檢查點,便於您經常儲存計算結果。

  • 使用搶佔式執行個體釋放通知來監控搶佔式執行個體的狀態。

    您可以通過執行個體中繼資料每分鐘擷取一次執行個體的狀態,阿里雲ECS釋放搶佔式執行個體時,會提前5分鐘更新中繼資料資訊。詳情請參見ECS執行個體中繼資料概述

  • 測試您的應用程式,確保它能很好地處理意外釋放的執行個體。

    您可以使用隨用隨付執行個體來運行該應用程式,然後自行釋放這台執行個體,從而確認應用程式是否能處理自動釋放的執行個體。

操作步驟

通過ECS控制台建立

  1. 前往執行個體建立頁

  2. 選擇自訂購買頁簽。

  3. 根據實際需求和頁面提示,設定ECS資源配置資訊。

    需注意以下參數(其他配置項說明,請參考自訂購買執行個體):

    • 付費模式:選擇搶佔式執行個體

    • 搶佔式執行個體使用時間長度

      • 設定執行個體使用1小時:執行個體穩定運行1小時不會被自動釋放,超過1小時後,系統每5分鐘監測庫存、您出價的變化,進而判斷您是否能夠繼續使用資源。

      • 無確定使用時間長度:基於實際業務需求,不進行資源使用時間長度的設定,優勢在於相較設定執行個體使用時間長度可獲得更優成本。

    • 單台執行個體規格上限價

      • 使用自動出價:選擇跟隨當前市場價格的模式,即表示始終接受即時的市場價格作為執行個體規格的計費價格 。

      • 設定單台上限價:您必須為指定的執行個體規格設定一個價格上限,即您願意為這個執行個體規格支付的最高價格 。

  4. 在最終建立執行個體前,請在頁面檢查執行個體的整體配置並配置使用時間長度等選項,確保各項配置符合您的要求。

  5. 閱讀並確認《Elastic Compute Service服務條款》 《泛型服務條款》單擊確認下單

通過API建立

您可以通過阿里雲CLI、OpenAPI Explorer和阿里雲SDK等開發人員工具調用RunInstances介面建立搶佔式執行個體。 具體操作,請參見RunInstances

說明

如果需要跟隨當前市場實際價格,將SpotStrategy參數設為SpotAsPriceGo。如果需要設定能接受的最高價,將 SpotStrategy參數設為SpotWithPriceLimit

通過Terraform建立

前提條件

操作步驟

  1. 開啟瀏覽器,訪問Cloud Shell的地址https://shell.aliyun.com

    更多Cloud Shell入口及使用,請參見使用雲命令列

  2. 登入Cloud Shell。

  3. 執行vim terraform.tf命令,建立terraform.tf檔案。

  4. terraform.tf檔案中,輸入如下內容,然後輸入wq儲存配置。

    說明

    更多參數資訊,請參見alicloud參數說明

    provider "alicloud" {}
    
    resource "alicloud_vpc" "vpc" {
      name       = "tf_test_foo"
      cidr_block = "172.16.0.0/12"
    }
    
    resource "alicloud_vswitch" "vsw" {
      vpc_id            = alicloud_vpc.vpc.id
      cidr_block        = "172.16.0.0/21"
      availability_zone = "cn-hangzhou-b"
    }
    
    
    resource "alicloud_security_group" "default" {
      name = "default"
      vpc_id = alicloud_vpc.vpc.id
    }
    
    resource "alicloud_instance" "instance" {
      # 可用性區域
      availability_zone = "cn-hangzhou-b"
      # 綁定安全性群組
      security_groups = alicloud_security_group.default.*.id
    
      # 執行個體規格
      instance_type        = "ecs.n2.small"
      # 系統硬碟類型
      system_disk_category = "cloud_efficiency"
      # 作業系統鏡像
      image_id             = "ubuntu_140405_64_40G_cloudinit_20161115.vhd"
      # 執行個體名稱
      instance_name        = "test_foo"
      # 執行個體所在交換器
      vswitch_id = alicloud_vswitch.vsw.id
      # 公網頻寬
      internet_max_bandwidth_out = 10
      # 付費類型
      instance_charge_type = "PostPaid"
      # 搶佔式執行個體出價策略
      spot_strategy = "SpotAsPriceGo"
      # 搶佔式執行個體的保留時間長度
      spot_duration = 0
    }
    
    resource "alicloud_security_group_rule" "allow_all_tcp" {
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "1/65535"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
  5. 執行terraform init命令,初始化配置。初始化配置

  6. 執行terraform plan命令,預覽配置。預覽配置

  7. 執行terraform apply命令,建立搶佔式執行個體。建立ECS執行個體

  8. 執行terraform show命令,查看已建立的搶佔式執行個體。

    回顯樣本如下,表示搶佔式執行個體建立成功。

    查看已建立的執行個體