AWS入门(一):概念

78 阅读5分钟

serverless

一种云计算执行模型,允许开发者构建和运行应用程序而无需服务器,减少维护成本。Serverless包含来两种服务模型:

  • FaaS (Function as a Service) :如 AWS Lambda、Azure Functions、Google Cloud Functions
  • BaaS (Backend as a Service) :如 Firebase、AWS Amplify、Azure App Service

AWS Amplify

AWS Amplify 是一个专为前端开发者设计的完整解决方案,它简化了构建全栈应用程序的过程。Amplify 提供了一套工具和服务,包括:

  • CLI 工具:通过命令行快速配置和部署后端资源
  • UI 组件库:提供现成的认证、数据展示等组件
  • 前端框架集成:与 React、Vue、Angular 等框架无缝集成
  • 一站式托管:提供 CI/CD 和静态网站托管
  • 开发工具:本地开发环境和模拟器

Amplify 特别适合前端开发者,因为它抽象了复杂的后端配置,让你可以专注于前端开发。

API Gateway

API Gateway 是一个完全托管的服务,用于创建、发布、维护、监控和保护 API。它作为应用程序与后端服务之间的"门户",主要功能包括:

  • RESTful API 和 WebSocket API 支持
  • 请求/响应转换:可以修改请求和响应的格式
  • 流量管理:限流和节流控制
  • 授权与认证:集成 AWS Cognito 或自定义授权方
  • API 版本控制
  • CORS 支持:解决跨域资源共享问题
  • 与 Lambda 无缝集成:轻松创建无服务器 API

API Gateway 是构建 Serverless 应用的核心组件,为前端应用提供了统一的 API 入口。

Lambda 基础

Lambda 是 AWS 的函数即服务 (FaaS) 产品,允许你运行代码而无需预置或管理服务器。主要特点:

  • 事件驱动:可以响应各种 AWS 服务的事件
  • 多语言支持:支持 Node.js、Python、Java、Go 等多种语言
  • 自动扩展:根据请求量自动扩展
  • 按需付费:只为代码实际运行的时间付费
  • 无状态:每次执行都是独立的
  • 超时限制:最长执行时间为 15 分钟
  • 内存配置:可以配置 128MB 到 10GB 的内存

Lambda 是 Serverless 架构的核心,适合处理短暂的、事件驱动的任务。

S3 (Simple Storage Service)

S3 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。主要特点:

  • 无限存储:几乎无限的存储容量
  • 静态网站托管:可以直接托管静态网站
  • 版本控制:保留文件的多个版本
  • 生命周期管理:自动转移或删除对象
  • 安全控制:细粒度的访问控制
  • 事件通知:当对象被创建或修改时触发事件
  • CDN 集成:与 CloudFront 无缝集成

对于前端开发者,S3 常用于存储静态资源、用户上传的文件和前端构建产物。

CloudFormation

CloudFormation 是 AWS 的基础设施即代码 (IaC) 服务,允许你使用模板文件定义和部署 AWS 资源。主要特点:

  • 声明式模板:使用 JSON 或 YAML 格式
  • 资源管理:创建、更新和删除资源
  • 依赖关系处理:自动处理资源之间的依赖
  • 变更集:预览更改的影响
  • 堆栈管理:将相关资源作为单个单元管理
  • 跨区域部署:支持在多个区域部署相同的架构

CloudFormation 帮助你以自动化、可重复的方式管理基础设施。

AWS SAM (Serverless Application Model)

SAM 是 CloudFormation 的扩展,专门简化了 Serverless 应用程序的开发和部署。主要特点:

  • 简化语法:比 CloudFormation 更简洁的语法
  • 本地测试:支持本地测试 Lambda 函数和 API
  • CLI 工具:提供命令行工具简化部署
  • 与 AWS CLI 集成
  • 内置最佳实践:遵循 AWS 无服务器最佳实践
  • 转换为 CloudFormation:在部署时自动转换为 CloudFormation 模板

SAM 是开发 Serverless 应用的推荐工具,特别适合需要精细控制资源配置的场景。

AWS Cognito

Cognito 是 AWS 的用户身份与访问管理服务,提供身份验证、授权和用户管理功能。主要特点:

  • 用户池:用户目录,管理注册和登录
  • 身份池:提供临时 AWS 凭证,允许访问其他 AWS 服务
  • 社交身份提供商集成:支持 Google、Facebook、Amazon 等登录
  • 多因素认证:增强安全性
  • 自定义 UI:可定制的登录和注册界面
  • JWT 令牌:标准的 JSON Web Token
  • 与 API Gateway 集成:保护 API 访问

Cognito 为前端应用提供了完整的认证解决方案,无需构建自己的认证系统。

CloudFront

CloudFront 是 AWS 的内容分发网络 (CDN),通过全球边缘位置网络加速内容分发。主要特点:

  • 全球分布:在全球多个位置缓存内容
  • 低延迟:将内容分发到离用户最近的位置
  • 高传输速度:优化的网络路径
  • 安全性:提供 HTTPS 和各种安全功能
  • 边缘计算:支持在边缘位置运行 Lambda@Edge
  • 实时日志:详细的访问日志
  • 与 S3 和 API Gateway 集成

CloudFront 可以显著提升全球用户访问你的应用的体验,减少加载时间和提高可靠性。

这些服务共同构成了 AWS Serverless 架构的核心组件,可以帮助你构建高可用、可扩展且成本效益高的应用程序。