您可以通過ECS控制台、API或Terraform建立搶佔式執行個體。
使用須知
在使用搶佔式執行個體時,您需要考慮如下內容:
選擇合理的出價。
出價要充分考慮到市場價格的波動,合理的出價可以提升搶佔式執行個體建立成功的機率,而且建立後才不容易因為價格因素被釋放。另外,出價還必須符合您根據自身業務評估後的預期。
說明如果您暫時不能決定出價,建議使用自動出價,即接受即時的市場價格作為執行個體規格的計費價格 。
使用的鏡像必須包含所需軟體的配置,確保執行個體在建立完成後可以隨時啟動。您還能使用執行個體自訂資料在啟動時運行命令。詳情請參見執行個體自訂資料。
建議您使用不受搶佔式執行個體釋放影響的儲存介質來儲存您的重要資料。
例如,您可以使用獨立建立的雲端硬碟(不能設定為隨執行個體一起釋放)、OSS、RDS等儲存資料。
將工作拆分為小的任務(使用網格、Hadoop或基於隊列的架構)或者使用檢查點,便於您經常儲存計算結果。
使用搶佔式執行個體釋放通知來監控搶佔式執行個體的狀態。
您可以通過執行個體中繼資料每分鐘擷取一次執行個體的狀態,阿里雲ECS釋放搶佔式執行個體時,會提前5分鐘更新中繼資料資訊。詳情請參見ECS執行個體中繼資料概述。
測試您的應用程式,確保它能很好地處理意外釋放的執行個體。
您可以使用隨用隨付執行個體來運行該應用程式,然後自行釋放這台執行個體,從而確認應用程式是否能處理自動釋放的執行個體。
操作步驟
通過ECS控制台建立
前往執行個體建立頁。
選擇自訂購買頁簽。
根據實際需求和頁面提示,設定ECS資源配置資訊。
需注意以下參數(其他配置項說明,請參考自訂購買執行個體):
付費模式:選擇搶佔式執行個體。
搶佔式執行個體使用時間長度:
設定執行個體使用1小時:執行個體穩定運行1小時不會被自動釋放,超過1小時後,系統每5分鐘監測庫存、您出價的變化,進而判斷您是否能夠繼續使用資源。
無確定使用時間長度:基於實際業務需求,不進行資源使用時間長度的設定,優勢在於相較設定執行個體使用時間長度可獲得更優成本。
單台執行個體規格上限價:
使用自動出價:選擇跟隨當前市場價格的模式,即表示始終接受即時的市場價格作為執行個體規格的計費價格 。
設定單台上限價:您必須為指定的執行個體規格設定一個價格上限,即您願意為這個執行個體規格支付的最高價格 。
在最終建立執行個體前,請在頁面檢查執行個體的整體配置並配置使用時間長度等選項,確保各項配置符合您的要求。
閱讀並確認《Elastic Compute Service服務條款》 和《泛型服務條款》,單擊確認下單。
通過API建立
您可以通過阿里雲CLI、OpenAPI Explorer和阿里雲SDK等開發人員工具調用RunInstances介面建立搶佔式執行個體。 具體操作,請參見RunInstances。
如果需要跟隨當前市場實際價格,將SpotStrategy參數設為SpotAsPriceGo。如果需要設定能接受的最高價,將 SpotStrategy參數設為SpotWithPriceLimit。
通過Terraform建立
前提條件
已準備阿里雲帳號以及對應的存取金鑰(AccessKey)。
使用Terraform時需要設定阿里雲帳號的AccessKey資訊。AccessKey的擷取方式,請參見建立AccessKey。
已安裝並配置了Terraform。
已將alicloud升級到1.198.0版本。
操作步驟
開啟瀏覽器,訪問Cloud Shell的地址https://shell.aliyun.com。
更多Cloud Shell入口及使用,請參見使用雲命令列。
登入Cloud Shell。
執行
vim terraform.tf
命令,建立terraform.tf檔案。在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" }
執行
terraform init
命令,初始化配置。執行
terraform plan
命令,預覽配置。執行
terraform apply
命令,建立搶佔式執行個體。執行
terraform show
命令,查看已建立的搶佔式執行個體。回顯樣本如下,表示搶佔式執行個體建立成功。