在AWS上設置三層架構
今天,我將演示如何使用虛擬私人雲(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
。
創建完成後,我將把它連接到我的victorleungtwdemo
VPC。
現在,讓我們看看路由表。創建VPC時,系統會自動生成一個默認路由表。我創建的所有子網默認都會連接到這個表。
然後,我將創建一個名為pub-route
的新路由表,該表將管理數據路由到公共網絡。此外,我將將原始路由表重命名為priv-route
。對於數據庫子網,我將創建另一個名為nat-route
的路由表。
此時,我有三個路由表。每個表都有一個默認路由。
對於pub-route
表,我將向victorleungtw-igw
添加一個路由0.0.0.0/0
。這允許所有在關聯子網中的機器訪問公共互聯網。
接著,我將把我的公共子網,pub-subnet-1
和pub-subnet-2
,與pub-route
表關聯。
然後,我將添加nat-route
,並將其關聯到priv-subnet-1
和priv-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上設置三層架構的指南。如果你有任何問題,請隨時聯繫我.