使用 EC2 Auto Scaling 的可中斷容量保留 - Amazon EC2 Auto Scaling

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

使用 EC2 Auto Scaling 的可中斷容量保留

可中斷容量預留代表 AWS 組織內隨需容量預留擁有者提供給您的備用容量。這些保留適用於可中斷的工作負載,因為容量擁有者可以隨時透過 2 分鐘的中斷通知回收容量,之後執行個體就會終止。如需可中斷容量保留及其運作方式的概觀,請參閱《Amazon EC2 使用者指南》中的可中斷容量保留

若要開始使用,您可以從帳戶中的任何隨需容量保留配置未使用的容量,以建立可中斷的保留。接著,建立啟動範本,指定可中斷的容量保留 ID 和適當的市場類型。最後,建立 Auto Scaling 群組以使用您建立的啟動範本。

注意
  • 可中斷容量保留不支援混合執行個體群組。

  • 可中斷的容量保留會顯示在您的帳戶中,並將新屬性interruptible設為 true

操作準則

以下是在 Auto Scaling 群組中使用可中斷容量保留時應遵循的基本操作準則。

  • 從可中斷容量保留啟動的執行個體,可在回收容量時以 2 分鐘通知終止。設計您的應用程式來處理正常關機。

  • Amazon EC2 會在終止執行個體前 2 分鐘傳送 EventBridge 通知。雖然 Auto Scaling 不會自動回應這些事件,但您可以設定自訂自動化來回應中斷通知。

  • 當執行個體因容量回收而終止時,Auto Scaling 的運作狀態檢查程式會偵測終止,並根據您群組的組態自動啟動替換執行個體。

  • 指向特定版本的啟動範本,而不是 $Default$Latest版本,以確保一致性。

注意

當回收可中斷的容量保留執行個體時,Auto Scaling 群組的擴展活動將會顯示:taken out of service in response to an Amazon EC2 health check that indicated it had been terminated or stopped。Auto Scaling 會嘗試以與未通過運作狀態檢查的任何執行個體相同的方式取代執行個體。

在啟動範本中指定可中斷的容量保留

若要建立以 Auto Scaling 群組的特定可中斷容量保留為目標的啟動範本,請使用下列其中一種方法:

Console
在啟動範本中指定可中斷的容量保留 (主控台)
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在頂端導覽列上,選取您有可中斷容量保留 AWS 區域 的 。

  3. 在導覽窗格的 Instances (執行個體) 底下,選擇 Launch Templates (啟動範本)

  4. 選擇建立啟動範本,然後建立啟動範本。視需要包含 AMI 的 ID、執行個體類型和任何其他啟動範本設定。

  5. 展開進階詳細資訊區段以檢視進階設定。

  6. 針對購買選項,選擇可中斷的容量保留

  7. 針對容量保留,選擇依 ID 的目標,然後針對容量保留 - 依 ID 的目標,選擇現有可中斷容量保留的容量保留 ID。

  8. 當您完成時,請選擇建立啟動範本

如需使用啟動範本建立 Auto Scaling 群組的說明,請參閱 使用啟動範本建立 Auto Scaling 群組

AWS CLI
在啟動範本中指定可中斷的容量保留 (AWS CLI)

使用下列 create-launch-template 命令來建立啟動範本,以指定現有的可中斷容量保留 ID。將每個使用者輸入預留位置替換為自己的資訊。

aws ec2 create-launch-template --launch-template-name my-template-for-interruptible-cr \ --version-description AutoScalingVersion1 --region us-east-2 \ --launch-template-data file://config.json
提示

如果此命令擲回錯誤,請確定您已在 AWS CLI 本機將 更新為最新版本。

config.json 的內容:

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "t3.nano", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "interruptible-capacity-reservation" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

下列為範例輸出:

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-interruptible-cr", "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

您可以使用下列 describe-launch-template-versions 命令來驗證與啟動範本相關聯的中斷容量保留 ID:

aws ec2 describe-launch-template-versions --launch-template-names my-template-for-interruptible-cr \ --region us-east-2
Auto Scaling 群組層級組態

您可以選擇性地在 Auto Scaling 群組層級指定容量保留設定,以覆寫啟動範本設定:

  • 容量保留偏好設定:僅capacity-reservations-only支援可中斷的容量保留。不支援 capacity-reservations-first偏好設定。

  • 目標規格:您可以在群組層級指定不同的可中斷容量保留 ID,以覆寫啟動範本設定。

限制

  • 可中斷容量保留不支援混合執行個體政策。

  • 您必須在啟動範本中指定正確的市場類型 (interruptible-capacity-reservation) 以及容量保留 ID。