取代根磁碟區 - Amazon Elastic Compute Cloud

取代根磁碟區

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

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

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

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

  • IAM 政策 – IAM 描述檔和與執行個體相關聯的政策 (例如索引標籤政策) 會保留並強制執行。

其運作方式?

當您取代執行個體的根磁碟區時,會以下列其中一種方式還原新的 (取代) 根磁碟區:

  • 至初始啟動狀態 - 磁碟區會在執行個體啟動時還原至其初始狀態。如需詳細資訊,請參閱 將根磁碟區還原至其啟動狀態

  • 從快照 (來自與目前根磁碟區相同的譜系) - 這可讓您修正問題,例如根磁碟區損毀或訪客作業系統網路組態錯誤。如需詳細資訊,請參閱 使用快照取代根磁碟區

  • 從 AMI (具有與執行個體相同的索引鍵屬性) - 這可讓您執行作業系統和應用程式修補或升級。如需詳細資訊,請參閱 使用 AMI 取代根磁碟區

原始根磁碟區會從執行個體中分離,新根磁碟區會連接至其位置中的執行個體。執行個體的區塊型裝置映射已更新,以反映取代根磁碟區的 ID。您可以選擇是否要在根磁碟區取代程序完成後保留原始根磁碟區。如果您選擇在取代程序完成之後刪除原始根磁碟區,則原始根磁碟區會自動刪除並變得無法復原。如果您選擇在程序完成後保留原始根磁碟區,則該磁碟區仍會在您的帳戶中佈建;當您不再需要它時必須手動刪除。

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

根磁碟區取代的考量事項
  • 執行個體必須處於 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 或快照,則會使用該帳戶的 Amazon EBS 加密的預設 KMS 金鑰來加密取代磁碟區。

將根磁碟區還原至其啟動狀態

您可以執行根磁碟區取代,這會將執行個體的根磁碟區取代為已還原至原始根磁碟區啟動狀態的取代根磁碟區。取代磁碟區會在執行個體啟動期間從用來建立原始磁碟區的快照中自動還原。

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

使用快照取代根磁碟區

您可以執行根磁碟區取代,這會將執行個體的根磁碟區取代為已還原至特定快照的取代磁碟區。這可讓您將執行個體的根磁碟區還原至先前從該根磁碟區建立的特定快照。

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

使用快照時的考量事項
  • 您只能使用屬於相同關係的快照作為執行個體的目前根磁碟區。

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

  • 在成功取代根磁碟區之後,從原始根磁碟區中取得的快照仍然可用來取代新的 (取代) 根磁碟區。

使用 AMI 取代根磁碟區

您可以使用您擁有的 AMI 或與您共用的 AMI 來執行根磁碟區取代。AMI 必須具有與執行個體相同的產品代碼、帳單資訊、架構類型和虛擬化類型。

如果已對 NitroTPM、ENA 或 sriov-net 啟用執行個體,則您必須使用支援這些功能的 AMI。如果未對 NitroTPM、ENA 或 sriov-net 啟用執行個體,則您可以選取不支援這些功能的 AMI,也可以選取支援它們的 AMI,但在這種情況下會將支援新增至執行個體。

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

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

注意

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

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

  • 新的 AMI ID

  • 根磁碟區的新磁碟區 ID

  • 已更新開機模式組態 (如果由 AMI 變更)

  • 已更新 NitroTPM 組態 (如果由 AMI 啟用)

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

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

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

使用 AMI 時的考量事項
  • 如果您使用具有多個區塊型裝置映射的 AMI,則只會使用 AMI 的根磁碟區。其他 (非根) 磁碟區會被忽略。

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

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

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

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

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

取代根磁碟區

取代執行個體的根磁碟區時,會建立根磁碟區取代任務。您可以使用根磁碟區取代任務來監視取代過程的進度和結果。如需詳細資訊,請參閱 檢視根磁碟區取代任務

您可以使用下列其中一種方法來取代執行個體的根磁碟區。

注意

如果您使用 Amazon EC2 主控台,只有新主控台才能使用此功能。

New console
取代根磁碟區
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

    注意

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

  4. Replace root volume (取代根磁碟區) 畫面中,執行下列其中一項動作:

    • 若要將取代根磁碟區還原至其初始啟動狀態,請選取 Create replacement task (建立取代任務),但不選取快照。

    • 若要將取代根磁碟區還原至特定快照,請在 Snapshot (快照) 中選取要使用的快照,然後選取 Create replacement task (建立取代任務)。

    • 若要使用 AMI 來還原取代根磁碟區,請在 AMI 中選取要使用的 AMI,然後選取 Create replacement task (建立取代任務)。

  5. 若要在取代任務完成後刪除原始根磁碟區,請選取 Delete replaced root volume (刪除已取代的根磁碟區)。

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

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

$ aws ec2 create-replace-root-volume-task --instance-id instance_id --delete-replaced-root-volume true

例如:

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

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

$ aws ec2 create-replace-root-volume-task --instance-id instance_id --snapshot-id snapshot_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 true
若要使用 AMI 來還原取代根磁碟區

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

$ aws ec2 create-replace-root-volume-task --instance-id instance_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 true

檢視根磁碟區取代任務

取代執行個體的根磁碟區時,會建立根磁碟區取代任務。在此過程中,根磁碟區取代任務將通過以下狀態進行轉換:

  • pending – 正在建立取代磁碟區。

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

  • succeeded – 取代磁碟區已成功連接至執行個體,且執行個體可用。

  • failing — 取代任務處於失敗的程序中。

  • failed – 取代任務失敗,但仍連接至原始根磁碟區。

  • failing-detached - 取代任務正在失敗的過程中,執行個體可能不會連接根磁碟區。

  • failed-detached – 取代任務失敗,且執行個體沒有連接根磁碟區。

您可以使用下列其中一種方法來檢視執行個體的根磁碟區取代任務。

注意

如果您使用 Amazon EC2 主控台,只有新主控台才能使用此功能。

Console
檢視根磁碟區取代任務
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. 選取要檢視根磁碟區取代任務的執行個體,然後選取 Storage (儲存體) 索引標籤。

  4. Storage (儲存體) 索引標籤中,展開 Recent root volume replacement tasks (最近的根磁碟區取代任務)

AWS CLI
檢視根磁碟區取代任務的狀態

使用 describe-replace-root-volume-tasks 命令,並指定要檢視的根磁碟區取代任務的 ID。

$ aws ec2 describe-replace-root-volume-tasks --replace-root-volume-task-ids task_id_1 task_id_2

例如:

$ 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=instance_id

例如:

$ aws ec2 describe-replace-root-volume-tasks --filters Name=instance-id,Values=i-1234567890abcdef0