aws vpc subnet 小常識

aws vpc subnet 小常識

AWS VPC with subnet

在 AWS 的服務中,可以透過 AWS Virtual Private Cloud

來把部署的運算資源做有效的管控以及隔離

AWS subnet

每當開啟一個 VPC 時,預設會開啟一個網路區段的空間來配置資源

舉例來說: 一般會是 10.0.0.0/16 代表有 16bit 被 lock 只剩 16bit 可分配

而 VPC 內會在把該網路區段隔離成多個更小的子網段稱為 subnet

舉例來說: 以下圖來說,切隔成 10.0.1.0/24 與 10.0.2.0/24 兩個子網段

image

且在假設都在相同網段且相同 Available Zone 的子網段彼此可以相通

而其中兩個子網段的連通性會根據其設定 route table 來做路由處理

比如說 路徑是在 10.0.1.x 的 target 會被導向 local

而 public subnet 因為有設定連接到 Internet Gateway

所以 route table 可以解析外部的 request 所以跟外部做互通

一般會把 Subnet 有沒有連接到 Internet Gateway 與否分成兩種 Subnet

Public Subnet

一般會放置需要接收外部 request 的服務的比如 front-end web server 或是 api server

Private Subnet

一般會放置不需要對外的服務,比如內部 cronjob 或是 ETL 等等內部服務

甚至是 DB service 通常也會配置 private subnet 並且限定特殊 Security Group 存取

一般的 High Availability 配置

為了避免因為單一 Available Zone 出事導致服務無法運行

通常會把一個服務配置到兩個不同 Available Zone 的地方

image

以上圖來說 AZ1, AZ2, AZ3 只要還有兩個 AZ 有正常 服務就可以正常運行

IP 小知識

當 subnet 為 10.0.1.0/24 時,代表有 24bit 被 lock 只剩下 (32-24) = 8 bit 可以使用

所以代表有 2^8 = 256 個 ip 可以用

然而以下有幾個特殊的 IP是無法使用的

10.0.1.0 ---> NETWORK ADDRESS 用來界定 subnet 10.0.1.1 ---> AWS ROUTING 10.0.1.2 ---> AWS DNS 10.0.1.3 ---> AWS FUTURE 10.0.1.255 ---> BROADCAST

所以實際上能使用的只有 256 - 5 = 251 個 ip