Amazon Virtual Private Cloud (VPC)
需求說明
根據先前所介紹的傳統應用程式架構,我們分析了它應該如何對應到實際的 AWS 資源上, AWS 架構管理人員可以根據上述的 AWS 資源,透過 AMI 來配置設定權限給規劃人員,接着我們介紹要如何設定它的網絡配置,如圖一所假設,我們将 Web 伺服器分布在公有子網 1 與公有子網 2 ,散布在兩個子網的目的是為了容錯,避免單點失敗,正常來說這兩個子網最好是散布在不同的實體區域,使用不同的電力系統、網絡系統,這樣如果其中一個區域發生停電或是火災等意外災難,還可以保障系統可以正常運作;因為應用程式伺服器與資料庫不需要對外曝露,是以直接放在私有子網 1 與私有子網 2 中。
圖 1 、傳統應用程式網絡配置
要在雲端完成這樣的網絡配置,需要使用的AWS服務就是Amazon VPC,它允許使用者配置 AWS 帳戶使用的虛拟網絡,很多 AWS 資源,例如 Amazon EC2、RDS、ECS 都會在 Amazon VPC 中啟動或存取(如圖 2 ),允許完全控制網絡配置,其中包括:
- Internet Protocol (IP) 位址範圍
- 子網建立
- 路由表建立
- 網絡網關
- 安全設定
圖 2 、VPC 内所包含的 AWS 資源
在介紹 VPC 功能之前,先說明幾個重要觀念:區域 (Regions) 與可用區 (Availability Zones) ,誠如前文提到,為了容錯、增加可用性,我們必須考慮将資料中心 (data centers) 建立在不同的實體地區,是以 AWS 将它的資料中心建在是全球各個重要城市裡,這稱之為區域 (Regions) ,接着在這個區域成立數個可用區 (Availability Zones) ,以 AWS 的規範,一個區域至少需要兩個以上的可用區,詳細的分布可以參考 AWS 官網-全球基礎設施,目前共有 24 個地區, 77 個可用區。
Amazon VPC 功能
Amazon VPC 的功能與限制如下,此外提醒一下, AWS 的資源都會有預設的限制,比方說我的 Amazon VPC 預設限額是23個,我最多隻能創立 23 個,如果要更多也不是不可以,提出申請即可,這些限制可以在自己的服務限額 (Service Quotas Console)中檢視。
- 每個 Amazon VPC 都位于一個區域内,每個區域可以有多個 Amazon VPC。
- 每個賬戶允許建立多個 Amazon VPC (注意限額)。
- 每個 Amazon VPC 跨越多個可用區,每個可用區可以有多個 Amazon VPC。
- 每個 Amazon VPC 都必須通過選擇一個無類别域間路由 (CIDR) 塊 (如 10.0.0.0/16) 來指定 IPv4 位址範圍。
- 建立 Amazon VPC 後無法更改其位址範圍。
- 位址範圍最大為 /16(65536 個可用位址),最小為 /28(16 個可用位址)。
接下來我們來找論一下 Amazon VPC 包含了那些元件:
- 子網:可以啟動 AWS 服務的 Amazon VPC IP 位址範圍分段。
- 一個區域内的子網不能跨區域。
- 一個子網相當于一個可用區。
- 隻能分類為公有、私有或 VPN。
- 預設 Amazon VPC 在地區内的每個可用區中都包含一個公有子網,網絡屏蔽為 /20。
- 路由表:用于控制流出子網的流量。
- 安全組 (Security Group) :有狀态的虛拟防火牆。
- 網絡通路控制清單 (ACL):控制對子網的通路;且無狀态。
- Internet 網關 (IGW):允許從 Amazon VPC 通路 Internet。
- 彈性 IP (Elastic IP) 位址:靜态公有 IP 位址,可以從池中提取以供臨時使用。
- 彈性網絡接口 (ENI):虛拟網絡接口。
- 終端節點 (end point) :到另一個 AWS 服務的直接連接配接。
- 對等連接配接:允許兩個 Amazon VPC 進行通信。
- NAT執行個體 (NAT Instance) 和 NAT 網關 (NAT Gateway) :在私有子網内接受、轉換和轉發流量。