本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在執行個體重新整理期間取代根磁碟區
運作方式
根磁碟區取代只會取代根 EBS 磁碟區,同時讓執行個體保持執行狀態,以更新您的執行個體。這消除了啟動新執行個體的需求,並避免潛在的容量限制。此程序會保留所有其他執行個體資源,包括:
-
網路介面和 IP 地址
-
非根 EBS 磁碟區
-
執行個體存放區磁碟區和資料
-
安全群組和 IAM 角色
在根磁碟區取代期間,您的應用程式會繼續在現有執行個體上執行。原始根磁碟區會分離,從您指定的 AMI 建立新的根磁碟區,然後連接至相同的執行個體。原始根磁碟區會在成功取代後自動刪除。
當您使用取代根磁碟區策略時,執行個體會經歷以下生命週期狀態:
-
ReplacingRootVolume- 根磁碟區取代開始 -
ReplacingRootVolume:Wait- 等待生命週期掛鉤完成 (如果已設定) -
ReplacingRootVolume:Proceed- 繼續替換 -
RootVolumeReplaced- 已成功完成取代
根磁碟區取代完成後,Auto Scaling 會對更新的執行個體執行運作狀態檢查。如果執行個體的根磁碟區取代失敗,Auto Scaling 會將該執行個體標記為終止,並將其取代為新的執行個體。
要求
-
Auto Scaling 群組必須使用混合執行個體政策
-
混合執行個體政策中的所有覆寫都必須指定
ImageId -
AMIs只能包含單一根磁碟區
-
所有執行個體都必須符合群組的啟動範本組態
-
您必須使用所需組態啟動執行個體重新整理,該組態具有包含
ImageId覆寫的混合執行個體政策。
使用取代根磁碟區啟動執行個體重新整理
使用取代根磁碟區 (AWS CLI) 啟動執行個體重新整理
使用下列 start-instance-refresh
aws autoscaling start-instance-refresh --cli-input-json file://config.json
config.json 的內容:
{ "AutoScalingGroupName":"my-asg", "Strategy" :"ReplaceRootVolume", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId":"my-launch-template", "Version":"1"}, "Overrides": [ { "InstanceType":"c5.large", "ImageId":"ami-1234example"}, { "InstanceType":"m5.large", "ImageId":"ami-2345example"} ] } } }, "Preferences": { "InstanceWarmup":60, "MinHealthyPercentage":90, "AutoRollback":true, "ScaleInProtectedInstances":Ignore, "StandbyInstances":Ignore} }
如果未提供偏好設定,則會使用預設值。如需詳細資訊,請參閱了解執行個體重新整理的預設值。
輸出範例:
{
"InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
限制
-
如果 EC2 Auto Scaling 群組或執行個體重新整理所需的組態使用
$Latest或$Default啟動範本版本,則無法使用取代根磁碟區啟動執行個體重新整理。 -
如果執行個體包含執行個體類型不存在於混合執行個體政策中的執行個體,則無法使用取代 Amazon EC2 Auto Scaling 群組上的根磁碟區來啟動執行個體重新整理。
-
使用取代根磁碟區重新整理執行個體期間,您只能連接具有所需組態混合執行個體政策中存在之類型的執行個體。
-
您無法在具有暖集區的 EC2 Auto Scaling 群組上使用取代根磁碟區來啟動執行個體重新整理。
-
您無法將暖集區新增至使用取代根磁碟區重新整理作用中執行個體的 Amazon EC2 Auto Scaling 群組。