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 兩個子網段

且在假設都在相同網段且相同 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 的地方

以上圖來說 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






