iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
IT Operation

從前後端踏上 AWS 雲端架構勇者之路系列 第 13 篇

建立一台 EC2 主機,系統、規格和登入方式要怎麼選?

  • 分享至 

  • xImage
  •  

前幾篇我們從 VPC、Subnet,一路講到路由表、IGW,還有 Security Group 比較有概念了。今天終於要來認識 EC2 主機哩 :D

EC2 就是讓你在 AWS 上建立主機的服務

前面網路準備好了,接下來總要有台機器放我們的後端程式吧?這次就用 Amazon EC2 來建立一台虛擬主機

每一台建立出來的主機,AWS 叫它 Instance(執行個體),現在來看它用什麼系統、多少記憶體,以及檔案放哪裡

EC2 全貌:AMI 與 Instance type 是建立時的選擇;EC2 放在 Subnet、使用 SG,並連接 EBS 儲存系統與檔案

圖裡紫色線是主機連接磁碟,橘框則是前篇認識的 SG。建立主機時會看到這幾個選項:

選項 在選什麼?
AMI 建立主機用的系統範本,例如 Ubuntu
Instance type CPU、記憶體等主機規格
EBS 保存系統與檔案的磁碟
VPC、Subnet 主機放在哪個網路
Security Group 允許哪些來源連到哪些 Port
Key pair 這次用 SSH 登入主機的公鑰與私鑰

AMI 用來選系統,Instance type 是選規格

假設你說:「我要一台 Ubuntu 主機來跑 Node.js。」那還得再想一下,要給它多少 CPU、多少記憶體?

這就是 AMI 跟 Instance type 分開選的原因

AMI(Amazon Machine Image) 可以先想成系統範本,裡面有作業系統,也可以有預先裝好的軟體。同一份 AMI 能拿來開好幾台主機,但你後來在某台裝了 Node.js,其他台和原本的 AMI 不會跟著改

Instance type 則是在選 CPU、記憶體等規格,也附上(規格介紹)

這次用 Ubuntu Server 24.04 LTS、64-bit Arm,搭配 t4g.micro。因為 T4g 是 Arm 架構,系統和要裝的軟體也得支援 Arm

那我的程式跟檔案,要存在哪?

主機有了 CPU、記憶體,還需要磁碟來放 Ubuntu、程式碼跟設定檔。這次用的是 EBS,可以先把它想成接給 EC2 用的硬碟,AWS 叫一個磁碟區 Volume

那我要怎麼連進 EC2 主機?

這次用 SSH 金鑰登入。Key pai 就是公鑰與私鑰:公鑰放在主機,私鑰自己保管,登入時用來證明你持有對應的金鑰

等一下下載的 .pem 就是私鑰,收在自己電腦就好,這個也不能外流勒

IAM 決定能否管理 AWS 上的 EC2;SSH 連線要通過 SG 的來源規則,並由主機進行公鑰登入驗證,私鑰留在自己的電腦

要做什麼? 看哪裡?
在 AWS 建立、停止 EC2 IAM 權限
連到 EC2 的 TCP 22 網路路徑與 SG 規則
用 SSH 登入 Ubuntu 系統使用者、私鑰與主機登入設定

圖裡省略了前幾篇的路由、公有 IP,這些條件還是要有。就算 SG 允許你連 TCP 22,拿錯私鑰也登不進去;私鑰正確,來源被 SG 擋住,一樣連不上

藉由這樣的措施,來做好資訊安全的把關~

申請主機會花多少摳摳?

先來算一下錢,因為主機、磁碟、公有 IP,是分開計費的

這裡用東京 ap-northeast-1、一台 t4g.micro、一般 Ubuntu Linux、8 GiB 的 gp3 磁碟,以及一個公有 IPv4 來算。主機採 On-Demand(隨用隨付),CPU 模式設為 Standard,磁碟不另外增加效能

假設連續開 30 天,也就是 720 小時,先不扣免費額度或 credits,預算大約是這樣:

項目 單價 連續使用 30 天
EC2 t4g.micro 主機 US$0.0108/小時 US$7.78
EBS gp3 磁碟 8 GiB 每 GB-月 US$0.096,這裡配置 8 GiB US$0.77
一個公有 IPv4 US$0.005/小時 US$3.60
這三項合計 依未四捨五入數值加總 約 US$12.14/月

也附上來源 EC2 價目表、EBS 價目表與公有 IPv4 價目表

換 Region、規格或使用時間的話,金額就會跟著變

前面建立的 VPC、Subnet、路由表、IGW 與 SG,本身不另外收基本使用費;但網路傳輸仍要依使用情況計費

知道預算後,來建立第一台主機

接下來用 AWS Console,也就是瀏覽器上的 AWS 管理頁面,把剛剛的設定實際選一次

用有建立 EC2 權限的身分登入,Region 選 Tokyo。下面沿用前面準備的 VPC、Public Subnet、IGW 路由與 SG,都要在同一區

1. 進入建立主機的頁面

到 EC2 → Instances → Launch instances,名稱填 my-web-server,方便之後在清單找到它。這是主機名稱,不是網站網址

2. 選系統與主機規格

沿用前面算過預算的小型主機:官方 Canonical 的 Ubuntu Server 24.04 LTS、64-bit Arm,搭配 t4g.micro

Ubuntu AMI:選 Ubuntu Server 24.04 LTS,Architecture 為 64-bit Arm
Instance type:選 t4g.micro,2 vCPU、1 GiB 記憶體

3. 建立並收好登入用的金鑰

下一篇 SSH 登入就要用到它。在 Key pair (login) → Create new key pair,名稱填 my-web-key,選 RSA、.pem,配合後面使用的 OpenSSH

下載後收好,確認表單已選中這組 Key pair。AWS 產生的私鑰只有建立時能下載,之後不能回來補抓同一份

Create key pair:填入自己的金鑰名稱,選 RSA 與 .pem 格式

4. 選前面準備好的網路與 SG

這次從自己的電腦,透過 Internet 直接連 EC2,所以主機要有公有 IP,也要有通往 IGW 的路

到 Network settings → Edit,選自己的 VPC、Public Subnet,將 Auto-assign public IP 設為 Enable,再選前面準備的 SG。別直接用表單預選的網路,確認是自己前面那一組

SSH TCP 22 的來源,填自己目前上網的公有 IP /32。因為這是遠端操作主機的入口,這次自己要連,先允許自己的上網來源就好,不用開給所有人

5. 設磁碟,確認 CPU 模式

到 Configure storage,系統與檔案先用 8 GiB、gp3,沿用前面的預算。開啟加密,保護磁碟資料;讀寫效能維持基本的 3,000 IOPS、125 MiB/s

Storage:8 GiB、gp3、加密與 Delete on termination 的設定位置

接著到 Advanced details → Credit specification。這裡有 Standard 跟 Unlimited,差在哪?

用六角學院學習系統來看。平常學生看課程、交作業,時間比較分散,假設這台 EC2 的 CPU 使用量多數時間低於基準,就可以慢慢存點數

到了開放課程報名那一刻,短時間很多人同時送出報名,假設 CPU 需求也跟著超過基準,這時就拿存下來的點數來用

這就是 T4g 的 CPU 點數:平常比較閒時累積,忙起來再拿出來用

它有一個基準效能,也就是不需要持續消耗存下來的點數,就能維持的 CPU 使用程度。低於基準時存點數,高於基準時消耗點數

六角學院學習系統的假設情境:平常看課、交作業且 CPU 低於基準時累積點數,開放報名時使用;點數不足後比較 Standard 與 Unlimited

假設情境是:平常看課、交作業且 CPU 低於基準時累積點數,開放報名時使用

Standard: 如果這波報名還沒結束,點數卻快用完了,CPU 就會逐漸降回基準效能。主機還在跑,但處理報名可能變慢。不會多收超額 CPU 點數費,原本的主機費照算

Unlimited: 同樣遇到報名人潮,存的點數用完,還能用「超額點數」繼續處理。人潮過後,CPU 使用量降到基準以下,就能用新累積的點數抵回來;如果一直很忙、超過可抵額度,就會另外收費

如果不希望超出額外主機費用,我會建議先選 Standard 就好。主機開著、CPU 用量低於基準時,可以慢慢存點數,之後短時間忙起來再拿來用,也不用擔心多出超額 CPU 點數費;只是點數不足時,程式可能變慢

回到六角開放報名的例子,Standard 存的點數夠,也能應付短時間的忙碌。如果不能接受因點數不足降速,再評估 Unlimited 和費用

如果每天都長時間吃滿 CPU,就該比較其他提供固定 CPU 效能的機型,不要只看 micro 的基本月費覺得便宜哦,附上(AWS 的選型比較)

Credit specification:選 Standard 模式

6. 最後看一次摘要,再按建立

按下去就要開始算錢了,規格最後是:1 台、Ubuntu Arm、t4g.micro、正確的網路與 SG、8 GiB 磁碟,再按 Launch instance

回 Instances,等它顯示 Running,並且 Status checks 通過。還在 Initializing,就等一下再重新整理~(AWS 建立主機教學)

主機顯示 Running,網站就好了嗎?

還沒哩,Running 只是主機開了,裡面還沒有你的網站

接下來還得裝 Node.js 等執行環境、放程式、設環境變數,再把程式跑起來。SG 開了 TCP 443,也不會順便幫你裝網站、設定 HTTPS 憑證

EC2 裡的系統更新、軟體與程式設定,還是有自己要管理的部分

如果不想讓 EC2 繼續運作,可以按 Instance state → Stop instance,等它變成 Stopped,先停下運算費

小結

最後小結一下:

想處理的事情 要看哪裡?
決定建立時使用的系統 AMI
調整 CPU、記憶體規格 Instance type
保存系統與檔案、評估磁碟空間 EBS
決定主機放哪裡、哪些來源能連進來 VPC、Subnet、路由與 SG
管理 AWS 資源,或用 SSH 登入主機 分別看 IAM 權限與主機登入驗證

今天終於 EC2 建起來,也知道它有哪些設定、會花哪些錢

下一篇我們用 SSH 登入、存一個檔案,再把主機關掉重開,看看 IP 跟檔案還在不在。我們下篇見 :D


上一篇
Port 明明有開,為什麼還是被 Security Group 擋住?
下一篇
EC2 開好了,怎麼登入?關機再開後,IP 和檔案還在嗎?
系列文
從前後端踏上 AWS 雲端架構勇者之路 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言