停止和啟動執行個體 - Amazon Elastic Compute Cloud

停止和啟動執行個體

如果執行個體使用 Amazon EBS 磁碟區做為其根設備,則您可以停止和啟動此執行個體。執行個體包含其執行個體 ID,但此 ID 可以變更,如概要一節中的說明。

當您停止執行個體時,我們會將其關閉。我們不會對已停止的執行個體計費,也不會收取數據傳輸費,但是會收取任何 Amazon EBS 磁碟區的儲存費用。每次啟動已停止的執行個體時,我們會收取至少一分鐘的使用費。如果超過一分鐘,我們只會依使用的秒數收費。例如,如果您執行執行個體 20 秒,然後予以停止,我們會收取完整一分鐘的費用。如果您執行執行個體 3 分 40 秒,我們只會收取 3 分 40 秒的費用。

在執行個體停止期間,您可以將其根磁碟區視為其他任何磁碟區使用,並進行修改 (例如,修復檔案系統的問題或更新軟體)。您可以將該磁碟區與停止的執行個體中斷連結、再將其連結到執行中的執行個體、進行變更、將其與執行中的執行個體中斷連結,然後再將該磁碟區重新連結到已停止的執行個體。請務必使用儲存設備的名稱來重新連結該磁碟區 (該儲存設備在執行個體的區塊型設備映射中指定為根設備)。

如果您決定不再需要使用執行個體時,可將其終止。當執行個體的狀態一變更為 shutting-downterminated,我們就會停止收取該執行個體的費用。如需詳細資訊,請參閱 終止您的執行個體。若您希望讓執行個體進入休眠,請參閱讓您的隨需 Windows 執行個體進入休眠。如需詳細資訊,請參閱 重新啟動、停止、休眠和終止之間的差異

概要

您只能在執行個體停止時,才能修改其下列的屬性:

  • 執行個體類型

  • 使用者資料

  • 核心

  • RAM 磁碟

如果嘗試在執行個體執行時修改這些屬性,Amazon EC2 會傳回 IncorrectInstanceState 錯誤。

若您停止執行個體會如何

若透過使用 StopInstances API 停用 EC2 執行個體 (例如,透過選擇 Amazon EC2 主控台中的 Instance state (執行個體狀態)、Stop instance (停用執行個體),或使用 stop-instances AWS CLI 命令),則會在 OS 層級註冊下列項目:

  • API 請求會將按鈕事件傳送給訪客。

  • 由於按鈕事件而停止各種系統服務。順利關機由從虛擬化管理程序按下 ACPI 關機按鈕事件觸發。

  • 啟動 ACPI 關機。

  • 當順利關機程序結束時,執行個體就會關機。OS 關機時間無法設定。

  • 如果執行個體作業系統在幾分鐘內沒有完全關閉,則會執行硬關機。

  • 執行個體會停止執行。

  • 執行個體的狀態會變成 stopping​ 然後再變成 stopped

  • (Auto Scaling 群組) 若您的執行個體位於 Auto Scaling 群組中,Amazon EC2 Auto Scaling 服務會將停止的執行個體標記為運作狀態不良,且可能會終止它並啟動取代用執行個體。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 Auto Scaling 執行個體的運作狀態檢查

  • (Windows) 當您停用和啟動 Windows 執行個體時,EC2Config 服務會對執行個體執行工作,例如針對任何已連結的 Amazon EBS 磁碟區變更其磁碟代號。關於這些預設動作和變更這些動作的方法,詳細資訊請參閱使用 EC2Config 服務來設定 Windows 執行個體中。

  • (ClassicLink) 當您停止 ClassicLink 執行個體時,該執行個體會從原本連結的 VPC 解除連結。啟動執行個體之後,您必須將其再次將其連結至 VPC。如需 ClassicLink 的詳細資訊,請參閱 ClassicLink

根據預設,從 Amazon EBS 後端執行個體 ,該執行個體會停止。您可以變更這項預設動作,讓執行個體改為終止。如需詳細資訊,請參閱 變更執行個體啟動的關機行為

停用執行個體時,下列項目會遺失

  • 存放在 RAM 中的資料。

  • 存放在執行個體存放區磁碟的資料。

  • Amazon EC2 在啟動或開始時自動指派給執行個體的公有 IPv4 地址。(若要保留永遠不變的公有 IPv4 地址,可在彈性 IP 地址與您的執行個體之間建立關聯。)

  • (EC2-Classic) 使用 EC2-Classic 時,彈性 IP 地址會與您的執行個體取消關聯。如需詳細資訊,請參閱 EC2-Classic

停用執行個體時,下列項目仍會保留

  • Amazon EBS 磁碟區中存放的資料。要與執行個體連接的 EBS 磁碟區。

  • 私有 IPv4 地址。

  • IPv6 地址。

  • 與執行個體有關聯的彈性 IP 地址。請注意,當執行個體停用時,我們會開始針對相關聯的彈性 IP 地址向您收費

如需詳細資訊,請參閱 重新啟動、停止、休眠和終止之間的差異

啟動執行個體時會出現的情況

若透過使用 StartInstances API 啟動 EC2 執行個體 (例如,透過選擇 Amazon EC2 主控台中的 Instance state (執行個體狀態)、Start instance (啟動執行個體),或使用 start-instances AWS CLI 命令),會發生下列情況:

  • 在大多數情況下,執行個體會遷移至新的基礎主機電腦 (不過有時候會保留在目前的主機上)。

  • 如果執行個體設定為接收公有 IPv4 地址,Amazon EC2 會為執行個體指派新的公有 IPv4 地址。(若要保留永遠不變的公有 IPv4 地址,可在彈性 IP 地址與您的執行個體之間建立關聯。)

如需詳細資訊,請參閱 重新啟動、停止、休眠和終止之間的差異

停止和啟動執行個體

您可以使用主控台或命令列,來停止和啟動 Amazon EBS 後端執行個體。

New console

使用主控台來停止和啟動 Amazon EBS 後端執行個體

  1. 停止執行個體時,在任何執行個體存放區磁碟區的資料都會清除。停止執行個體之前,請確認您已將所需的任何資料從執行個體存放區磁碟區複製到永久性儲存,例如 Amazon EBS 或 Amazon S3。

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

  3. 選擇 Instance state (執行個體狀態)Stop instance (停止執行個體)。如果此選項已停用,則執行個體已停止或其根設備是執行個體存放磁碟區。

  4. 出現確認提示時,請選擇 Stop (停止)。停止執行個體可能需要幾分鐘。

  5. (選用) 執行個體停止時,您可以修改某些執行個體屬性。如需詳細資訊,請參閱 modify-stopped-instance

  6. 若要啟動停止的執行個體,請選取執行個體,然後選擇 Instance state (執行個體狀態)Start instance (啟動執行個體)

  7. 執行個體進入 running 狀態可能需要數分鐘。

Old console

使用主控台來停止和啟動 Amazon EBS 後端執行個體

  1. 停止執行個體時,在任何執行個體存放區磁碟區的資料都會清除。停止執行個體之前,請確認您已將所需的任何資料從執行個體存放區磁碟區複製到永久性儲存,例如 Amazon EBS 或 Amazon S3。

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

  3. 選擇動作執行個體狀態停止。如果此選項已停用,則執行個體已停止或其根設備是執行個體存放磁碟區。

  4. 出現確認提示時,請選擇 Yes, Stop (是,停止)。停止執行個體可能需要幾分鐘。

  5. (選用) 執行個體停止時,您可以修改某些執行個體屬性。如需詳細資訊,請參閱 modify-stopped-instance

  6. 若要啟動已停止的執行個體,請選取執行個體,然後選擇 Actions (動作)Instance State (執行個體狀態)Start (啟動)

  7. 在確認對話方塊中,選擇 Yes, Start (是,啟動)。執行個體進入 running 狀態可能需要數分鐘。

使用命令列來停止和啟動 Amazon EBS 後端執行個體

您可以使用下列其中一個命令。如需有關這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

若要執行受控的錯誤注入實驗

您可以使用 AWS Fault Injection Simulator,測試您的應用程式在執行個體停止和啟動時的回應方式。如需詳細資訊,請參閱《AWS Fault Injection Simulator 使用者指南》。

依排程停用和啟動執行個體

您可以設定 EC2 執行個體的停用和啟動排程。以下是設定此程序的兩個選項。

使用 AWS 上的執行個體排程器

您可以使用 AWS 上的執行個體排程器,來自動啟動和停用 EC2 執行個體。如需詳細資訊,請參閱 How do I use Instance Scheduler with CloudFormation to schedule EC2 instances? (如何將執行個體排程器與 CloudFormation 結合使用來設定 EC2 執行個體的排程?) 請注意,這會額外收費

使用 AWS Lambda 和 Amazon EventBridge 規則

您可以使用 Lambda 和 EventBridge 規則,依排程停用和啟動執行個體。如需詳細資訊,請參閱 How do I stop and start Amazon EC2 instances at regular intervals using Lambda? (如何使用 Lambda 定期停用和啟動 Amazon EC2 執行個體?)

啟用停止保護

您預設可使用 Amazon EC2 主控台、命令列介面或 API 來停止執行個體。若要避免意外停止執行個體,您可啟用執行個體的停止保護。停止保護還可以保護您的執行個體免遭意外終止。

DisableApiStop 屬性可控制執行個體是否可使用 Amazon EC2 主控台、AWS CLI 或 API 來停止。您可在執行個體啟動時、運作中或停止時,設定此屬性值。

DisableApiStop 屬性不會讓您無法從執行個體啟動關機 (使用作業系統命令進行系統關機) 來終止該執行個體。

考量

  • 當執行個體具有停止執行個體的排程事件時,啟用停止保護不會阻止 AWS 停止執行個體。

  • 停止保護不僅可防止執行個體意外停止,還可防止使用主控台、AWS CLI 或 API 意外終止。但是,此功能不會自動變更 DisableApiTermination 屬性。請注意,當 DisableApiStop 屬性設定為 False 時,DisableApiTermination 屬性會用於確定是否可以使用主控台、AWS CLI 或 API 來終止執行個體。

  • 啟用停止保護不會阻止 Amazon EC2 Auto Scaling 在執行個體狀態不良時或在縮減事件期間終止執行個體。

  • 您無法為執行個體儲存體所備份的執行個體啟用停止保護。

  • 您無法為 Spot 執行個體啟用停止保護。

  • 當您啟用或停用停止保護時,Amazon EC2 API 會遵循最終一致性模式。如需詳細資訊,請參閱 Amazon EC2 API 參考中的最終一致性

在執行個體啟動時啟用停止保護

您可以在執行個體啟動時,使用下列其中一種方法來啟用停止保護。

New console

在執行個體啟動時啟用停止保護

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在儀表板上,選擇啟動執行個體

  3. 新版啟動執行個體精靈中設定執行個體。

    若要啟用停止保護,請對 Advanced details (進階詳細資訊) 下的 Stop protection (停止保護),選擇 Enable (啟用)。

Old console

在執行個體啟動時啟用停止保護

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在儀表板上,選擇啟動執行個體

  3. 舊版啟動執行個體精靈中設定執行個體。

    若要停用停止保護,請對 Configure Instance Details (設定執行個體詳細資訊) 頁面的 Enable stop protection (啟用停止保護),勾選 Protect against accidental stoppage (防止意外停機) 核取方塊。

AWS CLI

在執行個體啟動時啟用停止保護

使用 run-instances AWS CLI 命令啟動執行個體,並指定 disable-api-stop 參數。

aws ec2 run-instances \ --image-id ami-a1b2c3d4e5example \ --instance-type t3.micro \ --key-name MyKeyPair \ --disable-api-stop \ ...

針對執作中或已停止的執行個體啟用停止保護

您可以在執行個體為執行中或已停止狀態時,使用下列其中一種方法來啟用停止保護。請注意,舊的 Instances (執行個體) 主控台不支援對執行中或已停止的執行個體啟用停止保護。

New console

針對執作中或已停止的執行個體啟用停止保護

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在左側導覽器中,選擇 Instances (執行個體)。

  3. 選取執行個體,然後選擇 Actions (動作)、Instance Settings (執行個體設定)、Change Stop Protection (變更停止保護)。

  4. 勾選 Enable (啟用) 核取方塊,然後選擇 Save (儲存)。

AWS CLI

針對執作中或已停止的執行個體啟用停止保護

使用 modify-instance-attribute AWS CLI 命令,並指定 disable-api-stop 參數。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --disable-api-stop

針對執作中或已停止的執行個體停用停止保護

您可以使用下列其中一種方法,來對執行中或已停止的執行個體停用停止保護。請注意,執行個體主控台不支援對執行中或已停止的執行個體停用停止保護。

New console

針對執作中或已停止的執行個體停用停止保護

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在左側導覽器中,選擇 Instances (執行個體)。

  3. 選取執行個體,然後選擇 Actions (動作)、Instance Settings (執行個體設定)、Change Stop Protection (變更停止保護)。

  4. 清除 Enable (啟用) 核取方塊,然後選擇 Save (儲存)。

AWS CLI

針對執作中或已停止的執行個體停用停止保護

使用 modify-instance-attribute AWS CLI 命令,並指定 no-disable-api-stop 參數。

aws ec2 modify-instance-attribute \ --instance-id i-1234567890abcdef0 \ --no-disable-api-stop

修改已停止的執行個體

您可以使用 AWS Management Console 或命令列介面,針對已停止的執行個體,來變更其執行個體類型、使用者資料和 EBS 最佳化屬性。您無法使用 AWS Management Console來修改 DeleteOnTermination、核心或 RAM 磁碟屬性。

修改執行個體的屬性

使用命令列來修改執行個體的屬性

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

停用執行個體時的疑難排解

如果停止 Amazon EBS 後端執行個體,而該執行個體似乎「凍結」於 stopping 狀態,則您可以強制將其停止。如需詳細資訊,請參閱 停用執行個體時的疑難排解