為什麼在 EC2 主控台中建立警示時停用「復原此執行個體」選項?
我正在嘗試在 Amazon Elastic Compute Cloud (Amazon EC2) 主控台中建立一個 Amazon CloudWatch 警報。如果 EC2 執行個體因基礎硬體故障而受損,我想要復原它,然後在警示觸發時傳送通知。不過,在「建立警示」頁面上,「採取行動」下的「復原此執行個體」選項會變成灰色 (停用)。警報通知選項也會停用。如何重新開啟這些選項?
簡短描述
如果 CloudWatch 判斷 EC2 執行個體使用執行個體儲存體磁碟區,則會停用 Recover this instance (復原此執行個體) 選項。使用執行個體儲存體磁碟區的 EC2 執行個體不支援復原動作,包括使用執行個體儲存體磁碟區的區塊型裝置映射啟動的執行個體。CloudWatch 會讀取與每個 EC2 執行個體相關聯的中繼資料,以在啟用復原動作之前確認其不使用執行個體儲存體磁碟區。
**注意:**只有特定執行個體類型才支援「復原」動作。請確定您已啟動支援的執行個體類型。如需詳細資訊,請參閱復原執行個體。EC2 復原警示動作僅對 StatusCheckFailed_System 指標有效。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新的 AWS CLI 版本。
繼續之前,請參閱建立停止、終止、重新開機或復原執行個體的警示。請確定您符合建立 CloudWatch 警示的所有先決條件。
在 EC2 Linux 執行個體中尋找臨時執行個體儲存體磁碟區
1. 連線至您的 Linux 執行個體。
2. 使用下列命令從執行個體擷取中繼資料。
curl http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 使用輸出來識別映射至執行個體的執行個體儲存磁碟區 (其名稱以「ephemeral」開頭)。例如,此輸出中有兩個執行個體儲存磁碟區 (「ephemeral0」和「ephemeral2」):
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ ami ephemeral0 ephemeral2 root
在 EC2 Windows 執行個體中尋找臨時執行個體儲存體磁碟區
使用瀏覽器:
2. 開啟瀏覽器並連線至:
http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 使用傳回的資訊來識別映射至執行個體的執行個體儲存磁碟區 (名稱以「ephemeral」開頭)。
使用 Windows PowerShell:
1. 連線到您的 PowerShell中的 Windows 執行個體。
2. 執行下列命令:
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/
3. 使用輸出來識別映射至執行個體的執行個體儲存磁碟區 (其名稱以「ephemeral」開頭)。例如,此輸出中有一個執行個體儲存磁碟區 (「ephemeral0」):
ami ephemeral0 root swap
如需詳細資訊,請參閱檢視執行個體儲存體磁碟區的執行個體區塊型裝置映射。
在 EC2 執行個體的 AMI 中尋找臨時執行個體儲存體磁碟區
檢閱 EC2 執行個體之 Amazon Machine Image (AMI) 的區塊型裝置映射。檢查「區塊型裝置」欄位包含「=ephemeral#」的區塊型裝置執行個體儲存磁碟區,其中「#」是介於 0-23 的整數。
即使執行個體類型不正式支援執行個體儲存體磁碟區,也可能會發生區塊型裝置映射。當您使用下列其中一項來啟動 EC2 執行個體 (Windows 或 Linux) 時,可能會發生此動作:
- AWS CLI
- 一個 SDK
- 諸如 AWS CloudFormation 之類的服務
當您使用 Amazon EC2 主控台啟動不支援執行個體儲存體磁碟區的執行個體類型時,Amazon EC2 會忽略修改過的區塊型裝置對映。
您可以](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#view-ami-bdm)使用 Amazon EC2 主控台或 AWS CLI 在 AMI 的區塊型裝置映射中[列舉 EBS 磁碟區。
例如,下列 describe-images 指令會傳回 AMI 的 BlockDeviceMapping:
aws ec2 describe-images --image-ids ami-xxxxxxxx
執行個體儲存體磁碟區的範例輸出,其「VirtualName」以「ephemeral」開頭:
aws ec2 describe-images --image-ids ami-11112222 "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true, "SnapshotId": "snap- ", "VolumeSize": 8, "VolumeType": "gp2", "Encrypted": false } }, { "DeviceName": "/dev/sdb", "VirtualName": "ep0hemeral0" }, { "DeviceName": "/dev/sdc", "VirtualName": "ephemeral2" } ],
移除或覆寫 AMI 中執行個體儲存磁碟區的任何參照
確認 EC2 執行個體使用執行個體儲存體磁碟區後,您必須移除或覆寫 AMI 中執行個體儲存體磁碟區的任何參考。然後,您必須重新啟動執行個體,因為無法從現有 EC2 執行個體新增或移除執行個體儲存體磁碟區。
使用下列其中一種方法移除或覆寫執行個體儲存磁碟區的參照:
- 從 AMI 移除執行個體儲存磁碟區的參照。然後,重新啟動執行個體。
- 從 Amazon EC2 主控台啟動 EC2 執行個體,以覆寫不支援執行個體磁碟區存放區的執行個體類型的 AMI。
- 從 AWS CLI 啟動 EC2 執行個體,然後手動覆寫 AMI 中參考執行個體儲存體磁碟區的每個裝置。例如,如果您的裝置「/dev/sdb」和「/dev/sdc」映射至執行個體儲存體磁碟區,請使用執行個體命令啟動 EC2 執行個體:
aws ec2 run-instances --image-id ami-11112222 --subnet-id subnet-11112222 --instance-type t2.medium --key-name my_key --associate-public-ip-address --block-device-mappings '[{"DeviceName": "/dev/sdb","NoDevice": ""},{"DeviceName": "/dev/sdc","NoDevice": ""}]'
- 對於由 CloudFormation 啟動的 EC2 執行個體,請建立 CloudFormation 範本以覆寫任何裝置與執行個體儲存體磁碟區的映射。例如:
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "I4EY8I": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId" : "ami-11112222", "InstanceType" : "t2.medium", "SubnetId" : "subnet-11112222", "KeyName" : "my_key", "BlockDeviceMappings" : [ { "DeviceName":"/dev/sdb", "NoDevice": {} }, { "DeviceName":"/dev/sdc", "NoDevice": {} } ] } } } }
- 對於由 SDK 啟動的 EC2 執行個體,請查看相關的 SDK 檔案,瞭解如何將裝置映射至執行個體儲存體磁碟區覆寫。
相關資訊
相關內容
- 已提問 10 個月前lg...
- 已提問 9 個月前lg...
- 已提問 5 個月前lg...
- 已提問 3 個月前lg...
- 已提問 5 個月前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前