昨天終於把專案放到 EC2 上並看到頁面了!不過回頭看,從開機器到跑容器,一路出現了公網 IP、Subnet、Security Group,還有 -p 80:3000。
照著操作可以跑起來,但為什麼網址不用加 :3000?EC2 明明有公網 IP,為什麼還要設定網路?
這些問題接下來分幾篇慢慢拆,今天先從 IP 開始認識ㄅ!
IP(網際網路通訊協定)是一種通訊協定或規則集,用於路由和定址資料封包,以便它們可以透過網路傳輸並到達正確的目的地。
這裡的「封包」,可以先想成網路傳輸時裝著資料的小包裹。
在網路世界,通訊協定就是裝置之間共同遵守的溝通規則,包含資料要用什麼格式、各個欄位代表什麼意思。
就像你寄一封信,要寫郵遞區號、地址、收件人、寄件人等並且撰寫時都有一定的格式或是規定的信封來方便郵差作業。
IP 封包也是一樣:它的標頭就像信封,依規定格式放入來源與目的 IP 位址等資訊,讓網路設備知道這包資料從哪裡來、要往哪裡送。
平常說「把 IP 貼到瀏覽器」,其實指的是 IP 位址(IP address)。
接著用寄信來比喻:

前幾天在 EC2 看到的 IPv4 位址,就是由四組數字、以句點隔開的寫法,例如 10.0.1.10。這裡只是示意,實際位址要看自己的 EC2。
回到 EC2 的詳細資訊,這次的機器會看到兩個欄位:
| 欄位 | 用途 |
|---|---|
| 公有 IPv4 位址(Public IPv4 address) | 提供透過網際網路與 EC2 通訊時使用的對外位址 |
| 私有 IPv4 位址(Private IPv4 address) | 供內部網路通訊,例如同一個 VPC 裡的 EC2 彼此連線 |
昨天我們從自己的電腦開啟網站,網址使用的是 EC2 的公網 IP。私有 IP 則不能直接從網際網路連入,所以在目前的連線方式下,把網址換成 EC2 的私有 IP,就不會看到頁面了。
不過,有公網 IP,不代表網站就一定連得上。就像知道地址,還要有路能到、門也要允許進入;我們前面設定的網路與 Security Group,就是這些條件的一部分。細節留到後面再拆開看。
今天先分清楚「IP 是規則、IP 位址是地址」,以及這台 EC2 的公網與私有 IP 各自用在哪裡。
下一篇再接著看:找到 EC2 之後,80 和 3000 這兩個 port 又在負責什麼?