取代 Amazon EC2 執行個體的根磁碟區而不停止它 - Amazon Elastic Compute Cloud

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

取代 Amazon EC2 執行個體的根磁碟區而不停止它

Amazon EC2 可讓您替換執行中執行個體的根 Amazon EBS 磁碟區,同時保留下列項目:

  • 儲存在執行個體存放區磁碟區上的資料 - 在還原根磁碟區後,執行個體存放區磁碟區仍會保持連接至執行個體。

  • 存放在資料 (非根) Amazon EBS 磁碟區上的資料 — 還原根EBS磁碟區後,非根 Amazon 磁碟區會保持連接至執行個體。

  • 網路設定 — 所有網路介面會保持連接至執行個體,並保留其 IP 位址、識別碼和附件IDs。當執行個體可用時,會清除所有擱置中的網路流量。此外,執行個體會保留在相同的實體主機上,因此它會保留其公有和私有 IP 位址和DNS名稱。

  • IAM原則 — 會保留並強制執行與執行個體相關聯的IAM設定檔和策略 (例如以標籤為基礎的策略)。

根磁碟區取代的運作方式

當您取代執行個體的根磁碟區時,我們會建立根磁碟區取代工作。原始根磁碟區會從執行個體中分離,新根磁碟區會連接至其位置中的執行個體。執行個體的區塊型裝置映射已更新,以反映取代根磁碟區的 ID。

取代執行個體的根磁碟區時,您必須指定新磁碟區的快照來源。以下是可能的選項。

此選項將目前的根磁碟區取代為根據用來建立該磁碟區的快照的磁碟區。

使用啟動狀態的考量

取代根磁碟區會獲得與原始根磁碟區相同的類型、大小和「在終止時刪除」屬性。

此選項會以您指定的快照為基礎的取代磁碟區,取代目前的根磁碟區。例如,您先前從此根磁碟區建立的特定快照。如果您需要從根磁碟區損毀或客體作業系統中的網路組態錯誤所造成的問題中復原,此功能非常有用。

取代根磁碟區會獲得與原始根磁碟區相同的類型、大小和「在終止時刪除」屬性。

使用快照時的考量事項
  • 您只能使用與目前根磁碟區屬於相同歷程的快照。

  • 您無法使用從根磁碟區擷取的快照中建立的快照複本。

  • 成功更換根磁碟區之後,您仍然可以使用從原始根磁碟區擷取的快照來取代新的 (取代) 根磁碟區。

此選項會使用您指定的來取代目前的根磁碟區。AMI如果您需要執行作業系統和應用程式的修補或升級,這會很有用。AMI必須具有與執行個體相同的產品代碼、帳單資訊、架構類型和虛擬化類型。

如果執行個體已啟用ENA或 sriov-net,則您必須使用支援這些功能的執行AMI個體。如果執行個體未針對ENA或 sriov-net 啟用,則您可以選取不支援這些功能的執行個AMI體,也可以在選取支援或 sriov-net 時自動新增支援。AMI ENA

如果針對 Nitro 啟用執行個體TPM,則您必須使用已啟用 Nitro AMI TPM 的執行個體。如果執行個體未設定 Nitro TPM 支援,則不會啟用 Nitro 支援,無論您選取哪一AMI個執行個體。

您可以選取AMI與執行個體不同的開機模式,只要執行個體支援的啟動模式AMI。如果執行個體不支援該開機模式,則請求會失敗。如果執行個體支援開機模式,則新的開機模式會傳播至執行個體,並相應地更新其UEFI資料。如果您手動修改了開機順序,或新增私密 UEFI Secure Boot 金鑰來載入私有核心模組,則在取代根磁碟區期間變更將會遺失。

取代根磁碟區會取得與原始根磁碟區相同的磁碟區類型和終止時刪除屬性,並取得AMI根磁碟區區塊裝置對應的大小。

注意

AMI根磁碟區塊裝置對映的大小必須等於或大於原始根磁碟區的大小。如果AMI根磁碟區塊裝置對映的大小小於原始根磁碟區的大小,則要求會失敗。

在根磁碟區取代工作完成之後,當您使用主控台描述執行個體時,會反映下列新增和更新的資訊, AWS CLI 或 AWS SDKs:

  • 新AMI識別碼

  • 根磁碟區的新磁碟區 ID

  • 更新的啟動模式配置(如果由更改AMI)

  • 更新硝基TPM配置(如果啟用AMI)

  • 已更新的ENA組態 (如果已啟用AMI)

  • 已更新 sriov-net 組態 (如果已啟用) AMI

新 AMI ID 也會反映在執行個體中繼資料中。

使用以下注意事項AMI:
  • 如果您使用具AMI有多個區塊裝置對映的,則只會使用的AMI根磁碟區。其他 (非根) 磁碟區會被忽略。

  • 只有在您擁有AMI及其關聯根磁碟區快照的權限時,才能使用此功能。您無法搭配使用此功能 AWS Marketplace AMIs。

  • 只有在執行個體AMI沒有產品代碼的情況下,才能使用沒有產品代碼的。

  • AMI根磁碟區塊裝置對映的大小必須等於或大於原始根磁碟區的大小。如果AMI根磁碟區塊裝置對映的大小小於原始根磁碟區的大小,則要求會失敗。

  • 執行個體的執行個體身分文件會自動更新。

  • 如果執行個體支援 NitroTPM,則會重設執行個體的 Nitro TPM 資料,並產生新的金鑰。

您可以選擇在根磁碟區取代程序完成後是否要保留原始根磁碟區。如果您選擇在取代程序完成之後刪除原始根磁碟區,則原始根磁碟區會自動刪除並變得無法復原。如果您選擇在程序完成後保留原始根磁碟區,該磁碟區仍會在您的帳戶中佈建;您必須在不再需要磁碟區時手動刪除磁碟區。

根磁碟區取代工作會在下列狀態中轉換:

  • pending— 正在建立取代體積塊。

  • in-progress— 正在分離原始磁碟區,且正在連接取代磁碟區。

  • succeeded— 取代磁碟區已成功附加至執行個體,且可使用執行個體。

  • failing— 取代任務正在失敗的過程中。

  • failed— 取代任務失敗,但根磁碟區仍然連接。

  • failing-detached— 取代任務正在失敗的過程中,執行個體可能沒有附加根磁碟區。

  • failed-detached— 取代工作失敗且執行個體沒有連接根磁碟區。

如果根磁碟區取代任務失敗,則執行個體會重新啟動,而原始根磁碟區會保持連接到執行個體。

考量事項

在開始之前,請考慮下列事項。

要求
  • 執行個體必須處於 running 狀態。

  • 執行個體會在過程中自動重新啟動。重新開機期間會清除記憶體 (RAM) 的內容。不需要手動重新啟動。

  • 如果根磁碟區是執行個體存放區磁碟區,則無法取代根磁碟區。僅支援具有 Amazon EBS 根磁碟區的執行個體。

  • 您可以替換所有虛擬化執行個體類型和 EC2 Mac 裸機執行個體的根磁碟區。不支援其他裸機執行個體類型。

  • 您只能使用屬於相同關係的快照作為執行個體以前的根磁碟區。

  • 如果您的帳戶在目前區域中預設啟用 Amazon EBS 加密,則無論指定快照的加密狀態或指定的根磁碟區的加密狀態為何,根磁碟區取代任務建立的替換根磁碟區都會一律加密AMI。

加密結果

下表摘要提供了可能的加密結果的摘要。

原始根磁碟區 指定的快照或 AMI 預設加密 取代根磁碟區 用於取代根磁碟區的加密金鑰
將取代根磁碟區還原至初始啟動狀態 Encrypted 不適用 不考慮 Encrypted 與原始根磁碟區相同的KMS金鑰
未加密 不適用 已停用 未加密 不適用
未加密 不適用 已啟用 Encrypted Amazon EBS 加密的帳戶默認密KMS鑰
從快照或還原取代根磁碟區 AMI Encrypted 未加密 不考慮 Encrypted 與原始根磁碟區相同的KMS金鑰
Encrypted Encrypted 不考慮 Encrypted 與原始根磁碟區相同的KMS金鑰
未加密 未加密 已停用 未加密 不適用
未加密 未加密 已啟用 Encrypted Amazon EBS 加密的帳戶默認密KMS鑰
未加密 Encrypted 不考慮 Encrypted 如果AMI或快照屬於帳戶,則取代磁碟區會使用AMI或快照的KMS金鑰加密。如果與帳戶共用AMI或快照,則會使用帳戶的預設KMS金鑰加密替換磁碟區,以進行 Amazon EBS 加密。

取代根磁碟區

取代執行個體的根磁碟區時,會建立根磁碟區取代任務。您可以使用根磁碟區取代任務來監視取代過程的進度和結果。

Console
取代根磁碟區
  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取要取代根磁碟區的執行個體,然後依序選取 Actions (動作)Monitor and troubleshoot (監控與疑難排解)Replace root volume (取代根磁碟區)

    注意

    如果選定的執行個體不在 running 狀態,則會停用取代根磁碟區操作。

  4. 在「取代根磁碟區」畫面中,對於「還原」,選擇下列其中一個選項:

    • 啟動狀態 — 從用來建立目前根磁碟區的快照還原取代根磁碟區。

    • 快照 — 將取代根磁碟區還原至您指定的快照。針對快照,選取要使用的快照。

    • 映像 — 使用您指定的還原取代根磁碟區。AMI對於「影像」,選取AMI要使用的。

  5. (選擇性) 若要刪除要取代的根磁碟區,請選取刪除已取代的根磁碟區

  6. 選擇 [建立取代工作]。

  7. 若要監視取代工作,請選擇執行個體的 [儲存] 索引標籤,然後展開 [最近的根磁碟區取代工作]

AWS CLI
若要將取代根磁碟區還原至啟動狀態

使用 create-replace-root-volume-任務命令。若為 --instance-id,請指定要對其取代根磁碟區的執行個體 ID。省略 --snapshot-id--image-id 參數。若要在取代原始根磁碟區之後將其刪除,請包含 --delete-replaced-root-volume 並指定 true

$ aws ec2 create-replace-root-volume-task \ --instance-id i-1234567890abcdef0 \ --delete-replaced-root-volume
若要將取代根磁碟區還原至特定快照

使用 create-replace-root-volume-任務命令。若為 --instance-id,請指定要對其取代根磁碟區的執行個體 ID。若為 --snapshot-id,請指定要使用的快照 ID。若要在取代原始根磁碟區之後將其刪除,請包含 --delete-replaced-root-volume 並指定 true

$ aws ec2 create-replace-root-volume-task \ --instance-id i-1234567890abcdef0 \ --snapshot-id snap-9876543210abcdef0 \ --delete-replaced-root-volume
使用還原取代根磁碟區 AMI

使用 create-replace-root-volume-任務命令。若為 --instance-id,請指定要對其取代根磁碟區的執行個體 ID。對於--image-id,指定AMI要使用的 ID。若要在取代原始根磁碟區之後將其刪除,請包含 --delete-replaced-root-volume 並指定 true

$ aws ec2 create-replace-root-volume-task \ --instance-id i-01234567890abcdef \ --image-id ami-09876543210abcdef \ --delete-replaced-root-volume
檢視根磁碟區取代任務的狀態

使用 describe-replace-root-volume-tasks 指令並指定要檢視IDs的根磁碟區取代工作。

$ aws ec2 describe-replace-root-volume-tasks \ --replace-root-volume-task-ids replacevol-1234567890abcdef0
{ "ReplaceRootVolumeTasks": [ { "ReplaceRootVolumeTaskId": "replacevol-1234567890abcdef0", "InstanceId": "i-1234567890abcdef0", "TaskState": "succeeded", "StartTime": "2020-11-06 13:09:54.0", "CompleteTime": "2020-11-06 13:10:14.0", "SnapshotId": "snap-01234567890abcdef", "DeleteReplacedRootVolume": "True" }] }

或者,指定要依執行個體篩選結果的 instance-id 篩選條件。

$ aws ec2 describe-replace-root-volume-tasks \ --filters Name=instance-id,Values=i-1234567890abcdef0
Tools for Windows PowerShell
若要將取代根磁碟區還原至啟動狀態

使用指New-EC2ReplaceRootVolumeTask令。若為 -InstanceId,請指定要對其取代根磁碟區的執行個體 ID。省略 -SnapshotId-ImageId 參數。若要在取代原始根磁碟區之後將其刪除,請包含 -DeleteReplacedRootVolume 並指定 $true

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -DeleteReplacedRootVolume $true
若要將取代根磁碟區還原至特定快照

使用指New-EC2ReplaceRootVolumeTask令。若為 --InstanceId,請指定要對其取代根磁碟區的執行個體 ID。若為 -SnapshotId,請指定要使用的快照 ID。若要在取代原始根磁碟區之後將其刪除,請包含 -DeleteReplacedRootVolume 並指定 $true

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -SnapshotId snap-9876543210abcdef0 -DeleteReplacedRootVolume $true
使用還原取代根磁碟區 AMI

使用指New-EC2ReplaceRootVolumeTask令。若為 -InstanceId,請指定要對其取代根磁碟區的執行個體 ID。對於-ImageId,指定AMI要使用的 ID。若要在取代原始根磁碟區之後將其刪除,請包含 -DeleteReplacedRootVolume 並指定 $true

PS C:\> New-EC2ReplaceRootVolumeTask -InstanceId i-1234567890abcdef0 -ImageId ami-09876543210abcdef -DeleteReplacedRootVolume $true
檢視根磁碟區取代任務的狀態

使用指Get-EC2ReplaceRootVolumeTask令並指定要檢視IDs的根磁碟區取代工作。

PS C:\> Get-EC2ReplaceRootVolumeTask -ReplaceRootVolumeTaskIds replacevol-1234567890abcdef0

或者,指定要依執行個體篩選結果的 instance-id 篩選條件。

PS C:\> Get-EC2ReplaceRootVolumeTask -Filters @{Name = 'instance-id'; Values = 'i-1234567890abcdef0'} | Format-Table