博客 / 詳情

返回

打造企業級AWS基礎架構-架構的腳手架

作者 | MICHAŁ KAPICZYŃSKI
譯者 | IT外文選刊

微信原文

外文鏈接:
https://grapeup.com/blog/read...

硅谷電視系列節目中曾經對Cloud的解釋是,“this tiny little area which is becoming super important and in many ways is the future of computing”,中文意思是“這個小小的領域正在變得超級重要,在很多方面是計算的未來” 。這句話應該是準確的,只是現在的雲計算已經不渺小了,未來已經到來。所以,讓我們來深入瞭解雲計算的世界,學習如何利用AWS平台來構建高可用、安全、容錯的雲系統,學習它的關鍵組件是什麼以及如何在AWS上部署你的應用

這篇文章是整個系列中的第一篇,將帶領大家瞭解搭建企業級AWS基礎架構的過程。到本系列結束時,我們將搭建一個基礎架構,它由在兩個不同的可用性區的四個子網組成的VPC組成。裏面部署了一個客户端應用、後端服務器和數據庫。我們的架構將能夠提供現代雲系統所需的可擴展性和可用性。我們將解釋亞馬遜雲服務平台的基本概念和組件。在這篇文章中,我們將討論架構的腳手架,具體來説就是一個虛擬私有云(VPC)、子網、彈性IP地址、NAT網關和路由表。整個系列的文章包括:

第一篇
    - 架構的腳手架(VPC、子網、彈性IP、NAT)
第二篇

    - 應用程序部署和數據庫配置(EC2、AMI、Bastion主機、RDS)

第三篇
    - 擴展基礎架構(負載均衡、自動擴展)

雲計算

在過去幾年裏,IT產業經歷了一場重大變革,大多數全球企業從傳統的IT基礎設施轉向雲計算。這背後的主要原因是雲計算帶來的靈活性和可擴展性,雲計算是指通過互聯網(雲)提供計算服務,如服務器、存儲、數據庫、網絡、分析服務等。在這種模式下,企業只需要為實際使用的雲資源付費,不需要管理其背後的物理基礎設施。市場上有許多雲服務提供商,主要有亞馬遜雲服務(AWS)、微軟Azure和谷歌雲。本文將重點介紹AWS上的服務,但請記住,這裏介紹的大多數概念在其他平台上都有對應的概念。

基礎架構概述

讓我們從整個系列中將要構建的內容開始。我們的目標是創建一個真實的、企業級的AWS基礎架構,它將能夠承載一個由React.js Web應用程序、Java Spring Boot服務器和關係型數據庫組成的用户管理系統。

圖1

架構如圖1所示。它包括一個VPC,有四個子網(2個公共子網和2個私有子網),分佈在兩個不同的可用性區。在公共子網中託管了一個客户端應用程序、一個NAT網關和一個Bastion主機(後面會有更多介紹),而我們的私有子網包含後端服務器和數據庫實例。基礎架構還包括互聯網網關,以實現從我們的VPC和負載均衡器訪問互聯網。將後端服務器和數據庫放在私有子網中的原因是為了保護這些實例不會直接暴露在互聯網上,因為它們可能包含敏感數據。而且它們將只擁有私有IP地址,並且位於NAT網關和麪向公共的彈性負載均衡器後面。目前的基礎架構通過將實例部署在兩個不同的可用性區,並使用Auto Scaling組,提供系統的自動擴展和健康管理,從而提供了高水平的可擴展性和可用性。

圖2展示了我們將在AWS上託管的用户管理系統的界面。

圖2

這個應用可以在GitHub上找到:

客户端

https://github.com/mkapiczy/r...

服務端

https://github.com/mkapiczy/u...

在這一篇,我們將重點介紹基礎架構的腳手架,即分配彈性IP地址、設置VPC、創建子網、配置NAT網關和路由表

AWS免費套餐説明

AWS為新用户提供了12個月的免費套餐,讓客户可以在指定限制內免費使用其服務。這些限制包括每月750小時的t2.micro EC2實例、5GB的Amazon S3存儲、每月750小時的Amazon RDS等。在AWS管理控制枱中,亞馬遜通常會提示哪些資源屬於免費套餐,在整個本系列中,我們將使用這些免費的服務。如果你想確保自己不會超過免費套餐的限制,記得每當你在AWS上完成工作時,就停止你的EC2和RDS實例。你還可以設置一個計費提醒,如果超過了指定的限制,就會通知你。

AWS概念

1. VPC

我們進入AWS基礎架構的廣闊世界的第一步是瞭解亞馬遜虛擬私有云(VPC)。VPC 允許開發人員創建一個虛擬網絡,他們可以在其中啓動資源,並使其與其他 VPC 和外部世界進行邏輯隔離。VPC中,您的資源擁有私有IP地址,它們可以相互通信。你可以控制對VPC內所有這些資源的訪問權限,並根據你的喜好來路由傳出流量

圖3

對VPC的訪問是通過使用幾個關鍵功能來配置的:

安全組:它們基本上像迷你防火牆一樣工作,定義了允許傳入和傳出的IP地址和端口。它們可以在實例級別設置,在許多實例之間共享,並提供了允許從其他安全組而不是IP訪問的可能性。

路由表:路由表負責決定來自子網或網關的網絡流量應該被引導到哪裏。有一個與VPC關聯的主路由表,您可以為您的子網和網關定義自定義路由表。

網絡訪問控制列表(網絡ACL):它作為一個用於入站和出站流量的IP過濾表,可以作為安全組之上的附加安全層。網絡ACL的作用類似於安全組,但不是在實例層應用規則,而是將其應用到整個VPC或子網。

2. 子網

實例不能直接在VPC中啓動。它們需要運行在子網中。子網是一個額外的隔離區域,它有自己的CIDR塊、路由表和網絡訪問控制列表。子網允許你在同一個VPC中有不同的行為。例如,你可以創建一個可以訪問互聯網和被互聯網訪問的公共子網和一個不能通過互聯網訪問的私有子網,私有子網必須通過NAT(網絡地址轉換)網關才能訪問外部世界。

圖4

3. NAT(網絡地址轉換)  網關

NAT 網關用於使位於私有子網中的實例能夠連接到互聯網或其他 AWS 服務,同時仍然防止從互聯網直接連接到這些實例。例如,當您需要在私有子網中運行的 EC2 實例上安裝或升級軟件或操作系統時,NAT 可能很有用。AWS提供了一個NAT網關管理服務,只需要很少的管理工作量。我們在設置基礎架構的時候會使用它。

4. 彈性IP

AWS提供了一個彈性IP地址的概念,用於方便動態雲計算的管理。彈性IP地址是一個公共的、靜態的IP地址,它與你的AWS賬户相關聯,可以輕鬆分配到你的EC2實例中的一個實例。其背後的想法是,該地址並不與您的實例緊密關聯,相反,該地址的彈性特性允許在系統出現任何故障的情況下,迅速將該地址重新映射到您賬户中的另一個健康實例。

5. AWS區域

AWS 區域是指 AWS 設有數據中心的地理區域。區域被劃分為可用性區(AZ),這些區域是獨立的數據中心,相互之間的位置相對較近。可用性區用於提供冗餘和數據複製。為您的基礎設施選擇 AWS 區域時,應考慮以下因素。

就近:出於延遲或監管原因,您通常希望您的應用部署在靠近您的運營區域的地方。

成本:不同的區域有不同的定價。

功能選擇:並非所有地區的服務都是可用的,這對於新推出的功能來説尤其如此。

可用區:所有地區至少有2個AZ,但有些地區有更多。根據您的需求,這可能是一個關鍵因素。

練習

AWS區域

首先,讓我們開始選擇要操作的AWS區域。在 AWS 管理控制枱的右上角,你可以選擇一個區域。在這一點上,你選擇哪個區域其實並不重要。但是,需要注意的是,您將始終只查看在當前選擇的區域中啓動的資源。

彈性IP

下一步就是分配一個彈性IP地址。為此,進入AWS管理控制枱,找到VPC服務。在左側菜單欄的虛擬私有云選項下,應該可以看到彈性IP服務。在那裏,你可以分配一個由你自己擁有的新地址,也可以從AWS的可用地址池中分配。

圖5

配置可用性區A

接下來,我們來創建我們的VPC和子網。現在,我們將只設置可用性區A,在創建VPC之後,我們將在高可用性上下功夫。所以再次進入VPC服務,點擊啓動VPC嚮導按鈕。在接下來的頁面上,您可以選擇您希望 AWS為您設置的 VPC 配置類型。為了儘可能的匹配我們的目標架構,我們將選擇VPC與公共子網和私有子網的VPC。

圖6

在下一個頁面中,您可以設置VPC的配置細節,如

- 名稱。

- CIDR區塊:

- 子網的詳細信息。

- 名稱:

- IP地址範圍----VPC CIDR範圍的一個子集。

- 可用區。

如架構圖(圖1)所示,我們需要在2個不同的可用性區(Availability Zone)中設置4個子網。因此,讓我們把VPC的CIDR設置為10.0.0.0.0.0/22,子網如下:

-公共子網-a: 10.0.0.0.0.0/24 (A區)

-私有子網-a: 10.0.1.0/24 (A區)

-公共子網-b: 10.0.2.0.0/24 (B區)

-私有子網-b: 10.0.3.0/24 (B區)

設置好一切,如圖7所示。這裏需要注意的重要的點是選擇公共子網和私有子網的可用性區域(Availability Zone)相同,而且AWS會自動為我們設置一個NAT網關,我們只需要指定之前分配的彈性IP地址即可。現在,點擊 "創建VPC "按鈕,AWS就會對你的VPC進行配置。

圖7

NAT網關

創建VPC結束後,進入到NAT網關部分,應該可以看到AWS為你創建的網關。為了讓它更有辨識度,讓我們把它的名稱標籤設置為nat-a。


圖8

路由表

AWS還為您的 VPC 配置了路由表。接下來是路由表部分,您應該有兩個與您的VPC關聯的路由表。其中一個是你的VPC的主路由表,第二個是目前與你的公共子網-a關聯的路由表。我們修改一下這個設置。

首先,選擇主路由表,進入路由選項,點擊編輯路由。目前有兩個條目。第一個是指任何引用本地VPC CIDR的IP地址都應該在本地解析,我們不用修改它。第二個是指向NAT網關的,我們要修改它來配置我們VPC的Internet網關,以便讓出站流量到達外部網絡世界。

圖9

接下來是子網關聯選項,將主路由表與公共子網-a關聯。你也可以將其名稱標籤編輯為main-rt。然後,選擇與VPC關聯的第二個路由表,編輯它的路由,將每一個出網請求都路由到nat-a網關,如圖10所示。將此路由表與私有子網-a關聯,並將其名稱標籤設置為private-a-rt。

圖10

配置可用性區B

為了提供高可用性,我們需要在第二個可用性區也設置好一切。第一步是創建子網。再次轉到AWS管理控制枱中的VPC服務,在左側菜單欄中找到子網部分。現在,單擊 "創建子網 "按鈕並配置一切,如圖11和12所示。

公共子網-b

圖11

私有子網-b

圖12

NAT網關

對於可用性區B,我們需要手動創建NAT網關。為此,在 VPC 控制面板左側菜單欄中找到 NAT 網關部分,點擊創建 NAT 網關。選擇公共子網-b,分配彈性IP,並添加NAT-b為名稱標籤。

路由表

最後一步是配置可用性區B中的子網的路由表。我們的公共子網-b要和公共子網-a有相同的路由規則,所以讓我們為公共子網-b的main-rt表添加一個新的關聯。然後,點擊創建路由表按鈕,命名為private-b-rt,選擇我們的VPC並點擊創建。接下來,選擇新創建的表,進入路由選項,通過類似於private-a-rt表的方式編輯路由,但不是將每一個外部請求引導到nat-a網關,而是將其引導到nat-b(圖13)。

圖13

最後,你應該有三個路由表與你的VPC關聯,如圖14所示。

圖14

總結

就這樣,我們的VPC的腳手架已經準備好了。圖15所示的圖是剛剛創建的整個基礎架構。現在,它已經準備好了,可以創建所需的EC2實例、Bastion主機、配置RDS數據庫和部署我們的應用程序了,這將在本系列的下一篇中介紹

圖15

參考

https://azure.microsoft.com/e...
https://aws.amazon.com/what-i...
https://docs.aws.amazon.com/A...
https://docs.aws.amazon.com/v...
https://docs.aws.amazon.com/v...
https://docs.aws.amazon.com/v...
https://medium.com/@datapath_...
https://cloudacademy.com/blog...
https://aws.amazon.com/blogs/...
https://aws.amazon.com/quicks...
https://aws.amazon.com/blogs/...
http://thebluenode.com/exposi...
https://app.pluralsight.com/l...
https://app.pluralsight.com/l...
https://app.pluralsight.com/l...
https://datanextsolutions.com...
https://docs.aws.amazon.com/v...

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.