在當代雲端架構中,Amazon EC2 作為基礎設施即服務(IaaS)的核心組件,提供了可彈性擴展的運算資源,是企業實現敏捷開發的基石。本篇內容深入探討 EC2 實例的完整生命週期管理,從資源的初始化配置到日常維運。文章不僅詳述創建實例的技術步驟,更著重於其背後的管理哲學,例如透過安全組實現網路流量控制,利用金鑰對建立安全存取機制,以及藉由實例狀態管理達到成本與效能的最佳化。掌握這些核心操作,是確保雲端環境穩定、安全且具備成本效益的必要技能,為後續部署複雜服務奠定堅實基礎。
Amazon EC2 實例:創建、連接與管理詳解
本附錄將詳細闡述如何透過 Amazon Web Services (AWS) 的 Elastic Compute Cloud (EC2) 服務創建、配置和管理虛擬伺服器實例,以作為部署 Docker 及相關應用程式的基礎環境。
創建 EC2 實例的流程
在 AWS 管理控制台中,創建 EC2 實例是一個多步驟的過程,旨在確保您能根據需求選擇合適的配置。
- 
導航至 EC2 儀表板: 登入您的 AWS 帳戶後,導航至 EC2 服務。在左側導航欄中,選擇「Instances」(實例),然後點擊「Launch Instances」(啟動實例)按鈕。 
- 
選擇 Amazon Machine Image (AMI): AMI 是創建虛擬伺服器的模板,包含了作業系統和預設軟體。您可以從 AWS 提供的眾多 AMI 中選擇,例如: - Ubuntu Server 14.04 LTS (HVM): 一個廣泛使用的、穩定的 Linux 發行版。
- Red Hat Enterprise Linux 7.1 (HVM): 另一個流行的企業級 Linux 發行版。 選擇時需注意 AMI 的架構(必須是 64 位元)以及是否符合 Free Tier 資格(對於實驗和學習非常有用)。
 
- 
選擇實例類型 (Instance Type): 實例類型決定了虛擬伺服器的計算資源,如 CPU (vCPU)、記憶體和網絡帶寬。例如, t2.micro屬於通用型,通常在 Free Tier 範圍內,適合入門級的測試和開發。根據您的應用需求,可以選擇更強大的實例類型。
- 
配置實例細節與存儲: 在此步驟中,您可以配置實例的網絡設置、存儲卷大小和類型。對於運行 Docker,建議使用 SSD 卷以獲得更好的 I/O 性能。 
- 
添加標籤 (Tags): 為實例添加標籤(如 Name: DockerHost)有助於日後識別和管理。
- 
配置安全組 (Security Group): 安全組是實例的虛擬防火牆,用於控制進出實例的流量。創建一個新的安全組,並添加必要的規則。對於部署 Docker,至少需要允許 SSH(TCP 端口 22)的入站連接,以便遠程登錄。如果需要從外部訪問容器內運行的服務,還需要開放相應的端口。 
- 
審查與啟動: 在「Review and Launch」頁面,仔細檢查所有配置。確認無誤後,點擊「Launch」按鈕。 
- 
創建或選擇金鑰對 (Key Pair): 這是連接到 EC2 實例的關鍵步驟。 - 創建新金鑰對: 輸入一個名稱(例如 my-docker-key),然後點擊「Download Key Pair」。AWS 會生成一個私鑰文件(.pem格式),請務必將其下載並安全地保存在本地,因為這是您未來連接實例的唯一憑證。
- 選擇現有金鑰對: 如果您之前已創建過金鑰對,可以直接選擇。
 
- 創建新金鑰對: 輸入一個名稱(例如 
- 
啟動實例: 完成金鑰對的選擇後,點擊「Launch Instances」。您會看到一個啟動狀態頁面,顯示實例正在創建中。 
管理 EC2 實例的狀態
- 實例狀態: 新創建的實例最初處於「pending」(待定)狀態,隨後會變為「running」(運行中)。
- 啟動已停止的實例: 如果實例被停止,您可以通過選擇實例,然後在「Instance State」菜單中選擇「Start」來重新啟動它。
連接至 EC2 實例
一旦實例運行起來,您就可以使用 SSH 客戶端進行連接。
- 
獲取連接信息: 在 EC2 控制台中,選擇已啟動的實例,然後點擊「Connect」按鈕。AWS 會提供一個「Connect To Your Instance」對話框,其中包含了詳細的連接指令。 
- 
SSH 連接命令: 該命令通常格式如下: ssh -i "your_private_key.pem" <user_name>@<Public_IP_Address_or_DNS>- -i "your_private_key.pem": 指定您下載的私鑰文件路徑。
- <user_name>: 根據您選擇的 AMI,用戶名通常是- ubuntu(對於 Ubuntu AMI)或- ec2-user(對於 Amazon Linux 或 Red Hat AMI)。
- <Public_IP_Address_or_DNS>: 實例的公共 IP 地址或公共 DNS 名稱。
 
- 
執行連接: 在本地終端中執行上述 SSH 命令。首次連接時,系統可能會詢問您是否信任該主機的指紋,輸入 yes確認即可。成功連接後,您將進入 EC2 實例的命令行環境。
創建獨立的金鑰對
除了在創建實例時生成金鑰對,您也可以在 AWS 控制台的「Network & Security」>「Key Pairs」部分單獨創建和管理金鑰對。這提供了更大的靈活性,可以提前準備好金鑰,或刪除不再使用的金鑰對。
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
object "User" as USER
object "AWS Console" as AWS_CONSOLE
object "EC2 Dashboard" as EC2_DASHBOARD
object "Launch Instances Wizard" as LAUNCH_WIZARD
object "AMI Selection" as AMI_SELECT
object "Instance Type Selection" as INSTANCE_TYPE_SELECT
object "Security Group Config" as SEC_GROUP_CONFIG
object "Key Pair Management" as KEY_PAIR_MGMT
object "EC2 Instance" as EC2_INSTANCE
object "Private Key File (.pem)" as PRIVATE_KEY_FILE
object "SSH Client" as SSH_CLIENT
partition "EC2 Instance Creation Workflow" {
  USER --> AWS_CONSOLE : Login to AWS
  AWS_CONSOLE --> EC2_DASHBOARD : Navigate to EC2
  EC2_DASHBOARD --> LAUNCH_WIZARD : Start Instance Launch
  LAUNCH_WIZARD --> AMI_SELECT : Choose OS Image (e.g., Ubuntu)
  LAUNCH_WIZARD --> INSTANCE_TYPE_SELECT : Select Hardware (e.g., t2.micro)
  LAUNCH_WIZARD --> SEC_GROUP_CONFIG : Configure Network Access (Port 22)
  LAUNCH_WIZARD --> KEY_PAIR_MGMT : Create/Select Key Pair
  KEY_PAIR_MGMT --> PRIVATE_KEY_FILE : Download Private Key
  LAUNCH_WIZARD --> EC2_INSTANCE : Launch Instance
  EC2_INSTANCE --> EC2_DASHBOARD : Display Instance Status (Pending -> Running)
  note right of EC2_INSTANCE
    Virtual server provisioned on AWS.
    Requires 64-bit OS.
  end note
}
partition "Connecting to the Instance" {
  USER --> SSH_CLIENT : Prepare SSH Command
  SSH_CLIENT --> EC2_INSTANCE : Use Private Key & Public IP/DNS
  EC2_INSTANCE --> SSH_CLIENT : Authenticate & Establish Session
  USER --> EC2_INSTANCE : Execute Commands
  note left of SSH_CLIENT
    Requires correct user name (e.g., ubuntu, ec2-user).
  end note
}
partition "Key Pair Management" {
  USER --> AWS_CONSOLE : Access Key Pairs section
  KEY_PAIR_MGMT --> USER : Create New Key Pair
  KEY_PAIR_MGMT --> USER : Delete Existing Key Pair
  note right of KEY_PAIR_MGMT
    Secure access credential.
    Must be kept private.
  end note
}
@enduml看圖說話:
此圖示詳細描繪了使用 Amazon EC2 創建、配置和連接虛擬伺服器實例的完整流程,特別強調了金鑰對在身份驗證中的核心作用。圖的左側部分展示了創建 EC2 實例的工作流程:用戶通過 AWS 控制台啟動實例創建嚮導,依次選擇操作系統映像檔 (AMI)、實例類型、配置網絡安全組(開放 SSH 端口 22),並在金鑰對管理環節創建或選擇一個金鑰對,隨後下載私鑰文件。嚮導完成後,EC2 實例被啟動並顯示其狀態。中間部分則說明了如何使用 SSH 客戶端,結合下載的私鑰文件和實例的公共 IP 地址或 DNS,來連接到正在運行的 EC2 實例。用戶需要指定正確的用戶名(如 ubuntu 或 ec2-user)來完成身份驗證。右側部分獨立展示了金鑰對的管理功能,用戶可以在 AWS 控制台中單獨創建新的金鑰對或刪除不再需要的金鑰對,這強調了金鑰對作為安全訪問憑證的重要性,並提醒用戶必須妥善保管私鑰。整個流程圖清晰地呈現了從雲端資源的獲取到安全訪問的完整鏈路。
Amazon EC2 實例:網絡配置與實例生命週期管理
本附錄將進一步探討如何獲取 Amazon EC2 實例的網絡信息,配置安全組以實現遠程訪問,以及管理實例的生命週期。
獲取實例的網絡識別信息
在成功啟動 EC2 實例後,您需要獲取其公共 IP 地址和公共 DNS 名稱,以便進行遠程連接和訪問。
- 
查找公共 IP 地址: 在 AWS EC2 控制台的實例列表中,您可以直接查看每個實例的「Public IPv4 address」欄位。這個 IP 地址是您的實例在公共互聯網上的唯一標識,用於 SSH 連接。 
- 
查找公共 DNS: 公共 DNS 名稱(Public DNS)提供了另一種訪問實例的方式,尤其當 IP 地址可能發生變動時,DNS 名稱更為穩定。它通常以 ec2-XX-XX-XX-XX.compute-1.amazonaws.com的形式出現。- 啟用 DNS 主機名: 在某些情況下,公共 DNS 可能不會自動顯示。若要啟用它,您需要導航至「Services」>「VPC」,然後在 VPC Dashboard 中選擇「Your VPCs」。選中您的 VPC 後,通過「Actions」菜單選擇「Edit DNS Hostnames」,並將設置更改為「Yes」,然後保存。這將確保您的 VPC 內的實例能夠獲得分配的公共 DNS 名稱。
 
配置安全組以實現遠程訪問
安全組是 EC2 實例網絡安全的核心。為了讓外部能夠訪問實例上運行的服務(例如 SSH 或 Web 應用),必須正確配置安全組的入站(Inbound)和出站(Outbound)規則。
- 
分配默認安全組: 在本書的範例中,我們通常會將名為「default」的安全組分配給 EC2 實例。這個安全組通常配置為允許所有協議和端口的流量在實例與外部之間自由傳輸。 - 選擇您的 EC2 實例。
- 通過「Actions」>「Networking」>「Change Security Groups」來修改實例的安全組設置。
- 在彈出的面板中,勾選「default」安全組,然後點擊「Assign Security Groups」。
 
- 
檢查與編輯安全組規則: 您可以隨時通過「Network & Security」>「Security Groups」來查看和編輯安全組的規則。 - 入站規則 (Inbound Rules):
- 目的: 控制哪些外部流量可以進入您的實例。
- 默認配置: 「default」安全組通常包含一條規則,允許「All Traffic」(所有流量),協議為「All」(所有協議),端口範圍為「All」(0-65535),來源為「0.0.0.0/0」(代表任何公共 IP 地址)。這意味著任何來源都可以通過任何協議訪問實例上的任何端口。
- 編輯: 如果需要更精細的控制(例如,僅允許 SSH 端口 22),可以點擊「Inbound」>「Edit」來修改規則。
 
- 出站規則 (Outbound Rules):
- 目的: 控制您的實例可以向外部發起哪些連接。
- 默認配置: 「default」安全組通常也配置為允許「All Traffic」到「0.0.0.0/0」,允許實例訪問外部網絡資源。
- 編輯: 同樣可以通過「Outbound」>「Edit」進行修改。
 
 請注意,為了方便測試和實驗,將安全組設置為允許所有流量是常見的做法。但在生產環境中,出於安全考慮,應當僅開放必要的端口和協議。 
- 入站規則 (Inbound Rules):
管理實例的生命週期
EC2 實例具有不同的生命週期狀態,您可以根據需要進行管理。
- 
停止實例 (Stop): 當您暫時不需要使用實例時,可以將其停止。停止的實例不會產生計算費用,但可能會產生 EBS 存儲卷的費用。 - 選擇要停止的實例。
- 通過「Actions」>「Instance State」>「Stop」來執行停止操作。
- 您可以同時選擇多個實例進行批量停止。
 
- 
啟動實例 (Start): 要重新啟用已停止的實例,請選擇該實例,然後通過「Actions」>「Instance State」>「Start」來啟動。 
- 
終止實例 (Terminate): 當您不再需要該實例時,可以將其終止。終止後的實例將被刪除,其關聯的 EBS 卷(如果未單獨配置)也會被刪除,並且無法恢復。 
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
object "User" as USER
object "AWS Console" as AWS_CONSOLE
object "EC2 Dashboard" as EC2_DASHBOARD
object "Instances List" as INSTANCE_LIST
object "Instance Details Panel" as INSTANCE_DETAILS
object "Security Groups Section" as SEC_GROUPS_SECTION
object "VPC Section" as VPC_SECTION
object "EC2 Instance" as EC2_INSTANCE
object "SSH Client" as SSH_CLIENT
object "Remote Browser" as REMOTE_BROWSER
partition "Network Information Retrieval" {
  USER --> AWS_CONSOLE : Access AWS
  AWS_CONSOLE --> EC2_DASHBOARD : Navigate to EC2
  EC2_DASHBOARD --> INSTANCE_LIST : View Instances
  INSTANCE_LIST --> INSTANCE_DETAILS : Select Instance
  INSTANCE_DETAILS --> USER : Display Public IP Address
  INSTANCE_DETAILS --> USER : Display Public DNS (if enabled)
  note right of INSTANCE_DETAILS
    Public IP for SSH.
    Public DNS for web access.
  end note
}
partition "Enabling Public DNS" {
  USER --> AWS_CONSOLE : Navigate to VPC Section
  VPC_SECTION --> USER : Select 'Your VPCs'
  USER --> VPC_SECTION : Select VPC & Actions
  VPC_SECTION --> USER : Edit DNS Hostnames (Enable)
  note left of VPC_SECTION
    Ensures DNS resolution for instances.
  end note
}
partition "Security Group Configuration" {
  USER --> INSTANCE_DETAILS : Select Instance
  INSTANCE_DETAILS --> USER : Access 'Change Security Groups'
  USER --> SEC_GROUPS_SECTION : Assign 'default' Security Group
  USER --> SEC_GROUPS_SECTION : View/Edit Inbound Rules
  USER --> SEC_GROUPS_SECTION : View/Edit Outbound Rules
  note right of SEC_GROUPS_SECTION
    Control network traffic.
    'default' allows all traffic (for simplicity).
    Restrict to specific ports (e.g., 22, 80, 443) for production.
  end note
}
partition "Instance Lifecycle Management" {
  USER --> INSTANCE_LIST : Select Instance(s)
  INSTANCE_LIST --> USER : Actions > Instance State > Stop
  INSTANCE_LIST --> USER : Actions > Instance State > Start
  INSTANCE_LIST --> USER : Actions > Instance State > Terminate
  note left of INSTANCE_LIST
    Stop: Save costs, retain data.
    Terminate: Permanent deletion.
  end note
}
@enduml看圖說話:
此圖示詳細闡述了如何獲取 Amazon EC2 實例的網絡信息、配置安全組以實現遠程訪問,以及管理實例的生命週期。圖的左側部分展示了獲取實例網絡信息的過程:用戶通過 EC2 控制台的實例列表和詳細信息面板,可以輕鬆找到實例的公共 IP 地址和公共 DNS 名稱。圖中還特別說明了,如果公共 DNS 未顯示,用戶需要導航到 VPC 部分,並啟用 DNS 主機名解析功能。中間部分聚焦於安全組的配置,展示了如何為實例分配「default」安全組,以及如何查看和編輯入站/出站規則,強調了「default」安全組通常允許所有流量,並建議在生產環境中進行更精細的端口限制。右側部分則概述了實例的生命週期管理,包括停止、啟動和終止實例的操作,並提示了各狀態的含義和注意事項,例如停止實例可以節省計算費用但仍需支付存儲費用,而終止則意味著數據的永久丟失。整體圖示清晰地呈現了 EC2 實例的網絡配置和生命週期管理的核心操作。
調整 EC2 實例類型
實例類型決定了虛擬伺服器的計算能力。當應用程式的需求發生變化時,您可能需要調整實例類型以獲得更強的性能或節省成本。
- 
停止實例: 在更改實例類型之前,必須先停止該實例。這是因為實例的硬件配置(CPU、記憶體等)是在啟動時確定的,更改類型相當於更換硬件,因此需要先關閉實例。 
- 
更改實例類型: - 選擇已停止的實例。
- 通過「Actions」>「Instance Settings」>「Change Instance Type」來進行操作。
- 在彈出的對話框中,選擇您希望設置的新實例類型(例如,從 t2.micro升級到m3.medium)。
 
- 
應用更改: 選擇好新的實例類型後,點擊「Apply」按鈕。AWS 將更新實例的配置。 
- 
重新啟動實例: 更改實例類型後,需要重新啟動實例才能使新的配置生效。 
注意事項:
- 升級實例類型可能會導致實例不再符合 AWS Free Tier 的資格,從而產生額外費用。
- 降級實例類型可能會影響應用程式的性能。
看圖說話:
此圖示總結了 Amazon EC2 實例類型調整的流程,並對整個附錄的內容進行了概括。圖的左側部分詳細展示了如何更改 EC2 實例的類型:用戶首先需要在實例列表中選擇一個實例,然後將其實例狀態變更為「停止」,之後通過「實例設置」菜單進入「更改實例類型」對話框,選擇新的實例類型,並應用更改。最後,重新啟動實例以使新類型生效。此過程強調了在更改類型前必須先停止實例,並提醒用戶注意可能影響免費套餐資格。圖的右側部分則對整個附錄的內容進行了匯總,列出了用戶通過 AWS 控制台學習到的關鍵 EC2 操作,包括實例的創建(涉及 AMI、實例類型、安全組)、連接(金鑰對、SSH)、網絡信息獲取(IP、DNS)與安全組配置,以及實例的生命週期管理(啟動、停止、終止)和實例類型的調整。這部分總結了 EC2 作為雲端部署基礎的靈活性和資源管理能力。
結論
評估此發展路徑的長期效益後,我們發現,精通 Amazon EC2 的創建與管理,其價值已遠遠超越單純的技術操作。它實質上是高階管理者在數位時代,必須具備的一種全新「資源調度素養」。從選擇實例類型到配置安全組,每一個步驟都對應著企業在成本效益、風險治理與營運彈性上的關鍵決策,這將傳統抽象的 IT 治理轉化為具體、可量化的資源配置實踐。
相較於僅依賴技術團隊報告的管理者,具備此項實務知識的領導者,能更深入地參與績效對話,並做出更精準的策略判斷。展望未來,技術與管理的邊界將持續模糊,這種對雲端基礎設施的「第一性原理」理解,將不再是技術長的專利,而是所有策略決策者的核心競爭力之一。
玄貓認為,掌握雲端資源的配置與生命週期管理,已是現代管理者自我投資的關鍵一環。這不僅是為了提升專案執行效率,更是為了確保在未來數位經濟的浪潮中,自身具備不可或缺的策略視野與領導價值。
 
            