

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

# 使用巢狀虛擬化在 Amazon EC2 執行個體中執行 Hypervisor
<a name="amazon-ec2-nested-virtualization"></a>

巢狀虛擬化可讓您在虛擬 Amazon EC2 執行個體內執行 Hyper-V 和 KVM 等 Hypervisor。虛擬 EC2 執行個體是非裸機執行個體。此功能透過將處理器層級虛擬化支援新增至虛擬 EC2 執行個體來擴展虛擬化彈性，讓執行個體中執行的 Hypervisor 能夠建立和管理虛擬機器。

當您在開發工作流程中執行 Docker Desktop、適用於 Linux 2 的 Windows 子系統 (WSL2)、Android Studio 模擬器或 QEMU 等開發工具時，巢狀虛擬化可協助您選擇符合特定效能和價格需求的各種標準虛擬 Amazon EC2 執行個體類型。

使用巢狀虛擬化無需額外費用。

**Topics**
+ [

## 運作方式
](#nested-virtualization-how-it-works)
+ [

## 考量事項
](#nested-virtualization-considerations)
+ [

## 在啟用巢狀虛擬化的情況下啟動新的執行個體
](#nested-virtualization-launch-new-instance)
+ [

## 設定現有執行個體以使用巢狀虛擬化
](#nested-virtualization-configure-existing-instance)

## 運作方式
<a name="nested-virtualization-how-it-works"></a>

虛擬 EC2 執行個體會在具有 Nitro Hypervisor 的實體主機上執行。為了支援巢狀虛擬化，Nitro 系統會將處理器延伸模組，例如 Intel VT-x，傳遞至執行個體，以利執行巢狀虛擬機器。巢狀虛擬化架構包含三層：實體 AWS 基礎設施和 Nitro Hypervisor (L0)、執行 Hypervisor (L1) 的 EC2 執行個體，以及在該執行個體 (L2) 內建立的一或多個虛擬機器。

## 考量事項
<a name="nested-virtualization-considerations"></a>

開始使用巢狀虛擬化之前，請考慮下列事項：
+ **支援的執行個體類型** – C8i, M8i 和 R8i 執行個體目前支援巢狀虛擬化。
+ **支援的 Hypervisor** – 目前，KVM 和 Hyper-V 是支援的 L1 Hypervisor。
+ **Windows 執行個體** – 在 Windows 執行個體上啟用巢狀虛擬化時：
  + **[Credential Guard](credential-guard.md)** – 虛擬安全模式 (VSM) 會自動停用。
  + **休眠** – 不支援執行個體休眠和繼續。
  + **CPU 限制** – 不支援超過 192 個 CPUs Windows 執行個體，例如 `m8i.96xl`。
+ **安全責任** – 在 EC2 執行個體上使用巢狀虛擬化時， AWS 負責保護基礎基礎設施*的*「雲端安全」，並維護 AWS Nitro 系統提供的 EC2 執行個體之間的強隔離界限。客戶負責「**雲端安全」，其中包括保護 EC2 執行個體內的作業系統、Hypervisor、巢狀虛擬機器、訪客作業系統、應用程式和資料。
+ **效能** – AWS 建議想要執行需要存取硬體虛擬化延伸模組的工作負載，並且對效能敏感或具有嚴格延遲要求的客戶評估裸機執行個體。

## 在啟用巢狀虛擬化的情況下啟動新的執行個體
<a name="nested-virtualization-launch-new-instance"></a>

當您啟動新的執行個體時，您可以開啟巢狀虛擬化，在其上執行 Hypervisor 和虛擬機器。

**先決條件**  
您必須擁有必要的 IAM 許可才能啟動 Amazon EC2 執行個體。

------
#### [ Console ]

**在執行個體啟動期間啟用巢狀虛擬化**

1. 遵照 [使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md) 程序並視需要設定執行個體。

1. 確定已選取支援的執行個體類型。

1. 展開**進階詳細資訊**，針對**巢狀虛擬化**，選擇**啟用**。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。

------
#### [ AWS CLI ]

**在啟用巢狀虛擬化的情況下啟動執行個體**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type r8i.4xlarge \
    --cpu-options "NestedVirtualization=enabled" \
    --key-name my-key-pair
```

------
#### [ PowerShell ]

**在啟用巢狀虛擬化的情況下啟動執行個體**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令。

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType r8i.4xlarge `
    -CpuOption @{NestedVirtualization='enabled'} `
    -KeyName my-key-pair
```

------

## 設定現有執行個體以使用巢狀虛擬化
<a name="nested-virtualization-configure-existing-instance"></a>

您可以在現有的 Amazon EC2 執行個體上開啟巢狀虛擬化。

**先決條件**
+ 執行個體必須處於 `stopped` 狀態。
+ 執行個體類型必須支援巢狀虛擬化。

------
#### [ Console ]

**在現有執行個體上啟用巢狀虛擬化**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 從執行個體資料表中選取您要修改的執行個體。

1. 選擇**動作**、**執行個體設定**、**變更 CPU 選項**。

1. 在**變更 CPU 選項**頁面上，針對**巢狀虛擬化**，選擇下列其中一個選項：
   + **啟用** – 開啟執行個體的巢狀虛擬化
   + **停用** – 關閉執行個體的巢狀虛擬化

1. 檢閱您的變更，然後選擇**變更**以套用新的 CPU 選項。

------
#### [ AWS CLI ]

**在現有執行個體上啟用巢狀虛擬化**  
首先停止執行個體，然後使用 [modify-instance-cpu-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-cpu-options.html) 命令。

```
aws ec2 modify-instance-cpu-options \
    --instance-id i-1234567890abcdef0 \
    --core-count 4 \
    --threads-per-core 2 \
    --nested-virtualization enabled
```

------
#### [ PowerShell ]

**在現有執行個體上啟用巢狀虛擬化**  
首先停止執行個體，然後使用 [Edit-EC2InstanceCpuOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceCpuOption.html) 命令。

```
Edit-EC2InstanceCpuOption `
    -InstanceId i-1234567890abcdef0 `
    -CoreCount 4 `
    -ThreadsPerCore 2 `
    -NestedVirtualization enabled
```

------