溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的

發(fā)布時間:2021-12-02 11:17:33 來源:億速云 閱讀:251 作者:柒染 欄目:數(shù)據(jù)庫

這篇文章給大家介紹現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

當(dāng)今云計(jì)算技術(shù)成了主流的架構(gòu)和互聯(lián)網(wǎng)基礎(chǔ)服務(wù)架構(gòu)之一。越來越多的企業(yè)、組織和人使用云服務(wù)來實(shí)現(xiàn)自己的服務(wù)架構(gòu)。云計(jì)算技術(shù)也是每一個IT人士需要掌握的基礎(chǔ)技能。在云平臺市場,亞馬遜的AWS一枝獨(dú)秀,不光發(fā)展早,技術(shù)先進(jìn),而且市場占有率也大。我們以AWS的云架構(gòu)體系為例子說明現(xiàn)代云架構(gòu)。

AWS服務(wù)器:EC2及其實(shí)例

應(yīng)用程序的運(yùn)行主要依賴兩類:服務(wù)器和數(shù)據(jù)庫。服務(wù)器,用來承載應(yīng)用程序,服務(wù)器允許用戶連接到該服務(wù)器并運(yùn)行應(yīng)用,而數(shù)據(jù)庫用來保存數(shù)據(jù)。

在AWS體系中,服務(wù)器的的組織形式是通過Elastic Cloud  Compute服務(wù)(簡稱為EC2)。通過該服務(wù),我們可以選擇服務(wù)器的設(shè)置,例如操作系統(tǒng),CPU大小,內(nèi)大小等。選擇好所有設(shè)置后,啟動服務(wù)器只需要點(diǎn)擊按鈕就可以。通過EC2創(chuàng)建的服務(wù)器稱為  EC2實(shí)例。一旦該服務(wù)器啟動,就可以將應(yīng)用程序放置在該服務(wù)器上。

現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的

但是實(shí)際上,EC2實(shí)例不是一臺真正的機(jī)器。它只是一個虛擬機(jī)。因此,我們創(chuàng)建的任何服務(wù)器實(shí)際上都是隔離的虛擬機(jī),它們在AWS的宿主機(jī)硬件上共享空間。簡而言之,虛擬機(jī)(即VM)就像是真實(shí)計(jì)算機(jī)中的模擬計(jì)算機(jī)。它們可以具有自己的操作系統(tǒng),依賴項(xiàng)等,但是它們使用并共享真實(shí)計(jì)算機(jī)的資源。

考慮EC2實(shí)例或任何基于云的服務(wù)器的比較簡單方法是:

它仍然只是一臺計(jì)算機(jī)。只是別人的。(在這種情況下,是AWS的。)

我們可以登錄到它,進(jìn)行設(shè)置,并像在其他任何計(jì)算機(jī)上一樣進(jìn)行所需的操作。您創(chuàng)建了一個EC2實(shí)例(又名服務(wù)器)并在其上設(shè)置應(yīng)用程序,就像在自己的計(jì)算機(jī)上一樣。

最后,這是在配置服務(wù)器并將代碼放置在服務(wù)器上時要做的所有事情。所有工具和自動化腳本都刪除了手動過程。但是,如果將其視為"僅是另一臺計(jì)算機(jī)",那么將精力集中在如何使用它上就容易得多。

一臺服務(wù)器會有限制。即使一臺服務(wù)器(EC2實(shí)例)使用很強(qiáng)大的配置,數(shù)據(jù)庫還是非常重要的。一般來說數(shù)據(jù)庫會占用大量計(jì)算量,大量存儲空間和大量網(wǎng)絡(luò)吞吐量。如果服務(wù)器是一棟房子,而應(yīng)用程序和數(shù)據(jù)庫是居民,則該數(shù)據(jù)庫將累積所有空間并產(chǎn)生大量噪音。當(dāng)然,這對于本地開發(fā)而言效果很好。但是,當(dāng)成千上萬的用戶(或更多)開始使用該應(yīng)用程序時,如果該服務(wù)器必須同時處理數(shù)據(jù)庫和應(yīng)用程序,則它將很快耗盡其資源。

分離數(shù)據(jù)庫:RDS和Aurora

為了應(yīng)對單一服務(wù)器不可避免的硬件和網(wǎng)絡(luò)流量瓶頸,我們希望將數(shù)據(jù)庫與應(yīng)用程序服務(wù)器分離。這樣做是為了允許我們的應(yīng)用程序和數(shù)據(jù)庫分別擴(kuò)展。在AWS上,有兩種方法可以做到這一點(diǎn)。

第一種方法是完全手動的:創(chuàng)建另一個EC2實(shí)例(即另一個服務(wù)器)并將在該實(shí)例上安裝數(shù)據(jù)庫。

現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的

同樣,如果將EC2實(shí)例視為"僅另一臺計(jì)算機(jī)",則其操作方式與在自己的計(jì)算機(jī)上類似。例如,下載MySQL,進(jìn)行設(shè)置,啟動數(shù)據(jù)庫并允許來自應(yīng)用程序的流量。但總的來說確實(shí)如此簡單。

完成此操作后,就可以把應(yīng)用程序服務(wù)器指向數(shù)據(jù)庫服務(wù)器即可。數(shù)據(jù)庫管理是其自己的領(lǐng)域,這是有原因的。有很多修補(bǔ),更新和維護(hù)數(shù)據(jù)庫是一項(xiàng)艱巨的任務(wù)。因此,除非有內(nèi)部專家或團(tuán)隊(duì)專門致力于此,否則真的想在進(jìn)行自我管理還是有一定的難度。

另一中方法就是,使用AWS提供了的關(guān)系數(shù)據(jù)庫服務(wù),也稱為RDS。

具體來說,AWS有一個非常強(qiáng)大的數(shù)據(jù)庫,稱為Aurora。它可以處理所有擴(kuò)展,管理和修補(bǔ)。它還直接兼容MySQL和PostgreSQL。因此,即使使用這兩種方法之一進(jìn)行本地開發(fā),在部署應(yīng)用程序時仍可以直接使用Aurora。而且,正如RDS營銷團(tuán)隊(duì)喜歡指出的那樣,它的速度是MySQL的五倍,成本的十分之一。

這樣用戶可以訪問您的服務(wù)器以使用該應(yīng)用程序,并且該應(yīng)用程序?qū)⑴cRDS Aurora數(shù)據(jù)庫進(jìn)行交互。

但是,如果出現(xiàn)流量高峰會怎樣?如果企業(yè)的服務(wù)/公司快速發(fā)展了會怎么樣?如果是自建EC2實(shí)例維護(hù)數(shù)據(jù)庫這將是個問題。如果選擇的是RDS  Aurora,就可以無需考慮對數(shù)據(jù)庫擴(kuò)容的問題了。但是還會面臨另一個問題,應(yīng)用程序服務(wù)器將的擴(kuò)容問題。

服務(wù)器集群:EC2 Auto Scaling組

為了解決擴(kuò)展問題。假設(shè)該應(yīng)用程序已經(jīng)在線使用,并受到大量流量的沖擊。如果是這樣的話,耽擱小服務(wù)器將不能扛太久的時間。

那么我們有什么選擇呢?好吧,我們選擇更強(qiáng)大、配置更高的實(shí)例,單這也是一個短期解決方案。這方法叫豎直擴(kuò)展。盡管這可以在開始階段提供幫助,但要意識到服務(wù)器只能變得如此之大。此外,它只是一臺服務(wù)器,存在單點(diǎn)問題,如果它掛了,那么在它上面運(yùn)行的所有服務(wù)都不能使用。這沒有彈性,不是解決的好方法。

現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的

那正確的答案是什么?通過創(chuàng)建更多的實(shí)例來共同承載(負(fù)載均衡)服務(wù)。這種方法叫橫向擴(kuò)展。橫向擴(kuò)展它使我們的架構(gòu)不受限于個別EC2實(shí)例。

AWS也提供了EC2 Auto Scaling組來實(shí)現(xiàn)橫向擴(kuò)展和負(fù)載均衡。Auto Scaling組可有許多服務(wù)器構(gòu)成并對其進(jìn)行整體管理,通過使用Auto  Scaling組,創(chuàng)建和管理多個EC2實(shí)例幾乎與一臺實(shí)例同樣簡單。

那么 Auto Scaling Group會創(chuàng)建什么類型的服務(wù)器?在啟動Auto Scalin組之前,首先要創(chuàng)建所謂的啟動配置,然后創(chuàng)建一個Auto  Scaling組并為其指定啟動配置。然后它將從該模板創(chuàng)建實(shí)例并為我們管理它們。

可以將啟動配置視為EC2實(shí)例的藍(lán)圖。如果是這種情況,那么Auto Scaling組就像是使用該藍(lán)圖構(gòu)建和管理實(shí)例的領(lǐng)班。

注意:盡管它的名字Auto Scaling組,但實(shí)際上它并不會自動進(jìn)行擴(kuò)展。可以通過配置做到,后面將會介紹。

通過使用Auto Scaling組,我們將能夠創(chuàng)建可以供托管應(yīng)用程序的所有服務(wù)器。

負(fù)載均衡器:調(diào)度流量

通過RDS服務(wù),在數(shù)據(jù)持久性方面我們無需擔(dān)心。但是,可能有多個EC2實(shí)例托管我們的應(yīng)用程序,它們都指向同一個RDS  Aurora數(shù)據(jù)庫。加入我們有如三個EC2實(shí)例,一個用戶訪問了其中一臺并更改了名稱,這不會阻止他們在其他實(shí)例上的應(yīng)用程序。為什么?因?yàn)槲覀兯械膽?yīng)用程序都指向同一數(shù)據(jù)庫。因此,當(dāng)用戶訪問其中一個實(shí)例上的應(yīng)用程序時,它仍將從同一RDS  Aurora數(shù)據(jù)庫中獲取其數(shù)據(jù)。

現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的

現(xiàn)在可以將負(fù)載分散到3個不同的服務(wù)器上。但是,新問題是:

我們的用戶連接到哪里?如何保存會話?而且,我們?nèi)绾巫詣悠胶庳?fù)載?

如果我們有三個不同的實(shí)例,那么它們都將具有三個不同的IP地址。如果你的應(yīng)用程序使用會話數(shù)據(jù)來跟蹤用戶的操作,那么如果他們跳到另一個實(shí)例,那將會丟失。

這時候就需要引入負(fù)載均衡器了。他可以解決了剛才談到的所有問題,甚至更多。本質(zhì)上,它負(fù)責(zé)接受傳入的流量,然后將其分發(fā)到最適合處理它的服務(wù)器。這聽起來像是一項(xiàng)神奇的技術(shù)。但是就像我們可以在服務(wù)器上建立數(shù)據(jù)庫一樣,我們可以對負(fù)載均衡器執(zhí)行相同的操作。只需創(chuàng)建一個服務(wù)器,然后使用NGINX,HAProxy或Apache之類反向代理應(yīng)用即可。然后,將要選擇的那些工具告訴要負(fù)載均衡流量的服務(wù)器。

AWS架構(gòu)體系中也提供了自己的負(fù)載均衡器。在EC2中,有各種各樣的負(fù)載均衡器可以自動為我們完成所有這些工作,可以非常輕松地連接到EC2實(shí)例。它還為我們提供了許多選項(xiàng)和功能,如果我們想自己實(shí)現(xiàn)該功能,則將需要大量的工作。

由于它們與EC2實(shí)例無縫集成,因此我們無需擔(dān)心將新實(shí)例或要刪除的實(shí)例告知AWS負(fù)載均衡器。它還能跟蹤會話數(shù)據(jù),執(zhí)行運(yùn)行狀況檢查并返回指標(biāo)。各種各樣的事情。

設(shè)置了負(fù)載平衡器之后,無需將流量指向任何單個實(shí)例,而是將其指向負(fù)載平衡器本身。同樣,它只是另一臺服務(wù)器,因此,如果它的IP地址是13.14.15.16之類的東西,并且的負(fù)載平衡軟件正在監(jiān)聽端口3000,那么可以在這里進(jìn)行管理。顯然,希望利用DNS并為其提供一個友好的URL,但在此之后,它將可以平衡其背后的服務(wù)器之間的流量。

上面介紹了AWS云基礎(chǔ)架構(gòu)中的基礎(chǔ)服務(wù),包括EC3、 Auto Scaling組,RDS Aurora數(shù)據(jù)庫和負(fù)載均衡器(還有一個AWS  S3服務(wù)是云對象存儲,作為基礎(chǔ)存儲),這構(gòu)成了基礎(chǔ)的云服務(wù),使用他們就可以為了創(chuàng)建絕大多數(shù)基本的應(yīng)用架構(gòu)。

關(guān)于現(xiàn)代云架構(gòu)中的AWS服務(wù)器群和數(shù)據(jù)庫是怎么樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI