View a markdown version of this page

使用同步佈建啟動執行個體 - Amazon EC2 Auto Scaling

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

使用同步佈建啟動執行個體

您可以使用 LaunchInstances API,在 Auto Scaling 群組中同步啟動特定數量的執行個體。API 會在您指定的可用區域或子網路中啟動執行個體,並立即傳回執行個體 IDs或錯誤資訊。

先決條件

您必須先具有下列項目,才能使用 LaunchInstances API:

  • 使用啟動範本的 Auto Scaling 群組 (不支援啟動組態)

  • 您必須具有下列 IAM 動作的許可:

    • autoscaling:LaunchInstances

    • ec2:CreateFleet

    • ec2:DescribeLaunchTemplateVersions

使用同步佈建啟動執行個體

您可以透過 啟動具有同步佈建的執行個體 AWS CLI。

AWS CLI

若要使用同步佈建啟動執行個體:

aws autoscaling launch-instances \ --auto-scaling-group-name group-name \ --requested-capacity number \ [--availability-zones zone-name] \ [--subnet-ids subnet-id] \ [--availability-zone-ids zone-id] \ [--retry-strategy none|retry-with-group-configuration] \ [--client-token token]

範例

在特定可用區域中啟動執行個體

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 3 \ --availability-zones us-east-1a \ --retry-strategy retry-with-group-configuration

在特定子網路中啟動執行個體

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 2 \ --subnet-ids subnet-12345678 \ --retry-strategy none \ --client-token my-unique-token-123

處理回應

成功回應的範例:

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [ { "InstanceType": "m5.xlarge", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "InstanceIds": ["i-0123456789abcdef0", "i-0fedcba9876543210"] } ], "Errors": [] }

出現錯誤的回應範例

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [], "Errors": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "There is not enough capacity to fulfill your request for instance type 'm5.large' in 'us-east-1a'" } ] }

處理啟動失敗和重試

當 LaunchInstances API 遇到失敗時,您可以使用冪等字符和適當的重試政策來實作重試策略。

您可以使用用戶端字符參數重試請求。您也可以使用下列重試策略:

  • RetryStrategy: none (預設) - 如果 API 呼叫失敗,Auto Scaling 群組所需的容量保持不變,不會自動重試。

  • RetryStrategy: retry-with-group-configuration - 如果 API 呼叫失敗,Auto Scaling 群組所需的容量會增加請求的數量,Auto Scaling 將使用群組的標準組態和程序自動重試啟動執行個體。

的重試行為RetryStrategy: retry-with-group-configuration取決於失敗類型:

  • 驗證錯誤:由於無法繼續操作,因此不會增加所需的容量。例如,無效的參數或不支援的組態。

  • 容量錯誤:所需容量增加,Auto Scaling 將使用群組的正常擴展程序,以非同步方式重試啟動執行個體。

將用戶端字符用於冪等性

client-token 參數可確保等冪操作,並啟用啟動請求的安全重試。

關鍵行為:

  • 用戶端字符在初始請求的生命週期為 8 小時

  • 在 8 小時內使用相同的用戶端字符重試會傳回快取的回應,而不是啟動新的執行個體

  • 8 小時後,相同的用戶端字符將啟動新的啟動操作