

 本白皮书仅供历史参考。有些内容可能已过时，有些链接可能不可用。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

 几十年来，多层应用程序（三层、*n* 层等）一直是基础架构模式，并且仍然是面向用户的应用程序的流行模式。尽管用于描述多层架构的语言各不相同，但多层应用程序通常由以下组件组成：
+  **演示层**：用户直接与之交互的组件（例如，网页和移动应用程序 UIs）。
+  **逻辑层**：将用户操作转换为应用程序功能（例如，CRUD 数据库操作和数据处理）所需的代码。
+  **数据层**：存储与应用程序相关的数据的存储介质（例如数据库、对象存储、缓存和文件系统）。

 多层架构模式提供了一个通用框架，以确保可以单独开发、管理和维护分离且可独立扩展的应用程序组件（通常由不同的团队开发、管理和维护）。

 由于这种网络模式（一层必须进行网络调用才能与另一层交互）充当各层之间的边界，因此开发多层应用程序通常需要创建许多无差别的应用程序组件。其中一些组件包括：
+  用于定义层间通信的消息队列的代码 
+  定义应用程序编程接口 (API) 和数据模型的代码 
+  与安全相关的代码，可确保对应用程序的适当访问 

 所有这些示例都可以被视为 “样板” 组件，这些组件虽然在多层应用程序中是必要的，但它们在实现上从一个应用程序到另一个应用程序的差异不大。

 AWS 提供了许多支持创建无服务器多层应用程序的服务，极大地简化了将此类应用程序部署到生产环境的过程，并消除了与传统服务器管理相关的开销。[Amazon API Gatew](https://aws.amazon.com/api-gateway) ay 是一项用于创建和管理 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 还提供创建无服务器演示层（例如，使用[亚马逊 CloudFront和亚马逊](https://aws.amazon.com/cloudfront)[简单存储服务）和数据层（例如 Amazon A](https://aws.amazon.com/s3) [urora、Amazon](https://aws.amazon.com/aurora) DynamoD [B](https://aws.amazon.com/dynamodb)）的选项。

 本白皮书重点介绍最受欢迎的多层架构示例，即**三层** Web 应用程序。但是，您可以应用这种多层模式，远远超出典型的三层 Web 应用程序。

## 三层架构概述
<a name="three-tier-architecture-overview"></a>

 三层架构是多层架构中最常用的实现，由单个表示层、逻辑层和数据层组成。下图显示了一个简单、通用的三层应用程序的示例。

![\[三层应用程序的架构模式\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/images/image2.png)


*三层应用程序的架构模式*

 有许多很棒的在线资源可供您详细了解*一般*的三层架构模式。本白皮书重点介绍使用 Amazon API Gateway 和 AWS Lambda该架构的具体实现模式。