

 此白皮書僅供歷史參考。有些內容可能已過時，有些連結可能無法使用。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 簡介
<a name="introduction"></a>

 多層應用程式 （三層、*n* 層等） 是幾十年來的基石架構模式，仍然是面向使用者的應用程式的熱門模式。雖然用來描述多層架構的語言有所不同，但多層應用程式通常包含下列元件：
+  **呈現層**：使用者直接互動的元件 （例如網頁和行動應用程式 UIs)。
+  **邏輯層**：將使用者動作轉譯為應用程式功能 （例如 CRUD 資料庫操作和資料處理） 所需的程式碼。
+  **資料層**：存放應用程式相關資料的儲存媒體 （例如資料庫、物件存放區、快取和檔案系統）。

 多層架構模式提供一般架構，以確保分離和獨立可擴展的應用程式元件可以單獨開發、管理和維護 （通常是由不同的團隊）。

 由於這種模式，網路 （層必須進行網路呼叫才能與另一個層互動） 做為層之間的界限，開發多層應用程式通常需要建立許多未區分的應用程式元件。其中一些元件包括：
+  定義用於層之間通訊的訊息佇列的程式碼 
+  定義應用程式程式設計界面 (API) 和資料模型的程式碼 
+  確保適當存取應用程式的安全相關程式碼 

 所有這些範例都可以視為「樣板」元件，雖然在多層應用程式中是必要的，但其實作在各個應用程式之間不會有很大的差異。

 AWS 提供多種服務，可建立無伺服器多層應用程式，大幅簡化將這類應用程式部署到生產環境的程序，並消除與傳統伺服器管理相關的額外負荷。[Amazon API Gateway](https://aws.amazon.com/api-gateway) 是用於建立和管理 APIs 的服務，而 [AWS Lambda](https://aws.amazon.com/lambda)是用於執行任意程式碼函數的服務，可以一起用於簡化強大的多層應用程式的建立。

 Amazon API Gateway 與 的整合 AWS Lambda 可讓使用者定義的程式碼函數直接透過 HTTPS 請求啟動。無論請求量為何，API Gateway 和 Lambda 都會自動擴展，以完全支援應用程式的需求 （請參閱 [API Gateway Amazon API Gateway 配額和可擴展性資訊的重要備註](https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html))。透過結合這兩個服務，您可以建立一個層，讓您只編寫對應用程式重要的程式碼，而不是專注於實作多層架構的各種其他不同層面，例如架構高可用性、撰寫用戶端 SDKs、伺服器和作業系統 (OS) 管理、擴展和實作用戶端授權機制。

 API Gateway 和 Lambda 可建立無伺服器邏輯層。根據您的應用程式需求，AWS 也提供建立無伺服器呈現層 （例如，使用 [Amazon CloudFront](https://aws.amazon.com/cloudfront) 和 [Amazon Simple Storage Service](https://aws.amazon.com/s3)) 和資料層 （例如，[Amazon Aurora](https://aws.amazon.com/aurora)、[Amazon DynamoDB](https://aws.amazon.com/dynamodb)) 的選項。

 本白皮書著重於最熱門的多層架構範例，**也就是三層** Web 應用程式。不過，您可以套用此多層模式遠超過典型的三層 Web 應用程式。

## 三層架構概觀
<a name="three-tier-architecture-overview"></a>

 三層架構是多層架構最熱門的實作，由單一呈現層、邏輯層和資料層組成。下圖顯示簡單、通用三層應用程式的範例。

![\[三層應用程式的架構模式\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/images/image2.png)


* 三層應用程式的架構模式 *

 有許多絕佳的線上資源可讓您進一步了解*一般*三層架構模式。此白皮書著重於此架構使用 Amazon API Gateway 和 的特定實作模式 AWS Lambda。