休眠中斷的 競價型執行個體
您可以指定 Amazon EC2 在您的 Spot 執行個體中斷時將其休眠。如需詳細資訊,請參閱 指定中斷行為。
當 Amazon EC2 休眠 Spot 執行個體時,會發生下列情況:
-
當執行個體收到來自 Amazon EC2 的訊號時,代理程式會提示作業系統進入休眠。如果未安裝代理程式,或者底層的作業系統不支援休眠,或是沒有足夠的磁碟區空間來儲存執行個體的記憶體,休眠作業就會失敗,而 Amazon EC2 會改而停止執行個體。
-
執行個體的記憶體 (RAM) 會保留於根磁碟區中。
-
執行個體的EBS 磁碟區和私有 IP 地址也會保留。
-
除了彈性 IP 地址以外的執行個體存放磁碟區和公有 IP 地址,則不會保留。
如需有關建立休眠的 隨需執行個體 的資訊,請參閱 休眠您的隨需執行個體。
考量事項
-
只有 Amazon EC2 才可讓 Spot 執行個體進入休眠。您無法手動使 Spot 執行個體進入休眠。
-
只有 Amazon EC2 才能恢復休眠的 Spot 執行個體。您無法手動恢復休眠的 Spot 執行個體。
-
當容量可用時,Amazon EC2 會恢復執行個體。
-
當 Amazon EC2 休眠 Spot 執行個體時,會立即開始休眠。您會收到中斷通知,但 Spot 執行個體不會過兩分鐘才中斷。
-
當執行個體正在進入休眠時,執行個體的運作狀態檢查可能會失敗。
-
當休眠程序完成時,執行個體的狀態為
stopped
。 -
當執行個體休眠時,您只需支付 EBS 磁碟區的費用。使用 EC2 Fleet 和 Spot Fleet 時,如果有許多已進入休眠的執行個體,可能會超出您帳戶的 EBS 磁碟區數量限制。
-
確定您熟悉休眠執行個體的含義。有關執行個體休眠時所發生情況的資訊,請參閱 重新啟動、停止、休眠和終止之間的差異。
先決條件
若要讓 Spot 執行個體進入休眠,必須具備下列必要條件:
- Spot 請求類型
-
Spot 執行個體請求類型 - 必須為
persistent
。您無法在 Spot 執行個體請求中指定啟動群組。EC2 Fleet 或 Spot Fleet 請求類型 - 必須為
maintain
。 - 支援 Linux AMI
-
下列支援的 AMI 包含休眠代理程式。若要使用下列 AMI 的較早版本,您必須安裝休眠代理程式。
-
Amazon Linux 2 2019.08.29 或更新版本
-
Amazon Linux AMI 2017.09.1 或更新版本
-
Ubuntu Xenial 16.04 20171121 或更新版本
¹ 若要使用較早版本的 Ubuntu Xenial AMI,其必須具有經 AWS (
linux-aws
) 調整的 Ubuntu 內核且大於 4.4.0-1041。如需受支援的 Windows AMI 的相關資訊,請參閱 Windows 執行個體的 Amazon EC2 使用者指南中的休眠必要條件。
-
- 啟動休眠代理程式
-
我們建議在執行個體啟動時,利用使用者資料啟動休眠代理程式。或者,您可以手動啟動代理程式。如需詳細資訊,請參閱 啟動時啟動休眠代理程式。
- 支援的執行個體系列
-
C3、C4、C5、M4、M5、R3、R4
- 執行個體 RAM 大小
-
必須小於 100 GB。
- 根磁碟區類型
-
必須是 EBS 磁碟區,而非執行個體存放區磁碟區。
- EBS 根磁碟區大小
-
必須大到足以在休眠期間存放執行個體的記憶體 (RAM)。
- EBS 根磁碟區加密 - 建議使用,但不是 Spot 執行個體休眠的先決條件
-
我們強烈建議將加密的 EBS 磁碟區做為根磁碟區使用,因為執行個體的記憶體會在休眠期間,存放於根磁碟區中。這可確保當資料靜態地儲存於磁碟區中,以及在執行個體和磁碟區之間移動時,記憶體 (RAM) 的內容會是加密的。
使用下列三個選項中的一個來確保根磁碟區是加密的 EBS 磁碟區:
-
EBS 預設加密 - 您可以啟用 EBS 預設加密,以確保會加密在您 AWS 帳戶中建立的所有新 EBS 磁碟區。以此方式,您可以為您的執行個體啟用休眠,而不在執行個體啟動時指定加密意圖。如需詳細資訊,請參閱 預設加密。
-
EBS「單一步驟」加密 - 您可以從未加密的 AMI 啟動加密的 EBS 後端 EC2 執行個體,並可同時啟用休眠。如需詳細資訊,請參閱 對 EBS 後端 AMI 使用加密。
-
加密 AMI - 您可以使用加密的 AMI 來啟動您的執行個體,藉此啟用 EBS 加密。如果您的 AMI 沒有加密的根快照,您可以將資料複製到新的 AMI,然後請求加密。如需詳細資訊,請參閱 複製期間加密未加密的映像 及 複製 AMI。
-
將休眠代理程式安裝到 Linux AMI
除非計劃使用已包含代理程式的 AMI,否則您必須在 AMI 上安裝休眠代理程式。
以下指示說明如何在Linux AMI 上安裝休眠代理程式。如需將休眠代理程式安裝到 Windows AMI 上,請參閱 Amazon EC2 Windows 執行個體使用者指南中的在 Windows AMI 上安裝休眠代理程式。
在 Amazon Linux AMI 上安裝休眠代理程式
-
確認核心支援休眠,必要時請更新核心。
sudo yum update kernel
-
如果 AMI 未包含代理程式,請安裝代理程式。
sudo yum update; sudo yum install hibagent
在 Ubuntu AMI 上安裝休眠代理程式
如果 AMI 未包含代理程式,請安裝代理程式。Hibernation Agent 僅適用於 Ubuntu 16.04 或更新版本。
sudo apt-get install hibagent
啟動時啟動休眠代理程式
無論代理程式是 AMI 中原本包含,或是由您自行安裝的,您都必須在執行個體啟動時執行休眠代理程式。
以下指示說明如何啟動 Linux 執行個體上的休眠代理程式。有關在 Windows 執行個體上啟動休眠代理程式的指示,請參閱 Amazon EC2 Windows 執行個體使用者指南中的啟動時啟動休眠代理程式。
在 Spot 執行個體上啟動休眠代理程式
按照以下步驟來使用首選啟動方法請求 Spot 執行個體,然後將下列內容新增至使用者資料。
#!/bin/bash /usr/bin/enable-ec2-spot-hibernation