跳到主內容

【AWS】Day 6:運算服務 - Amazon EC2(虛擬機服務)

在前幾篇中,我們介紹了各種運算服務的分類方式,像是 IaaS、PaaS、FaaS 等等。

今天就從 AWS 中最經典、最基礎的 IaaS 服務開始介紹 —— Amazon EC2(Elastic Compute Cloud)

這個服務幾乎是所有 AWS 使用者早期接觸雲端的第一站,也是許多架構的基石。


什麼是 EC2?

EC2 就是一台 雲端的虛擬機器(Virtual Machine)

可以想像成你在資料中心租了一台電腦,你可以選擇要用 Linux 還是 Windows,要幾核心、幾 GB 記憶體,要多大的硬碟,要不要固定 IP……這些你都可以自己決定。

建立 EC2 之後,就能連進去安裝軟體、跑應用、開 Web Server、跑排程、架設資料庫……什麼都行。


EC2 的核心概念

1️⃣ Instance(執行個體)

每一台 EC2 就是一個 Instance,你可以開很多個、關掉它、重新啟動,甚至做 snapshot 備份。

2️⃣ AMI(Amazon Machine Image)

AMI 是一種映像檔,可以理解成 EC2 的「作業系統+預設環境」模板。
常見的 AMI 包含:

  • Amazon Linux

  • Ubuntu

  • Debian

  • Windows Server

  • 自己製作的 AMI

3️⃣ Instance Type(機型)

AWS 提供各種 instance type 給你選擇,依照用途分類,例如:

類型代號 用途 代表型號
t 系列 一般型、低成本 t3.micro、t4g.nano
m 系列 平衡型 m6i.large
c 系列 計算密集型 c7g.medium
r 系列 記憶體密集型 r6g.large
g 系列 GPU 運算型 g5.xlarge

建立 EC2 的流程簡介

  1. 選擇 AMI:決定你要用哪一種作業系統

  2. 選擇 Instance Type:例如 t3.micro(免費方案支援)

  3. 設定 Key Pair:建立 SSH 金鑰,用來連線 EC2

  4. 設定 Network(VPC)與 Security Group(防火牆)

  5. 設定磁碟(EBS)大小

  6. 啟動 EC2!

完成後你會拿到一組 Public IP,就可以用 SSH 連進去使用了。


價格與計費方式

EC2 的價格組成會根據幾個項目決定:

項目 說明
Instance Type 不同型號每小時價格不同
計費模式 On-Demand / Spot / Reserved
使用時間 每秒或每小時計費
是否有附加儲存 EBS 空間也另外計費
傳輸流量 Outbound(出站)會收費

EC2 的使用情境

EC2 適合用在哪些情況呢?以下列舉幾個常見案例:

  • 需要完整控制環境與作業系統

  • 要安裝自訂軟體或中介軟體(middleware)

  • 部署高效能或特殊架構的應用(如容器主機、資料庫伺服器)

  • 架設 CI/CD 服務、自架 Git、Redis、RabbitMQ

  • 建立可手動調整、監控的後台系統


小結

EC2 是 AWS 中最基礎的運算服務,具備極大的彈性與控制權:

  • 可以自由選擇作業系統與機型

  • 適合習慣傳統主機操作的團隊

  • 計費彈性、整合其他 AWS 服務方便


EC2 進階篇:實戰操作與進階應用

在上一篇我們介紹了 EC2 的基本觀念與用途,這篇會帶大家進一步實作:

  • 如何登入 EC2?

  • 如何開放 port(像是 80、443)讓外部可以訪問?

  • 怎麼設定開機自動執行程式?

  • EC2 如何實作自動擴展(Auto Scaling)?


一、登入 EC2 實例(Linux)

當你啟動好一台 EC2 Linux 實例後,登入方式如下:

✅ 準備工作

  • 確保當初有建立 Key Pair,下載了 .pem 檔案

  • 開啟 Security Group 的 TCP port 22(SSH)

  • 有 Public IP 或 Public DNS(可在 EC2 頁面查看)

💻 登入指令

chmod 400 my-key.pem
ssh -i my-key.pem ec2-user@<你的 Public IP>

不同 AMI 登入帳號不同:

  • Amazon Linux 用 ec2-user

  • Ubuntu 用 ubuntu

  • Debian 用 admindebian


二、開放 HTTP / HTTPS 連線

如果你要讓外部可以訪問你的 EC2,例如跑 Web server,需要設定 Security Group

✅ 開啟常見 port:

  • HTTP:80

  • HTTPS:443

  • 自定服務:你用什麼就開什麼(例如 3000、8080)

操作步驟:

  1. 到 EC2 頁面點選「Security Group」

  2. 找到你 EC2 所使用的 security group

  3. 編輯「Inbound rules」

  4. 新增:

    • 類型:HTTP、HTTPS

    • 來源:0.0.0.0/0(所有人都可以連)或限制特定 IP


三、設定開機後自動執行程式(User Data)

你可以在建立 EC2 時加入 User Data,當機器第一次啟動時會自動執行這段腳本。

範例:自動安裝 Nginx 並啟動 Web Server

#!/bin/bash
yum update -y
yum install -y nginx
systemctl enable nginx
systemctl start nginx
echo "Hello from EC2!" > /usr/share/nginx/html/index.html

✅ 注意:User Data 只能在 EC2 首次啟動時執行一次
✅ 如果想修改已存在的 User Data,需要重新建立新的 EC2 或自己寫開機指令。


四、設定 Auto Scaling Group(自動擴展)

Auto Scaling 是 EC2 強大的特點之一,可以根據負載自動增減 EC2 數量。

使用場景:

  • 使用者流量增加,自動開新機器

  • 流量低時自動縮減節省成本

  • 保證服務有固定最少機器數(High Availability)

建立流程簡略:

  1. 建立一個 Launch Template(定義要開什麼樣的 EC2)

  2. 設定 Auto Scaling Group:

    • 定義最小 / 最大 EC2 數量

    • 設定 Scaling Policy(例如 CPU > 60% 時新增 1 台)

  3. 可結合 Load Balancer,讓所有流量平均分配到所有 EC2 上


五、備份與還原

EC2 本身不會自動備份,要使用以下方式保護資料:

快照(Snapshot)

  • 可對 EBS 磁碟建立快照

  • 快照可以還原成新的 EBS 磁碟掛回 EC2

建立 AMI

  • 對目前 EC2 建立 AMI 映像檔

  • 可隨時用這個 AMI 快速建立新機器(帶所有設定)


小結

這篇進階實作帶你實際操作 EC2,包括:

  • 使用 SSH 登入實例

  • 開放外部連線 port

  • 利用 User Data 自動化設定

  • 設定 Auto Scaling Group 自動擴展

  • 建立快照與 AMI 做備份

EC2 的強大在於它的彈性與可控性,從個人專案到大型分散式系統,都能發揮作用。


下一篇,我們將來看看如果你不想自己處理作業系統、網路設定、磁碟掛載這些瑣事時,AWS 有沒有更輕鬆的方案?
Day 7:Elastic Beanstalk - 全自動部署的神隊友!,我們不見不散!