在AWS 中,虛擬私有雲(VPC) 可讓您在雲端設定私有網絡,您可以在其中啟動AWS 資源,例如EC2 執行個體、資料庫等。兩層架構是雲端應用程式最常用的設定之一,它明確區分了面向公眾的元件和私有元件。在此架構中通常有兩個主要層:公有層和私有層。
在本文,我們將探討VPC 的兩層架構、它的元件、如何配置它們以及一個用例,以幫助您了解如何在AWS 上部署和瀏覽它。
什麼是兩層架構?
兩層架構是一種設計,其中:
- 第一層(公共層)包含需要從網際網路存取的元件,例如Web 伺服器。
- 第二層(私有層)包含與直接網際網路存取隔離的元件,例如資料庫伺服器。
兩層架構的組件
讓我們來看看AWS 上雙層架構VPC 設定的基本元件:
1.公共子網
公有子網路是VPC 的一部分,直接連接到網際網路。這些子網路中的資源(如Web 伺服器或負載平衡器)可以與網際網路通訊。
2.私有子網路
私有子網路與網際網路隔離。出於安全原因,這些子網路中的資源(如資料庫伺服器或內部服務)無法直接存取網際網路。
3.公有層的EC2 實例
這些EC2 執行個體通常是託管您的應用程式的Web 伺服器。它們位於公共子網中,可透過彈性IP 或負載平衡器從網際網路存取。
4.資料庫執行個體(私有層)
資料庫(例如Amazon RDS 或帶有資料庫的EC2)位於私有子網路中,以確保它不會直接暴露在互聯網上。只有公共子網路中的EC2 實例才能與其通訊。
5.NAT閘道
NAT閘道允許私有子網路中的EC2 執行個體存取網際網路以執行軟體更新或API 呼叫等任務,而不會將它們暴露給傳入的網路流量。
6.主路由表
VPC 的主路由表定義了網路的預設路由,引導VPC 內的流量以及到網際網路的流量(透過網際網路閘道)。
7.公有子網路的路由表
公共子網路的路由表會將發送到網際網路的流量路由到網際網路閘關。
8.網際網路閘關
網際網路閘道將您的VPC 連接到互聯網,允許公共子網路中的資源與外界通信。
9. VPC 端點
VPC端點允許您將VPC 私下連接到S3 或DynamoDB 等AWS 服務,而無需透過網路路由流量。
用例:設定一個簡單的Web 應用程式
讓我們逐步了解在AWS 上使用雙層架構設定簡單Web 應用程式的導航步驟。在此範例中,我們將為Web 應用程式使用EC2 執行個體(在公用子網路中),為資料庫使用RDS 執行個體(在私人子網路中)。
步驟1:建立VPC
- 導覽至AWS 控制台中的VPC 儀表板。
- 從主AWS 控制台前往VPC部分。
- 點選創建VPC並指定CIDR 區塊(例如
10.0.0.0/16
)。
- 為公有層和私有層建立子網路。
- 公共子網:建立一個具有CIDR 區塊的子網,就像
10.0.0.0/24
在您的VPC 中一樣。 - 私有子網路:建立另一個具有CIDR 區塊的子網,類似於
10.0.1.0/24
私有層。
- 公共子網:建立一個具有CIDR 區塊的子網,就像
步驟2:設定路由表
- 主路由表:
- AWS 會自動為您的VPC 建立主路由表。您可以使用它來進行子網路之間的路由。
- 公共子網路的路由表:
- 為公有子網路建立新的路由表並將其與公有子網路關聯。
- 新增至Internet 網關的路由。
- 私有子網路的路由表:
- 為私有子網路建立新的路由表。
- 加一條到NAT 閘道的路由,這將允許來自私有資源的出站互聯網流量。
步驟3:設定EC2 實例(公共層)
- 在公用子網路中啟動EC2 執行個體:
- 前往AWS 控制台中的EC2 。
- 在公有子網路中啟動具有公有IP 的EC2 執行個體。您可以使用基本Web 伺服器AMI,例如Amazon Linux 或Ubuntu。
- 確保實例位於公共子網中,並附加允許HTTP/HTTPS 流量(連接埠80 和443)的安全群組。
- 安裝並設定Web伺服器:
- 一旦EC2 實例運行,就透過SSH 進入實例並設定您的Web 伺服器(例如Apache 或Nginx)。
步驟4:設定RDS 資料庫(私有層)
- 建立RDS 實例:
- 前往AWS 控制台中的RDS 。
- 啟動一個新的資料庫實例,選擇一個資料庫引擎(例如,MySQL,PostgreSQL)並將其配置為在私有子網路中運行。
- 確保公共可訪問性設定為否,以防止直接存取互聯網。
- 將EC2 執行個體連接到RDS 資料庫:
- 設定您的Web 伺服器以使用RDS 實例的內部DNS 名稱或私有IP 位址連線到RDS 實例。
步驟5:設定NAT 網關
- 在公用子網路中建立NAT 閘道:
- 進入VPC並選擇NAT 閘道。
- 在公用子網路中建立新的NAT 閘道並將其與彈性IP 關聯。
- 更新私有子網路的路由表:
- 在私有子網路的路由表中,確保發送至網際網路的流量會路由到NAT 閘道。
步驟6:連接網際網路網關
- 建立並連接網際網路閘道:
- 轉到VPC,然後轉到Internet 網關。
- 建立一個新的Internet 網關並將其附加到您的VPC。
步驟7:測試您的架構
- 測試對Web 伺服器的存取:
- 開啟Web 瀏覽器並存取EC2 實例的公共IP。您應該會看到Web 應用程式正在運行。
- 測試資料庫存取:
- 確保公有子網路中的EC2 執行個體可以與私有子網路中的RDS 執行個體通訊。
概括
在AWS 上的這種兩層VPC 架構中,公有子網路託管暴露在網際網路上的EC2 實例,而私有子網路託管不直接暴露的資料庫(RDS)。 NAT 閘道確保私有資源可以存取網際網路以取得更新和服務,而網際網路閘道使面向大眾的資源能夠與世界通訊。
此架構為雲端應用程式提供安全性、可擴充性和高可用性。它非常適合需要分離Web 層和資料庫層,同時確保敏感資料和內部服務不受外部存取的用例。