使用 Spot Fleet - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Spot Fleet

若要開始使用 Spot Fleet ,您需要建立一個 Spot Fleet 請求,其中包含目標容量、選用的隨需部分、執行個體的一個或多個啟動規格,以及您願意支付的最高價格。機群請求必須包含啟動規格,該範本定義機群啟動執行個體所需的資訊,例如 AMI、執行個體類型、子網或可用區域,以及一或多個安全群組。

如果您的叢集包含 競價型執行個體,則 Amazon EC2 會在 Spot 價格變更時嘗試維持您的叢集目標容量。

提交之後,即無法修改一次性請求的目標容量。若要變更一次性請求的目標容量,請刪除該請求,並提交新的請求。

Spot Fleet 請求會持續有效作用直到過期,或直到您取消該請求。取消機群請求時,您可以指定取消該請求是否終止該機群中的 Spot 執行個體。

Spot Fleet 請求狀態

Spot Fleet 請求可以是下列任一狀態:

  • submitted – 正在評估 Spot Fleet 請求且 Amazon EC2 正準備啟動執行個體的目標數量。超出 Spot 機群限制的請求會立即取消。

  • active – 已驗證 Spot Fleet 且 Amazon EC2 正在嘗試維持執行中的 Spot 執行個體目標數量。此請求會一直維持在該狀態,直到修改或取消。

  • modifying – 正在修改 Spot Fleet 請求。請求會一直維持在此狀態,直到已完成修改或已取消 Spot Fleet。一次性的 request 無法修改,而且其狀態不適用此種 Spot 請求。

  • cancelled_running – 已取消 Spot Fleet,而且不會啟動額外的 Spot 執行個體。其現有 競價型執行個體將繼續執行直到中斷或終止。此請求會一直維持在該狀態,直到所有執行個體中斷或終止。

  • cancelled_terminating – 已取消 Spot Fleet,並且其 Spot 執行個體正在終止。此請求會一直維持在該狀態,直到所有執行個體終止。

  • cancelled – 已取消 Spot Fleet 且沒有執行中的 Spot 執行個體。Spot Fleet 請求會在其執行個體終止之後兩天刪除。

Spot Fleet 運作狀態檢查

Spot Fleet 會每兩分鐘定期檢查機群中 Spot 執行個體的運作狀態。執行個體的運作狀態會是 healthyunhealthy

Spot Fleet 會根據 Amazon EC2 提供的狀態檢查資訊,來判定執行個體的運作狀態。如果執行個體狀態檢查或系統狀態檢查等運作狀態檢查,出現連續三次為 unhealthy,則該執行個體即為 impaired。如需詳細資訊,請參閱 您的執行個體的狀態檢查

您可以設定機群以取代運作狀態不佳的 競價型執行個體。啟用運作狀態檢查取代後,Spot 執行個體會在被報告為 unhealthy 時被取代。當取代一個狀態不佳的 Spot 執行個體時,機群可能會低於其目標容量長達幾分鐘。

要求
  • 運作狀態檢查替代僅支援維持目標容量的 Spot Fleets (類型 maintain 的機群),不支援一次性的 Spot Fleets (類型 request 的機群)。

  • 運作狀態檢查取代僅支援 競價型執行個體。此功能不支援 隨需執行個體。

  • 您可以設定 Spot Fleet,只在建立執行個體時取代狀況不良的執行個體。

  • 使用者只有在擁有呼叫 ec2:DescribeInstanceStatus 動作的許可時,才能使用運作狀態檢查取代功能。

Console
若要使用主控台來設定 Spot Fleet 以取代運作狀態不佳的 Spot 執行個體
  1. 遵循下列步驟,建立 Spot Fleet。如需詳細資訊,請參閱 使用已定義的參數建立 Spot Fleet 請求 (主控台)

  2. 若要設定機群以取代運作狀態不佳的 競價型執行個體,請在 運作狀態檢查 中選擇 取代運作狀態不佳的執行個體。若要啟用此選項,首先必須選擇維護目標容量

AWS CLI
若要使用 AWS CLI來設定 Spot Fleet 以取代運作狀態不佳的 Spot 執行個體
  1. 遵循下列步驟,建立 Spot Fleet。如需詳細資訊,請參閱 使用建立競價型叢集 AWS CLI

  2. 若要設定機群以取代運作狀態不佳的 競價型執行個體,請在 ReplaceUnhealthyInstances 中輸入 true

Spot Fleet 許可

如果使用者將會建立或管理 Spot 機群,您必須授予這些使用者所需的許可。

如果使用 Amazon EC2 主控台來建立 Spot Fleet,它會建立名為 AWSServiceRoleForEC2SpotFleetAWSServiceRoleForEC2Spot 的兩個服務連結角色,以及名為 aws-ec2-spot-fleet-tagging-role 的角色來授與 Spot Fleet 許可,以代表您請求、啟動、終止和標記資源。如果使用 AWS CLI 或 API,您必須確認這些角色存在。

請使用下列指示,授與必要的許可並建立角色。

將 Spot 機群的許可授予使用者

如果使用者將會建立或管理 Spot 機群,請務必授予這些使用者所需的許可。

為 Spot 機群建立政策
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇政策建立政策

  3. 建立政策頁面上,選擇 JSON,使用下列內容來替代其文字。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateTags", "ec2:RequestSpotFleet", "ec2:ModifySpotFleetRequest", "ec2:CancelSpotFleetRequests", "ec2:DescribeSpotFleetRequests", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequestHistory" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/aws-ec2-spot-fleet-tagging-role" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:ListRoles", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    上述範例政策會向使用者授予大多數 Spot Fleet 使用案例所需的許可。若要將使用者限制於特定的 API 動作,請改為僅指定這些 API 動作。

    需要的 EC2 和 IAM API

    必須在原則中包含下列 API:

    • ec2:RunInstances – 在 Spot Fleet 中啟動執行個體所需

    • ec2:CreateTags – 標記 Spot Fleet 請求、執行個體或磁碟區所需

    • iam:PassRole – 指定 Spot Fleet 角色所需

    • iam:CreateServiceLinkedRole – 建立服務連結角色所需

    • iam:ListRoles – 列舉現有 IAM 角色所需

    • iam:ListInstanceProfiles – 列舉現有執行個體描述檔所需

    重要

    如果您在啟動規格或啟動範本中為 IAM 執行個體設定檔指定角色,您必須授予使用者許可,以將角色傳遞到服務。若要執行此操作,請在 IAM 政策中包含 "arn:aws:iam::*:role/IamInstanceProfile-role",做為 iam:PassRole 動作的資源。如需詳細資訊,請參閱《IAM 使用者指南》中的授與使用者將角色傳遞給 AWS 服務的權限。

    Spot Fleet API

    視需要將下列 Spot Fleet API 動作新增至您的政策:

    • ec2:RequestSpotFleet

    • ec2:ModifySpotFleetRequest

    • ec2:CancelSpotFleetRequests

    • ec2:DescribeSpotFleetRequests

    • ec2:DescribeSpotFleetInstances

    • ec2:DescribeSpotFleetRequestHistory

    選用的 IAM API

    (選用) 若要讓使用者能夠使用 IAM 主控台建立角色或執行個體設定檔,您必須將下列動作新增至政策中:

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  4. 選擇檢閱政策

  5. Review policy (檢閱政策) 頁面上,輸入政策名稱和說明,然後選擇 Create policy (建立政策)

  6. 若要提供存取權,請新增權限至您的使用者、群組或角色:

    • 使用者和群組位於 AWS IAM Identity Center:

      建立權限合集。請遵循《AWS IAM Identity Center 使用者指南》中的建立許可集合的指示。

    • 透過身分提供者在 IAM 中管理的使用者:

      建立聯合身分的角色。請遵循《IAM 使用者指南》為第三方身分提供者 (聯合) 建立角色中的指示。

    • IAM 使用者:

Spot Fleet 的服務連結角色

Amazon EC2 使用許可的服務連結角色,它需要代表您呼叫其他 AWS 服務。服務連結角色是直接連結至 AWS 服務的唯一 IAM 角色類型。服務連結角色提供將權限委派給 AWS 服務的安全方式,因為只有連結的服務可以擔任服務連結角色。如需詳細資訊,請參閱《 IAM 使用者指南》中的使用服務連結角色

Amazon EC2 使用名為AWSServiceRoleForEC2SpotFleet的服務連結角色代表您啟動和管理執行個體。

重要

如果您在競價型叢集中指定加密的 AMI 或加密的 Amazon EBS 快照,則必須授與該AWSServiceRoleForEC2SpotFleet角色使用 CMK 的權限,以便 Amazon EC2 可以代表您啟動執行個體。如需詳細資訊,請參閱 授與 CMK 的存取權,以便與加密的 AMI 和 EBS 快照搭配使用

授予的權限 AWSServiceRoleForEC2SpotFleet

Amazon EC2 用AWSServiceRoleForEC2SpotFleet於完成以下操作:

  • ec2:RequestSpotInstances - 請求 競價型執行個體

  • ec2:RunInstances - 啟動執行個體

  • ec2:TerminateInstances - 終止執行個體

  • ec2:DescribeImages - 描述 Amazon Machine Images (AMI) 的執行個體

  • ec2:DescribeInstanceStatus - 監控執行個體的狀態

  • ec2:DescribeSubnets - 描述執行個體的子網絡

  • ec2:CreateTags - 將標籤新增至 Spot Fleet 請求、執行個體和磁碟區

  • elasticloadbalancing:RegisterInstancesWithLoadBalancer - 將指定執行個體新增到指定的負載平衡器

  • elasticloadbalancing:RegisterTargets - 向指定的目標群組登錄指定的目標

建立服務連結角色

在大部分情況下,您不需要手動建立服務連結角色。當您第一次使用主控台建立競價型叢集時,Amazon EC2 會建立AWSServiceRoleForEC2SpotFleet服務連結角色。

如果您在 2017 年 10 月之前有一個有效的競價型叢集請求,則當 Amazon EC2 開始支援此服務連結角色時,Amazon EC2 會在您的 AWS 帳戶中建立該AWSServiceRoleForEC2SpotFleet角色。如需詳細資訊,請參閱 IAM 使用者指南中出現在我的 AWS 帳戶中的新角色

如果您使用 AWS CLI 或 API 建立競價型叢集,則必須先確定此角色存在。

AWSServiceRoleForEC2SpotFleet 使用主控台建立
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

  3. 選擇 Create Role (建立角色)。

  4. Select trusted entity (選取信任的實體) 頁面上,執行以下作業:

    1. 針對信任的實體類型,請選擇 AWS 服務

    2. 使用案例下,對於服務或使用案例,選擇 EC2

    3. 對於使用案例,請選擇 EC2-競價型叢集

    4. 選擇下一步

  5. Add permissions (新增許可) 頁面上,選擇 Next (下一步)。

  6. 命名、檢閱和建立頁面上,選擇建立角色

若要 AWSServiceRoleForEC2SpotFleet 使用建立 AWS CLI

使用 create-service-linked-role 命令,如下所示。

aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com

如果您不再需要使用 Spot 叢集,建議您刪除該AWSServiceRoleForEC2SpotFleet角色。從您的帳戶中刪除此角色後,如果您使用主控台請求 Spot Fleet,Amazon EC2 會再次建立此角色。如需詳細資訊,請參閱《IAM 使用者指南》中的刪除服務連結角色

授與 CMK 的存取權,以便與加密的 AMI 和 EBS 快照搭配使用

如果您在 Spot 叢集請求中指定加密的 AMI 或加密的 Amazon EBS 快照,並使用客戶受管金鑰進行加密,則必須授與該AWSServiceRoleForEC2SpotFleet角色使用 CMK 的權限,以便 Amazon EC2 可以代表您啟動執行個體。若要執行此動作,您必須新增授與至 CMK,如以下列程序所示。

提供許可時,授與為金鑰政策的替代方案。如需詳細資訊,請參閱 開發人員指南中的使用授予 AWS KMS和AWS Key Management Service 中使用金鑰政策

授與 AWSServiceRoleForEC2SpotFleet 角色使用 CMK 的權限
  • 使用 create-grant 命令將授權新增至 CMK,並指定授與執行授權作業的主體 (AWSServiceRoleForEC2SpotFleet服務連結角色)。CMK 是透過 key-id 參數和 CMK 的 ARN 指定。主體是由grantee-principal參數和AWSServiceRoleForEC2SpotFleet服務連結角色的 ARN 所指定。

    aws kms create-grant \ --region us-east-1 \ --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:role/AWSServiceRoleForEC2SpotFleet \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Spot 執行個體的服務連結角色

Amazon EC2 使用名為AWSServiceRoleForEC2Spot的服務連結角色代表您啟動和管理 Spot 執行個體。如需詳細資訊,請參閱 Spot 執行個體請求的服務連結角色

標記 Spot Fleet 的 IAM 角色

aws-ec2-spot-fleet-tagging-role IAM 角色授予 Spot Fleet 許可,以標記 Spot Fleet 請求、執行個體和磁碟區。如需詳細資訊,請參閱 標記 Spot Fleet

重要

如果您選擇標記機群中的執行個體,並也選擇維護目標容量 (Spot 機群請求為類型 maintain),為使用者與 IamFleetRole 所設定的許可差異可能會導致機群中執行個體標記行為的不一致。如果 IamFleetRole 不包含 CreateTags 許可,則可能無法標記由機群啟動的某些執行個體。雖然我們正在努力修正此不一致,但為了確保標記由機群啟動的所有執行個體,建議您針對 IamFleetRole 使用 aws-ec2-spot-fleet-tagging-role 角色。或者,若要使用現有角色,請將受AmazonEC2SpotFleetTaggingRole AWS 管理策略附加至現有角色。否則,您需要手動將 CreateTags 許可新增至現有政策。

若要建立用於標記 Spot Fleet 的 IAM 角色
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

  3. 選擇 Create Role (建立角色)。

  4. Select trusted entity (選取受信任實體) 頁面,於 Trusted entity type (受信任實體的類型) 下,選擇 AWS service ( 服務)。

  5. 在 [使用案例] 下,從 [其他 AWS 服務的使用案例] 中選擇 [EC2],然後選擇 [EC2-競價型叢集標記]。

  6. 選擇下一步

  7. Add permissions (新增許可) 頁面上,選擇 Next (下一步)。

  8. Name, review, and create (名稱,檢閱和建立) 頁面上,針對 Role name (角色名稱) 輸入角色的名稱 (例如 aws-ec2-spot-fleet-tagging-role)。

  9. 檢視頁面上的資訊,然後選擇 Create role (建立角色)。

預防跨服務混淆代理人

混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多權限的實體執行該動作。若要限制 Spot 機群為資源提供另一項服務的許可,我們建議在 aws-ec2-spot-fleet-tagging-role 信任政策中使用 aws:SourceArnaws:SourceAccount 全域條件內容金鑰。

若要將 aws: SourceArn 和 aws: SourceAccount 條件金鑰新增至aws-ec2-spot-fleet-tagging-role信任政策
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

  3. 尋找您之前建立的 aws-ec2-spot-fleet-tagging-role 並選擇連結 (而非核取方塊)。

  4. Summary (摘要) 下,選擇 Trust relationships (信任關係) 索引標籤,然後選擇 Edit trust policy (編輯信任政策)。

  5. 在 JSON 陳述式中,加入一個 Condition 元素,其中包含 aws:SourceAccountaws:SourceArn 全域條件內容金鑰來防止混淆代理問題,如下所式:

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:account_id:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id" }
    注意

    如果 aws:SourceArn 值包含帳戶 ID,且同時使用這兩個全域條件內容金鑰,則在相同政策陳述式中使用 aws:SourceAccount 值和 aws:SourceArn 值中的帳戶時,必須使用相同的帳戶 ID。

    最終信任政策如下所示:

    { "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "spotfleet.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:account_id:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id" } } } }
  6. 選擇 更新政策

下表提供了 aws:SourceArn 的潛在值,以不同程度地限制 aws-ec2-spot-fleet-tagging-role 的範圍。

API 操作 呼叫的服務 範圍 aws:SourceArn
RequestSpotFleet AWS STS (AssumeRole) AssumeRole功能限制aws-ec2-spot-fleet-tagging-rolespot-fleet-requests 在指定帳戶中。 arn:aws:ec2:*:123456789012:spot-fleet-request/sfr-*
RequestSpotFleet AWS STS (AssumeRole) aws-ec2-spot-fleet-tagging-roleAssumeRole功能限制spot-fleet-requests 在指定帳戶和指定區域中。請注意,此角色在其他區域中無法使用。 arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-*
RequestSpotFleet AWS STS (AssumeRole) aws-ec2-spot-fleet-tagging-role 上的 AssumeRole 功能限制為僅限影響機群 sfr-11111111-1111-1111-1111-111111111111 的動作。請注意,此角色可能無法用於其他 Spot 機群。此外,此角色無法用於透過request-spot-fleet啟動任何新的 Spot 艦隊。 arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-11111111-1111-1111-1111-111111111111

建立 Spot Fleet 請求

使用 AWS Management Console,只選擇您的應用程式或工作需求以及最低運算規格,以快速建立 Spot Fleet 請求。Amazon EC2 會設定最符合您的需求並遵循 Spot 最佳實務的機群。如需詳細資訊,請參閱 快速建立 Spot Fleet 請求 (主控台)。否則,您可以修改任何預設設定。如需詳細資訊,請參閱 使用已定義的參數建立 Spot Fleet 請求 (主控台)使用建立競價型叢集 AWS CLI

快速建立 Spot Fleet 請求 (主控台)

依照這些步驟快速建立 Spot Fleet 請求。

若要使用建議的設定建立 Spot Fleet 請求 (主控台)
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 如果您是第一次使用 Spot,將會顯示歡迎頁面;請選擇開始使用。否則,請選擇請求競價型執行個體

  4. Launch parameters (啟動參數) 下,選擇 Manually configure launch parameters (手動設定啟動參數)。

  5. 對於 AMI,選擇 AMI。

  6. Target capacity (目標容量) 下, 針對 Total target capacity (總目標容量),指定要請求的單位數目。對於單位類型,您可以選擇 Instances (執行個體)、vCPUs, 或 Memory (MiB) (記憶體 (MiB))。

  7. 對於 Your fleet request at a glance (您的機群請求一覽),檢閱您的機群組態,然後選擇 Launch (啟動)。

使用已定義的參數建立 Spot Fleet 請求 (主控台)

您可以使用您定義的參數建立 Spot Fleet。

若要使用已定義的參數建立 Spot Fleet 請求 (主控台)
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 如果您是第一次使用 Spot,將會顯示歡迎頁面;請選擇開始使用。否則,請選擇請求競價型執行個體

  4. 對於 Launch parameters (啟動參數),請執行下列動作:

    1. 若要在 Spot 主控台中定義啟動參數,請選擇 Manually configure launch parameters (手動設定啟動參數)。

    2. 對於 AMI,請選擇由提供的基本 AMI 之一 AWS,或選擇 [搜尋 AMI] 以使用我們使用者社群 AWS Marketplace、或您自己的使用者社群中的 AMI。

      注意

      如果啟動參數中指定的 AMI 已取消註冊或停用,則無法從 AMI 啟動新執行個體。對於設定為維持目標容量的車隊,將不會維持目標容量。

    3. (選用) 針對金鑰對名稱,選擇現有的金鑰對或建立新的金鑰對。

      [現有的金鑰對] 選擇金鑰對。

      [新的金鑰對] 選擇 Create new key pair (建立新的金鑰對) 以前往 Key Pairs (金鑰對) 頁面。當您完成時,請返回 Spot Requests (Spot 請求) 頁面並重新整理清單。

    4. (選用) 展開 Additional launch parameters (其他啟動參數),並執行下列動作:

      1. (選用) 若要啟用 Amazon EBS 最佳化,請針對 EBS-optimized (EBS 最佳化),選取 Launch EBS-optimized instances (啟動 EBS 最佳化的執行個體)。

      2. (選用) 若要新增執行個體的暫時區塊層級儲存,請針對執行個體存放區,選擇連接啟動

      3. (選用) 若要新增儲存空間,請選擇 Add new volume (新增磁碟區),並指定其他的執行個體存放區磁碟區或 Amazon EBS 磁碟區,取決於執行個體類型。

      4. (選用) 執行個體預設為啟用基本監控。若要啟用詳細監視,對於監視,請選取啟用 CloudWatch 詳細監視

      5. (選用) 若要執行專用 Spot 執行個體,對於租用,請選擇 Dedicated - run a dedicated instance (專用 - 執行專用執行個體)。

      6. (選用) 針對安全群組,選擇一或多個安全群組或建立新的安全群組。

        [現有的安全群組] 選擇一或多個安全群組。

        [新的安全群組] 選擇 Create new security group (建立新安全群組) 以前往 Security Groups (安全群組) 頁面。當您完成時,請返回 Spot Requests (Spot 請求) 並重新整理清單。

      7. (選用) 若要從網際網路連線到您的執行個體,請針對自動指派 IPv4 公有 IP,選擇啟用

      8. (選用) 若要啟動包含 IAM 角色的 競價型執行個體,請針對 IAM 執行個體描述檔,選擇該角色。

      9. (選用) 若要執行啟動指令碼,請將指令碼複製到使用者資料

      10. (選用) 若要新增標籤,請選擇 Create tag (建立標籤) 並輸入標籤的鍵和值,然後選擇 Create (建立)。針對每個標籤,重複執行上述動作。

        對於每個標籤,若要使用相同標籤標記執行個體和 Spot Fleet 請求,請確定同時選取 Instances (執行個體) 和 Fleet (機群)。若只要標記由機群啟動的執行個體,請清除 Fleet (機群)。若只要標記 Spot Fleet 請求,請清除 Instances (執行個體)。

  5. 針對其他請求詳細資訊,執行下列操作:

    1. 檢閱其他的請求詳細資訊。若要進行變更,請清除套用預設值

    2. (選用) 針對 IAM 叢集角色,您可使用預設角色或選擇不同的角色。若要在變更角色後使用預設角色,請選擇使用預設角色

    3. (選用) 針對最高價格,您可以使用預設的最高價格 (隨需價格),或指定您願意支付的最高價格。如果最高價格低於您所選執行個體類型的 Spot 價格,則 競價型執行個體不會啟動。

    4. (選用) 若要建立僅在特定期間內有效的請求,請編輯請求有效性起始日期請求有效性結束日期

    5. (選用) 根據預設,我們會在 Spot Fleet 請求到期時終止 Spot 執行個體。若要在請求過期後繼續執行這些執行個體,請清除在請求過期時終止執行個體

    6. (選用) 若要登錄 競價型執行個體與負載平衡器,請選擇從一個或多個負載平衡器接收流量,然後選擇一個或多個 Classic Load Balancer 或目標群組。

  6. 針對最小運算單位,選擇應用程式或任務所需之最低硬體規格 (vCPU、記憶體和儲存),再選擇依規格依執行個體類型

    • 針對依規格,指定所需 vCPU 數目和記憶體數量。

    • 針對依執行個體類型,接受預設的執行個體類型,或選擇變更執行個體類型選擇不同的執行個體類型。

  7. 針對 Target capacity (目標容量),執行下列動作:

    1. 針對 Total target capacity (總目標容量),指定目標容量要請求的單位數目。對於單位類型,您可以選擇 Instances (執行個體)、vCPUs, 或 Memory (MiB) (記憶體 (MiB))。指定目標容量為 0,以便稍後可新增容量,選擇維持目標容量

    2. (選用) 針對 Include On-Demand base capacity (包含隨需基礎容量),指定要請求的隨需單位數量。數量必須小於總目標容量。Amazon EC2 會計算差額,並將差額分配給要請求的 Spot 單位。

      重要

      若要指定選用的隨需容量,您必須先選擇啟動範本。

    3. (選擇性) Amazon EC2 預設會在競價型執行個體中斷時終止。若要維持目標容量,請選取維持目標容量。然後,您可以指定 Amazon EC2 在 Spot 執行個體中斷時終止、停止或休眠。若要這麼做,請在中斷行為中選擇對應的選項。

      注意

      如果啟動參數中指定的 AMI 已取消註冊或停用,則無法從 AMI 啟動新執行個體。對於設定為維持目標容量的車隊,將不會維持目標容量。

    4. (選用) 若要允許 Spot Fleet 在機群中為現有的 Spot 執行個體發出執行個體重新平衡通知時啟動替代 Spot 執行個體,請選取 Capacity rebalance (容量重新平衡),然後選擇執行個體取代策略。如果選擇 Launch before terminate (終止前啟動),請指定 Spot Fleet 終止舊執行個體之前的延遲 (以秒為單位)。如需詳細資訊,請參閱 容量重新平衡

    5. (選用) 若要控制您為了在機群中所有的 Spot 執行個體所支付的每小時金額,請選取 Set maximum cost for Spot Instances (設定 Spot 執行個體的最大成本),然後輸入您願意支付的每小時金額上限。達到總額上限時,Spot Fleet 會停止啟動 Spot 執行個體,即使它未符合目標容量亦然。如需詳細資訊,請參閱 控制花費

  8. 針對 Network (網路),請執行下列動作:

    1. 針對網路,選擇現有的 VPC 或建立新的 VPC。

      [現有的 VPC] 選擇 VPC。

      [新的 VPC] 選擇建立新的 VPC 以進入 Amazon VPC 主控台。當您完成時,請返回精靈並重新整理清單。

    2. (選用) 對於可用區域,讓 AWS 為您的 Spot 執行個體選擇可用區域,或指定一個或多個可用區域。

      如果您在可用區域中擁有一或多個子網,請從子網選擇適當的子網。若要新增子網,請選擇建立新的子網,以進入 Amazon VPC 主控台。當您完成時,請返回精靈並重新整理清單。

  9. 針對 Instance type requirements (執行個體類型需求),您可以指定執行個體屬性,並讓 Amazon EC2 利用這些屬性識別最的執行個體類型,或者您可以指定執行個體清單。如需詳細資訊,請參閱 Spot Fleet 的屬性型執行個體類型選擇

    1. 如果選擇 Specify instance attributes that match your compute requirements (指定符合運算需求的執行個體屬性),請指定您的執行個體屬性,如下所示:

      1. 對於 vCPUs,輸入所需的 vCPU 數量下限和上限。若要指定無限制,請選取 No minimum (無下限)、No maximum (無上限),或兩者。

      2. 對於 Memory (GiB) (記憶體 (GiB)),輸入所需記憶體數量的下限和上限。若要指定無限制,請選取 No minimum (無下限)、No maximum (無上限),或兩者。

      3. (選用) 對於 Additional instance attributes (其他執行個體屬性),您可以選擇性地指定一或多個屬性,以更詳細地表達您的運算需求。每個額外屬性都會將進一步的限制新增至您的請求。您可以省略額外屬性;省略時,就會使用預設值。如需每個屬性及其預設值的說明,請參閱 Amazon EC2 命令列參考get-spot-placement-scores中的。

      4. (選用) 若要檢視具有所指定屬性的執行個體類型,請展開 Preview matching instance types (預覽相符的執行個體類型)。若要排除執行個體類型,使其不在請求中使用,請選取執行個體,然後選擇 Exclude selected instance types (排除選取的執行個體類型)。

    2. 如果選擇 Manually select instance types (手動選取執行個體類型),Spot Fleet 會提供預設的執行個體類型清單。若要選取更多執行個體類型,請選擇 Add instance types (新增執行個體類型)、選取要在請求中使用的執行個體類型,然後選擇 Select (選取)。若要刪除執行個體類型,請選取執行個體類型並選擇 Delete (刪除)。

  10. 針對 Allocation strategy (分配策略) 選擇符合您需求的策略。如需詳細資訊,請參閱 競價型執行個體 的分配策略

  11. 針對 Your fleet request at a glance (您的機群請求一覽),檢閱您的機群配置,並視需要進行任何調整。

  12. (選擇性) 若要下載啟動組態的複本以搭配使用 AWS CLI,請選擇 JSON 設定

  13. 選擇 Launch (啟動)

    Spot 機群請求類型為 fleet。請求處理完成時,會新增類型為 instance 的請求,其狀態為 activefulfilled

使用建立競價型叢集 AWS CLI

若要使用建立競價型叢集請求 AWS CLI
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

如需組態檔案範例,請參閱 Spot Fleet 範例組態

下列為範例輸出:

{ "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

標記 Spot Fleet

為便於將 Spot Fleet 請求分類和進行管理,您可以利用自訂中繼資料來標記這些請求。您可以在建立 Spot Fleet 請求時或之後將標記指派給請求。您可以使用 Amazon EC2 主控台或命令列工具來指派標籤。

當您標記 Spot Fleet 請求時,由 Spot Fleet 啟動的執行個體和磁碟區不會自動加上標記。您需要明確標記由 Spot Fleet 啟動的執行個體和磁碟區。您可以選擇僅將標籤指派給 Spot Fleet 請求,或僅指派給機群啟動的執行個體,或僅指派給連接至機群啟動之執行個體的磁碟區,或指派給前述三項。

注意

磁碟區標籤僅支援連接至 隨需執行個體 的磁碟區。您無法為連接至 競價型執行個體 的磁碟區加標籤。

如需標籤運作方式的詳細資訊,請參閱標記您的 Amazon EC2 資源

必要條件

授予使用者標記資源的許可。如需詳細資訊,請參閱 範例:標籤資源

授予使用者標記資源的許可

建立包含下列項目的 IAM 政策:

  • ec2:CreateTags 動作。這會授予使用者建立標籤的許可。

  • ec2:RequestSpotFleet 動作。這會授予使用者建立 Spot 機群請求的許可。

  • 對於 Resource,您必須指定 "*"。這可讓使用者標記所有資源類型。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagSpotFleetRequest", "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "*" } ] }
重要

我們目前不支援 spot-fleet-request 資源的資源層級許可。如果您指定 spot-fleet-request 作為資源,當您嘗試標記機群時,會收到未經授權的例外狀況。下列範例說明如何不要設定政策。

{ "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*" }

若要提供存取權,請新增權限至您的使用者、群組或角色:

  • 使用者和群組位於 AWS IAM Identity Center:

    建立權限合集。請遵循《AWS IAM Identity Center 使用者指南》中的建立許可集合的指示。

  • 透過身分提供者在 IAM 中管理的使用者:

    建立聯合身分的角色。請遵循《IAM 使用者指南》為第三方身分提供者 (聯合) 建立角色中的指示。

  • IAM 使用者:

標記新的 Spot Fleet

若要使用主控台標記新的 Spot Fleet 請求
  1. 遵循使用已定義的參數建立 Spot Fleet 請求 (主控台)程序。

  2. 若要新增標籤,請展開其他組態,選擇新增標籤,然後輸入標籤的金鑰和值。針對每個標籤,重複執行上述動作。

    對於每個標籤,您可以標記 Spot Fleet 請求和具有相同標籤的執行個體。若要標記兩者,請確定已同時選取執行個體標籤機群標籤。若只要標記 Spot Fleet 請求,請清除 Instance tags (執行個體標籤)。若只要標記由機群啟動的執行個體,請清除機群標籤

  3. 完成建立 Spot Fleet 請求的必要欄位,然後選擇 Launch (啟動)。如需詳細資訊,請參閱 使用已定義的參數建立 Spot Fleet 請求 (主控台)

若要使用標記新的 Spot 叢集請求 AWS CLI

若要在建立 Spot Fleet 請求時加上標記,請依下列方式設定 Spot Fleet 請求組態:

  • SpotFleetRequestConfig 中指定 Spot Fleet 請求的標籤。

  • 對於 ResourceType,請指定 spot-fleet-request。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

在下面的例子中,Spot Fleet 請求標記了兩個標籤:Key=Environment and Value=Production 和 Key=Cost-Center and Value=123。

{ "SpotFleetRequestConfig": { "AllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "TagSpecifications": [ { "ResourceType": "spot-fleet-request", "Tags": [ { "Key": "Environment", "Value":"Production" }, { "Key": "Cost-Center", "Value":"123" } ] } ] } }

標記新的 Spot Fleet 以及執行個體和其啟動的磁碟區

標記新的 Spot 叢集請求及其啟動的執行個體和磁碟區 AWS CLI

若要在建立 Spot Fleet 請求時加上標記,並在機群啟動執行個體和磁碟區時給它們加上標記,請依下列方式設定 Spot Fleet 請求組態:

Spot Fleet 請求標籤:
  • SpotFleetRequestConfig 中指定 Spot Fleet 請求的標籤。

  • 對於 ResourceType,請指定 spot-fleet-request。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

執行個體標籤:
  • LaunchSpecifications 中指定執行個體的標籤。

  • 對於 ResourceType,請指定 instance。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

    或者,您可以在 Spot Fleet 請求中參照的啟動範本中,指定執行個體的標籤。

磁碟區標籤:
  • 在 Spot Fleet 請求中參照的啟動範本中,指定磁碟區的標籤。不支援在 LaunchSpecifications 中標記磁碟區。

在下面的例子中,Spot Fleet 請求標記了兩個標籤:Key=Environment and Value=Production 和 Key=Cost-Center and Value=123。由機群啟動的執行個體標記了一個標籤 (這與 Spot Fleet 請求的標籤之一相同):Key=Cost-Center and Value=123。

{ "SpotFleetRequestConfig": { "AllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "TagSpecifications": [ { "ResourceType": "spot-fleet-request", "Tags": [ { "Key": "Environment", "Value":"Production" }, { "Key": "Cost-Center", "Value":"123" } ] } ] } }
若要使用標記 Spot 叢集啟動的執行個體 AWS CLI

若要在機群啟動執行個體時加上標記,您可以在 Spot Fleet 請求中參照的啟動範本中指定標籤,或者您可以指定 Spot Fleet 請求組態中的標籤,如下所示:

  • LaunchSpecifications 中指定執行個體的標籤。

  • 對於 ResourceType,請指定 instance。若指定其他值,機群請求將會失敗。

  • 對於 Tags,指定金鑰值對。您可以指定多個金鑰值對。

在下列範例中,機群啟動的執行個體均標記了一個標籤:Key=Cost-Center and Value=123。

{ "SpotFleetRequestConfig": { "AllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1 } }
若要使用 AWS CLI來標記連接至由 Spot Fleet 啟動的隨需執行個體的磁碟區

若要在機群建立磁碟區時標記磁碟區,請在 Spot Fleet 請求中參考的啟動範本中指定標籤。

注意

磁碟區標籤僅支援連接至 隨需執行個體 的磁碟區。您無法為連接至 競價型執行個體 的磁碟區加標籤。

不支援在 LaunchSpecifications 中標記磁碟區。

標記現有 Spot Fleet

若要使用主控台標記現有的 Spot Fleet 請求

建立 Spot Fleet 請求後,您可以使用主控台為機群請求新增標籤。

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求。

  4. 選擇標籤索引標籤,然後選擇建立標籤

若要使用標記現有的 Spot 叢集請求 AWS CLI

使用 create-tags 命令來標記現有資源。在下面的例子中,現有的 Spot Fleet 請求會使用 Key=purpose 和 Value=test 標籤。

aws ec2 create-tags \ --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \ --tags Key=purpose,Value=test

檢視 Spot Fleet 請求標籤

若要使用主控台檢視 Spot Fleet 請求標籤
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求並選擇 Tags (標籤)。

若要描述 Spot Fleet 請求標籤

使用 describe-tag 命令檢視指定資源的標籤。在下面的範例中,會描述指定 Spot Fleet 請求的標籤。

aws ec2 describe-tags \ --filters "Name=resource-id,Values=sfr-11112222-3333-4444-5555-66666EXAMPLE"
{ "Tags": [ { "Key": "Environment", "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-fleet-request", "Value": "Production" }, { "Key": "Another key", "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-fleet-request", "Value": "Another value" } ] }

您也可以透過描述 Spot Fleet 請求來檢視 Spot Fleet 請求的標籤。

使用此describe-spot-fleet-requests命令檢視指定的 Spot 叢集要求的組態,其中包括針對叢集要求指定的任何標籤。

aws ec2 describe-spot-fleet-requests \ --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotFleetRequestConfigs": [ { "ActivityStatus": "fulfilled", "CreateTime": "2020-02-13T02:49:19.709Z", "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimized", "OnDemandAllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "Default", "FulfilledCapacity": 2.0, "OnDemandFulfilledCapacity": 0.0, "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "TargetCapacity": 2, "OnDemandTargetCapacity": 0, "Type": "maintain", "ReplaceUnhealthyInstances": false, "InstanceInterruptionBehavior": "terminate" }, "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "SpotFleetRequestState": "active", "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ] } ] }

說明您的 Spot 機群

當您的最高價超過 Spot 價格,而且有可用的容量時,Spot Fleet 會啟動 Spot 執行個體。競價型執行個體會持續運作直到中斷或您自行將其終止。

如要說明您的 Spot 機群 (主控台)
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求。若要查看組態的詳細資訊,請選擇描述

  4. 若要列出 Spot Fleet 的 Spot 執行個體,請選擇 Instances (執行個體)。

  5. 若要檢視 Spot Fleet 的歷史記錄,請選擇 History (歷史記錄)。

如要說明您的 Spot 機群 (AWS CLI)

使用命describe-spot-fleet-requests令描述您的 Spot 叢集請求。

aws ec2 describe-spot-fleet-requests

使用命describe-spot-fleet-instances令描述指定 Spot 叢集的 Spot 執行個體。

aws ec2 describe-spot-fleet-instances \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE

使用 describe-spot-fleet-request-history 命令來描述指定競價型叢集請求的歷史記錄。

aws ec2 describe-spot-fleet-request-history \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --start-time 2015-05-18T00:00:00Z

修改 Spot Fleet 請求

您可以修改作用中的 Spot Fleet 請求,來完成下列任務:

  • 增加目標容量和隨需部分

  • 減少目標容量和隨需部分

注意

您無法修改一次性的 Spot Fleet 請求。當您建立 Spot Fleet 請求時,如果已選取 Maintain target capacity (維護目標容量),則只能修改 Spot Fleet 請求。

當您增加目標容量時,Spot Fleet 會啟動額外的 Spot 執行個體。當您增加隨需部分時,Spot Fleet 會啟動額外的隨需執行個體。

當您增加目標容量時,Spot Fleet 會根據其 Spot Fleet 請求的分配策略,來啟動額外的 Spot 執行個體。如果分配策略為 lowestPrice,則 Spot 機群會從 Spot 機群請求中價格最低的 Spot 容量集區啟動執行個體。如果分配策略為 diversified,則 Spot Fleet 會在 Spot Fleet 請求的集區中分配執行個體。

當您減少目標容量時,Spot Fleet 會取消超出新目標容量的所有開放要求。您可以請求 Spot Fleet 終止 Spot 執行個體,直到機群大小達到新的目標容量。如果分配策略為 lowestPrice,則 Spot Fleet 會以最高每單位價格終止執行個體。如果分配策略為 diversified,則 Spot Fleet 會在集區中終止執行個體。或者,您可以請求該 Spot Fleet 將機群保持為目前的大小,但不能取代任何中斷的或您手動終止的 Spot 執行個體。

當 Spot Fleet 因為目標容量減少而終止執行個體時,執行個體會收到 Spot 執行個體中斷通知。

若要修改 Spot Fleet 請求 (主控台)
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求。

  4. 選擇動作修改目標容量

  5. 修改目標容量中,執行下列動作:

    1. 輸入新的目標容量和隨需部分。

    2. (選用) 如果您正在減少目標容量,但希望叢集保持目前的大小,請清除終止執行個體

    3. 選擇提交

若要使用修改 Spot 叢集請求 AWS CLI

使用命modify-spot-fleet-request令更新指定 Spot 叢集請求的目標容量。

aws ec2 modify-spot-fleet-request \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --target-capacity 20

如果要減少所指定 Spot Fleet 的目標容量,而不會因此終止任何 Spot 執行個體,您可以如下修改先前的命令:

aws ec2 modify-spot-fleet-request \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --target-capacity 10 \ --excess-capacity-termination-policy NoTermination

取消 Spot Fleet 請求

如果不再需要 Spot 機群,則可取消 Spot 機群請求。取消機群請求後,也會取消與機群相關的所有 Spot 請求,因此不會啟動新的 Spot 執行個體。

刪除時 Spot 機群請求時,必須指定是否也要終止其全部執行個體。這包含隨需執行個體和 Spot 執行個體。

如果指定在刪除機群請求時必須終止執行個體,則機群請求會進入 cancelled_terminating 狀態。否則,機群請求會進入 cancelled_running 狀態,而執行個體會持續執行直到中斷,或直到您手動終止這些執行個體。

限制
  • 您可以在單一要求中刪除多達 100 個叢集。如果超過指定的數目,則不會刪除任何叢集。

若要取消 Spot Fleet 請求 (主控台)
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在瀏覽窗格中,選擇 Spot 請求

  3. 選取您的 Spot Fleet 請求。

  4. 選擇動作取消請求

  5. 取消 Spot 請求對話方塊中,執行下列操作:

    1. 若要在取消 Spot 機群請求的同時終止關聯的執行個體,請將終止執行個體核取方塊保持為選取狀態。若要取消 Spot 機群請求,而不終止關聯的執行個體,請清除終止執行個體核取方塊。

    2. 選擇確認

若要取消 Spot 叢集請求並使用終止其執行個體 AWS CLI

使用cancel-spot-fleet-requests命令取消指定的 Spot 叢集請求,並終止其隨需執行個體和 Spot 執行個體。

aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --terminate-instances

範例輸出

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_terminating", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }
使用 AWS CLI取消 Spot 機群請求,而不終止其執行個體

您可以使用 --no-terminate-instances 參數來修改前一個命令,以取消指定的 Spot 機群請求,而無需終止其隨需執行個體和 Spot 執行個體。

aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --no-terminate-instances

範例輸出

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_running", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }