多層架構(gòu)
多層體系結(jié)構(gòu)也稱為 n 層體系結(jié)構(gòu)。在這樣的體系結(jié)構(gòu)中,應(yīng)用程序被開發(fā)和分布在多個層中。層數(shù)取決于業(yè)務(wù)需求,但三層體系結(jié)構(gòu)是首選,也是最常用的。
此三層體系結(jié)構(gòu)包括表示層、邏輯層和數(shù)據(jù)層。
用戶直接與表示層交互。邏輯層包含將用戶的操作轉(zhuǎn)換為應(yīng)用程序的行為的代碼。數(shù)據(jù)層由保存與應(yīng)用程序相關(guān)的數(shù)據(jù)的存儲組成。
可以在整體式架構(gòu)中使用數(shù)千臺服務(wù)器來提高應(yīng)用程序的性能。這種無服務(wù)器多層體系結(jié)構(gòu)模式消除了服務(wù)器管理。
以下是使用由 AWS 管理的無服務(wù)器服務(wù)的幾個好處:
無需選擇、修補或管理操作系統(tǒng)
無需監(jiān)控、橫向擴展或保護服務(wù)器
不會因過度配置而對基礎(chǔ)架構(gòu)成本造成風(fēng)險
不會因資源調(diào)配不足而對應(yīng)用程序性能造成風(fēng)險
無服務(wù)器服務(wù)
上述所有服務(wù)均可自動擴展,以支持應(yīng)用程序的確切需求。
無服務(wù)器架構(gòu)
表示層
在上述架構(gòu)中,靜態(tài)內(nèi)容托管在 Amazon S3 上,并由 Amazon 云Front 分發(fā)。在 Amazon S3 上托管靜態(tài)網(wǎng)站內(nèi)容是在基于服務(wù)器的基礎(chǔ)設(shè)施上托管內(nèi)容的經(jīng)濟型替代方法。此外,大量數(shù)據(jù)可以存儲在 Amazon S3 中。Amazon CloudFront 是一個內(nèi)容交付網(wǎng)絡(luò),用于緩存靜態(tài)內(nèi)容并提供動態(tài)和靜態(tài)內(nèi)容,從而縮短網(wǎng)頁加載時間并降低網(wǎng)絡(luò)帶寬成本。
AWS 認(rèn)知用戶池是一個用戶目錄,為應(yīng)用程序用戶提供注冊和登錄選項。它還可以控制誰可以訪問亞馬遜 API 網(wǎng)關(guān)中的 API。
邏輯層
對于動態(tài)內(nèi)容路由 53,通過 AWS WAF 將請求發(fā)送到 API 網(wǎng)關(guān),并從 API 網(wǎng)關(guān) Lambda 函數(shù)觸發(fā)數(shù)據(jù)并將其存儲在 Amazon S3 和 DynamoDB 或 AWS Aurora 中。
通過將亞馬遜的 API 網(wǎng)關(guān)與 AWS Lambda 集成,可以直接通過 HTTPS 請求觸發(fā)代碼函數(shù)。無論所需的請求量如何,API 網(wǎng)關(guān)和 Lambda 都會自動擴展。這兩項服務(wù)允許專注于對應(yīng)用程序重要的代碼,而不是專注于實現(xiàn)多層體系結(jié)構(gòu)的其他各個方面。
對于網(wǎng)絡(luò)隱私,AWS 能夠在亞馬遜 VPC 中創(chuàng)建 lambda 函數(shù)。
AWS WAF 是一種 Web 應(yīng)用程序防火墻,可以部署在云上,以保護應(yīng)用程序免受 DDoS 攻擊。WAF 通過定義安全規(guī)則來允許或阻止流量。亞馬遜 Route 53 可以通過 AWS WAF 將用戶的請求連接到云前分發(fā)。
AWS Glue 可以根據(jù)獲取新數(shù)據(jù)集等事件運行 ETL(提取、轉(zhuǎn)換和加載)作業(yè)。在上述架構(gòu)中,一旦新數(shù)據(jù)(日志)在 Amazon S3 中可用,Glue 就會運行 ETL 作業(yè),并且這些日志將被推送到 Amazon CloudWatch,并且可以通過 Amazon SNS 從 Amazon CloudWatch 發(fā)送通知。
數(shù)據(jù)層
根據(jù)應(yīng)用程序方案,AWS Lambda 會將數(shù)據(jù)存儲到亞馬遜動態(tài)數(shù)據(jù)庫或 AWS Aurora。
Amazon DynamoDB 能夠存儲無限可擴展的 NoSQL 數(shù)據(jù)庫,還提供預(yù)置和按需容量模式,以便可以通過指定每個工作負(fù)載的容量來優(yōu)化成本。
AWS Aurora 是一種與 MySQL 和 PostgreSQL 兼容的完全托管的關(guān)系數(shù)據(jù)庫服務(wù),專為傳統(tǒng)企業(yè)數(shù)據(jù)庫而構(gòu)建,傳統(tǒng)企業(yè)數(shù)據(jù)庫需要具有開源數(shù)據(jù)庫成本效益的性能和可用性。它能夠根據(jù)應(yīng)用程序的需求自動啟動、關(guān)閉和擴展容量。它是一種經(jīng)濟高效的解決方案,適用于不頻繁或不可預(yù)測的工作負(fù)載。
亞馬遜雅典娜/亞馬遜紅移頻譜使用 AWS Glue 作為存儲和檢索表元數(shù)據(jù)的中心位置。它具有分析非結(jié)構(gòu)化,半結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)存儲的能力。雅典娜還可以生成報告,亞馬遜快速查看可以與雅典娜集成,以便輕松實現(xiàn)數(shù)據(jù)可視化。
根據(jù)最佳實踐,所有服務(wù)都與 AWS IAM 角色連接。在許多情況下,可以利用此 AWS 托管服務(wù),而不是管理典型的基于服務(wù)器的基礎(chǔ)設(shè)施。在這種無服務(wù)器多層架構(gòu)的幫助下,可以輕松創(chuàng)建易于維護、分離、安全、擴展且高度可用的生產(chǎn)應(yīng)用程序組件。
審核編輯:郭婷
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9277瀏覽量
85827 -
AWS
+關(guān)注
關(guān)注
0文章
433瀏覽量
24434
發(fā)布評論請先 登錄
相關(guān)推薦
評論