今天,我將演示如何使用虛擬私人雲(VPC)服務在亞馬遜網路服務(AWS)上設置三層架構。以下是說明設置的架構圖,主要分為三層。

第一層是演示層,用戶可以通過網關直接訪問公共子網。第二層是邏輯層,主要處理商業邏輯。此層位於私人子網中,以限制訪問並坐落於負載平衡器後面。負載平衡器能夠靈活且水平擴展以處理不同時間的變化的流量需求。第三層是數據層,其中包含一個位於私人子網的MySQL數據庫。只允許通過第二層訪問。為了提高可用性,我在兩個可用性區域中部署了架構,並將數據庫備份到另一個區域。這確保了如果一個可用性區域失敗,應用服務將保持運行。

首先,我將創建一個名為victorleungtwdemo的VPC網絡。按照架構圖,我將選擇172.17.0.0/16的CIDR區塊。此/16子網將給我提供65,535個IP地址,為未來的擴展提供了空間。

接著,我將創建六個子網。第一個子網命名為pub-subnet-1。我將它與我剛剛創建的VPC關聯,並選擇適當的可用區域(Zone A)。我也將指定這個子網的IP地址範圍。為了確保可擴展性,我將將其設置為/24子網。

繼續此過程,我將創建其餘的五個子網。如下圖所示,我現在在不同的可用區域有六個子網。

接著,我將創建一個新的網路閘道,命名為victorleungtw-igw

創建完成後,我將把它連接到我的victorleungtwdemoVPC。

現在,讓我們看看路由表。創建VPC時,系統會自動生成一個默認路由表。我創建的所有子網默認都會連接到這個表。

然後,我將創建一個名為pub-route的新路由表,該表將管理數據路由到公共網絡。此外,我將將原始路由表重命名為priv-route。對於數據庫子網,我將創建另一個名為nat-route的路由表。

此時,我有三個路由表。每個表都有一個默認路由。

對於pub-route表,我將向victorleungtw-igw添加一個路由0.0.0.0/0。這允許所有在關聯子網中的機器訪問公共互聯網。

接著,我將把我的公共子網,pub-subnet-1pub-subnet-2,與pub-route表關聯。

然後,我將添加nat-route,並將其關聯到priv-subnet-1priv-subnet-2

最後,不需要擔心剩下的私有路由表;所有子網默認都會連接到priv-route

現在,讓我們繼續創建一個網路地址轉換(NAT)閘道。我將選擇priv-subnet-2作為其子網並為其創建一個彈性IP(EIP)。

我將NAT閘道加入NAT路由表並設置路由為0.0.0.0/0

至此,我已經完成了約70%的網絡架構。接下來,我將配置所有相關的安全組設置。

為了安全起見,我將為我的堡壘主機、負載平衡器、Web服務器和數據庫創建單獨的安全組。

現在,該啟動相關的EC2實例了。

在創建RDS服務器之前,我也將創建一個RDS子網組。

設置好RDS服務器後,帶有適當的VPC和安全組,我們可以返回到我們的EC2實例。

接著,我將為Web服務器設置一個目標組並將它們添加到其中。

最後,我將創建一個應用負載平衡器。

設置好一切以後,我們現在可以測試系統。從堡壘主機,我可以SSH到兩台Web伺服器,啟動一個Nginx服務器,並驗證從應用層訪問數據庫的訪問。

這就結束了在AWS上設置三層架構的指南。如果你有任何問題,請隨時聯繫我.